我正在尝试使用 OpenSSL 模拟站到站协议。所有步骤都很清楚,但只有一个。具体来说,每个用户必须对两个用户的公钥的串联进行签名。
因此,如果用户 A 具有公钥 KA 并且用户 B 具有公钥 KB,那么我必须计算符号(KA || KB)。有一个众所周知的数据签名函数,但如何连接公钥文件?
目前文件内容如下:
-----BEGIN PUBLIC KEY-----
MEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAEHCxKip7cFGTqXCV5NgPY8XcpAOPi68/6
IYmqHhsm1K2/gfvpBMCtj7HnUHj1WojM
-----END PUBLIC KEY-----
和
-----BEGIN PUBLIC KEY-----
MEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAEM8L5ntap4heeGVhQ7TEY3JVK+GX3J/7O
SPEhc6k8nc0NXQnlmqaho4lCqhAVENRr
-----END PUBLIC KEY-----
我应该签署文件吗:
MEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAEHCxKip7cFGTqXCV5NgPY8XcpAOPi68/6IYmqHhsm1K2/gfvpBMCtj7HnUHj1WojMMEYwEAYHKoZIzj0CAQYFK4EEAB8DMgAEM8L5ntap4heeGVhQ7TEY3JVK+GX3J/7OSPEhc6k8nc0NXQnlmqaho4lCqhAVENRr
哪个是两个键的串联?
答案1
只要各方就签名内容和格式达成一致,如何串联并不重要。我也会包含 BEGIN 和 END 行,以帮助将各个部分彼此分开。
顺便说一句,在我熟悉的STS协议中不包括对串联的签名公钥。这个问题可能也更适合 crypto.stackexchange.com,而不是在这里。