【发布时间】:2014-07-19 20:01:00
【问题描述】:
我正在 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)。但这也不起作用。
更新 -> 如果我将加密代码更改为充气城堡,那么一切正常。我能够在安卓应用程序和网络浏览器中解密。那么这可能是 OpenSSL 问题吗?
更新 2 -> 我尝试使用 openssl 命令提示符对加密文本进行解密,并且成功了。所以我想这肯定是一些兼容性问题?但这是 bouncycastle 还是 openssl 的问题?
【问题讨论】:
-
当你在另一边遇到问题时,为什么你认为本机代码是“相关的”?
-
@OlegEstekhin - 因为我可能传递了错误的标志。早些时候我在发送案例中遇到了这样的问题。现在我可以发送但无法解密。
-
@OlegEstekhin - 也是因为 BouncyCastle 代码功能齐全且经过全面测试。所以从逻辑上讲,唯一的问题是在 OpenSSL 端(即发送端)。
-
如果没有看到解密端以及它使用什么“标志”,就不可能说加密端是否有“错误标志”。
-
@OlegEstekhin - 公平点。但至少我应该能够从我的网络浏览器打开加密邮件?连服务器都无法解密消息?
标签: android email encryption openssl bouncycastle