OpenSSLでCMSを使用して暗号化されたS/MIMEメッセージを解読しようとすると、decryptメソッドは0を意味するme 0を返します。OpenSSL解読は失敗しますが、エラーコードは0です
OpenSSL.org言う..
CMS_decrypt()は失敗の成功のための1または0のいずれかを返します。私はこれを実行すると、エラーは、エラー変数は、エラーが発生したと
ERR_get_error()
からのエラーコードであることを意味する0 ... ERR_get_errorからout = BIO_new(BIO_s_mem()); if (!out) assert(false); int error = CMS_decrypt(cms, rkey, rcert, out, NULL, 0); if (!error) { fprintf(stderr, "Error Decrypting Data\n"); printf("error code: %d\n", ERR_get_error()); ERR_print_errors_fp(stderr); assert(false); }
を(3)
を得ることができますまた、ERR_print_errors_fp()
は、何もエラーがないことを意味するものは印刷しません。
上記のコードの出力:
Error Decrypting Data
error code: 0
Assertion failed: (false)
誰が間違ってここに何が起こっているかの提案を持っていますか?ありがとう
復号化に成功しましたか?そうであれば、エラーが意図したとおりに0を返すかどうかを確認するか、コントロールステートメント –
の "ERR_get_error()"値を使用してください。 : -/BIOは空です。 mem BIOの代わりにBIOファイルを作成しても、新しいファイルが作成されますが、何も書き込まれません... – Chris