Openssl

是否可以使用 OpenSSL dgst 使用文件的雜湊而不是整個文件進行驗證?

  • December 19, 2019

為了驗證文件數字簽名,OpenSSL dgst需要:

  • 公鑰(來自發件人)
  • 簽名(來自發件人)
  • 文件(以驗證它沒有被原始發件人修改)

例子:

openssl dgst -sha256 -verify publicKey.pem -signature senderSig.der wholeFile.txt

**重新計算文件的 SHA256,**然後將其與加密的數字簽名雜湊進行比較,以進行驗證。

但是,想要執行 SHA256“我自己”或外部dgst並將該值傳遞給它而不是 file

就像是:

openssl dgst -verify publicKey.pem -signature senderSig.der -theFiles256Hash SHA256ofWholeFile.txt

查看命令參數,似乎可行,但找不到正確的組合。

這可能嗎 ?

如果 dgst不能這樣做,是否可以使用其他 OpenSSL 實用程序將其分解為多個步驟?

(使用 ECDSA)

這不能回答 OP 的問題,因為它是關於 ECDSA 的,但使用 RSA 的人可能會覺得這很有幫助。

無法使用dgst實用程序直接驗證雜湊。必須使用pkeyutl實用程序:

openssl pkeyutl -in hash.bin -inkey pubkey.pem -pubin -verify -sigfile signature.bin -pkeyopt digest:sha256

大多數參數都直接記錄在OpenSSL

引用自:https://unix.stackexchange.com/questions/340687