【发布时间】:2016-06-05 15:44:42
【问题描述】:
我想“手动”将消息的摘要/哈希与该摘要上的解密签名值进行比较。
为此,我想用公钥解密消息的签名值(签名摘要),该公钥属于签名摘要的私钥。
我有以下物品:
- 消息的 base64 格式的摘要值(使用 SHA256 计算)
- base64 格式的摘要上已使用私有签名的签名值 密钥(使用 SHA256 和 RSA 加密)
- .pem 格式的公钥属于私钥
- 我有实际的消息(它是 XML 格式,在文档的不同部分包含多个签名)。我已经使用 XML 安全库验证了签名。我只对使用公钥解密签名值感兴趣。
我有点不知道如何使用 openssl 来实现这一点。
我正在尝试对here 和here 描述的命令进行变体,但是我有点迷路了。
我想我应该使用以下方法将签名从 base64 值转换为八位字节:
base64 --d sigfile > sigfile_octet?
然后我使用命令:
openssl rsautl -inkey pubkey.pem -pubin -in sigfile_octet
这会给我八位字节的解密签名值吗? 我需要执行哪些后续步骤才能将其与 base64 摘要进行比较?
附言我已经使用Aleksey's XML security library 验证了签名,所以我知道摘要应该与解密后的签名值匹配。
非常感谢您的帮助!!
亲切的问候,
迪德里克
【问题讨论】:
标签: encryption command-line openssl digital-signature public-key