验证一个文件电子签名,OpenSSL 目标需要:
- 公钥(来自发件人)
- 签名(来自发件人)
- 文件(以验证其未被原始发送者修改)
openssl dgst -sha256 -verify publicKey.pem -signature senderSig.der WholeFile.txt
它 重新计算文件的 SHA256然后将其与加密的数字签名哈希进行比较以进行验证。
但是,想要“自己”执行 SHA256 或在外部执行 SHA256dgst
并将该值传递给它而不是文件。
就像是:
openssl dgst -验证publicKey.pem -签名 senderSig.der -theFiles256Hash SHA256ofWholeFile.txt
看着命令参数,似乎可能,但找不到合适的组合。
这可能吗 ?
如果 dgst
无法做到这一点,是否可以使用其他 OpenSSL 实用程序将其分解为多个步骤?
(使用 ECDSA)
答案1
这并不能回答OP的问题,因为它是关于ECDSA的,但使用RSA的人可能会发现这很有帮助。
不可能使用dgst
实用程序直接验证哈希值。必须使用pkeyutl
实用程序:
openssl pkeyutl -in hash.bin -inkey pubkey.pem -pubin -verify -sigfile signature.bin -pkeyopt digest:sha256
大多数参数直接记录在开放式SSL