如何使用 openssl 对公钥串联进行加密签名

如何使用 openssl 对公钥串联进行加密签名

我正在尝试使用 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,而不是在这里。

相关内容