a full, basic code exampleが含まれており、次のコマンドでコンパイルできます(ブーストがインストールされている) "g ++ -std = C++ 11 -g test.cpp -lssl -lcrypto -lboost_system "C++ OpenSSL EVP_DigestVerify RSA_R_BAD_PAD_BYTE_COUNTで断続的に失敗する
コード私は、OpenSSL EVP Signing and Verifyingにかなり従っており、メモリ管理のための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
ここのポインタは大変ご満足いただけます!
コードを表示してください。スタックオーバーフローはあなたからの閉鎖理由を隠すので:*デバッグのヘルプを求める質問( "なぜこのコードは機能していないの?")は、質問自体にそれを再現するのに必要な特定の問題やエラー、 。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve)* – jww
コードの最初の行にリンクがあります – mgibson