我已经包含a full, basic code example可以使用下面的命令(已安装boost)编译“g ++ -std = C++ 11 -g test.cpp -lssl -lcrypto -lboost_system“C++ OpenSSL EVP_DigestVerify间歇性地失败rsa_pk1.c:103与RSA_R_BAD_PAD_BYTE_COUNT
我的代码非常接近OpenSSL EVP签名和验证Asymmetric example,并对内存管理进行了一些Boost重构。
但是,它的行为非常间歇,并且随着不同的按键以及不同的文本而改变。我很确定我在这里错过了一些东西,但由于时间压力,我正要对openssl实用程序进行安全的系统调用,而这与我没有任何问题有关。
下面的测试输出说明了这个问题。 “A”和“AAA”已成功签名和验证,而“AA”失败并带有RSA_R_BAD_PAD_BYTE_COUNT填充错误。为了尝试一个正确的,我将填充设置为PKCS,但它没有任何区别。
2048 bit [2] - Text: A - Success
Authentication failure: 67567722, rsa_pk1.c, 103, , 0 257
Error string: error:0407006A:lib(4):func(112):reason(106)
2048 bit [2] - Text: AA - Failure
2048 bit [2] - Text: AAA - Success
任何指针在这里将不胜感激!
请显示您的代码。由于Stack Overflow隐藏了你的密切原因:*寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误以及在问题本身中重现它的最短代码。没有明确问题陈述的问题对其他读者无益。请参阅:[如何创建最小,完整和可验证的示例](http://stackoverflow.com/help/mcve)。* – jww
您会在代码的第一行找到一个链接 – mgibson