OpenSSL RSA签名和PKCS#1填充不正确的验证

时间:2013-04-29 17:45:23

标签: openssl rsa padding digital-signature

我正在生成一些数据的RSA签名,使用SHA-1作为哈希函数,PKCS#1填充作为填充方案,来自C ++中与智能卡读卡器成功连接的程序。我可以使用java.security包使用简单的Java应用程序快速验证签名,并且它可以正常工作。

但是,当我尝试使用OpenSSL的EVP_PKEY_verify()时,它不会通过。如果我使用EVP_PKEY_verify_recover(),并且我比较原始数据的哈希值(通过简单的命令行调用)和verify_recover的结果,我得到〜差不多〜同样的东西。

SHA1(原始)= xyz recover(signature)= xyz0000000000 ...

我想知道以前是否有人遇到过这个问题?我一直在争取它一段时间,尝试不同的选项并使用我的sign()函数(适用于Java)。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果你只使用EVP_VerifyInit()/ EVP_VerifyUpdate()/ EVP_VerifyFinal(),它就可以了。希望这可以节省其他人几天!