当我尝试在 OpenSSL 中使用 CMS 解密加密的 S/MIME 消息时,解密方法返回我 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)
有没有人建议这里出了什么问题?谢谢