是否可以使用 OpenSSL dgst 使用文件的哈希值而不是整个文件进行验证?

是否可以使用 OpenSSL dgst 使用文件的哈希值而不是整个文件进行验证?

验证一个文件电子签名,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

相关内容