OpenSSLでCMSを使用して暗号化されたS/MIMEメッセージを復号化しようとすると、decryptメソッドは成功しなかったことを表す0を返します。
OpenSSL.orgによると..
CMS_decrypt()は、成功の場合は1を返し、失敗の場合は0を返します。エラーはERR_get_error(3)から取得できます。
これを実行すると...
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);
}
...エラー変数は0であり、これはエラーが発生したことを意味し、からのエラーコードERR_get_error()
も0です。さらに、エラーERR_print_errors_fp()
がなかったことを意味する何も出力しません。
前述のコードからの出力:
Error Decrypting Data
error code: 0
Assertion failed: (false)
ここで何が問題になっているのか、誰か提案がありますか?ありがとう