Openssl 如何使用pss填充验证签名?

Openssl 如何使用pss填充验证签名?,openssl,Openssl,我们为RSA sign创建了调试公钥和私钥。 我们生成sha256散列并保存在cp1.bin中。 然后我们尝试验证签名,但总是失败。 如果我们不使用pss填充,验证命令将通过。 任何人都可以帮忙评论吗 谢谢 C:\Project\pkc>openssl pkeyutl-sign-in cp1.bin-inkey pvt_dbg.pem-out sig1.bin-pkeyopt摘要:sha256-pkeyopt rsa_padding_模式:pss-pkeyopt rsa_pss_sallen:3

我们为RSA sign创建了调试公钥和私钥。 我们生成sha256散列并保存在cp1.bin中。 然后我们尝试验证签名,但总是失败。 如果我们不使用pss填充,验证命令将通过。 任何人都可以帮忙评论吗

谢谢

C:\Project\pkc>openssl pkeyutl-sign-in cp1.bin-inkey pvt_dbg.pem-out sig1.bin-pkeyopt摘要:sha256-pkeyopt rsa_padding_模式:pss-pkeyopt rsa_pss_sallen:32

C:\Project\pkc>openssl pkeyutl-verify-in cp1.bin-sigfile sig1.bin-pkeyopt rsa_padding_模式:pss-pkeyopt rsa_pss_sallen:32-pubin-inkey pub_dbg.pem
签名验证失败

现在可以成功运行验证命令

$ openssl pkeyutl -sign \
  -in hashOut.bin -inkey pvt_dbg.pem \
  -out sig1.bin \
  -pkeyopt digest:sha256 \
  -pkeyopt rsa_padding_mode:pss \
  -pkeyopt rsa_pss_saltlen:-1
然后


Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。另请参见在使用OpenSSL 1.0.1f的Ubuntu上,所有
pkeyopt
s必须快结束,否则会引发以下错误:
-pkeyopt命令在-inkey
之前。此外,我还使用以下命令生成哈希:
openssldgst-sha256-binary payload.bin>cp1.bin
@akhan为我省去了很多麻烦
$ openssl pkeyutl -verify \
  -in cp1.bin -sigfile sig1.bin \
  -pkeyopt rsa_padding_mode:pss \
  -pubin -inkey pub_dbg.pem \
  -pkeyopt rsa_pss_saltlen:-1 \
  -pkeyopt digest:sha256