OpenSSL加密与BouncyCastle解密不兼容?

时间:2014-05-30 06:09:57

标签: android email encryption openssl bouncycastle

我在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的问题?

1 个答案:

答案 0 :(得分:0)

事实证明我错过了一面旗帜。

int flags = PKCS7_STREAM | PKCS7_BINARY;

这确实很有魅力。