我在Android应用中使用OpenSSL发送加密邮件。 发送邮件时,这是相关的本机代码 -
cipher = EVP_rc2_40_cbc();
int flags = PKCS7_STREAM;
PKCS7* p7 = PKCS7_encrypt(certs, bio, cipher, flags);
int r = SMIME_write_PKCS7(out, p7, bio, flags);
邮件已成功发送到服务器,我收到已发送邮件通知。
现在,当我尝试使用另一个具有bouncycastle的Android应用程序打开邮件时,我无法打开它。它说“无法解密消息”。
此外,我尝试使用桌面上的webmail接口打开应用程序。在这里我也无法打开邮件。
任何想法可能是什么问题?
我也试过使用不同的密码(3des)。但这也行不通。
更新 - >如果我将加密代码更改为充气城堡,那么一切正常。我能够在Android应用程序和Web浏览器中解密。那么这可能是一个OpenSSL问题吗?
更新2 - >我尝试使用openssl命令提示符解密加密的文本,它工作正常。所以我猜这肯定是一些兼容性的问题?但这是bouncycastle还是openssl的问题?
答案 0 :(得分:0)
事实证明我错过了一面旗帜。
int flags = PKCS7_STREAM | PKCS7_BINARY;
这确实很有魅力。