Chr*_*ris 8 iphone encryption openssl smime content-management-system
当我尝试在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);
}
Run Code Online (Sandbox Code Playgroud)
...错误变量为0表示发生错误,错误代码ERR_get_error()也为0.此外ERR_print_errors_fp(),不会打印任何表示没有错误的内容.
上述代码的输出:
Error Decrypting Data
error code: 0
Assertion failed: (false)
Run Code Online (Sandbox Code Playgroud)
有没有人建议这里出了什么问题?谢谢
经过几周的尝试不同的方法和挫折后,我最终使用了 OpenSSL 的 PKCS#7 解密。Due CMS 基本上基于 PKCS#7,它可以很好地使用 CMS 进行加密并使用 PKCS7 进行解密。
我用过的方法是pkcs7_decrypt()。