尝试使用Openssl解密S / MIME文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试使用Openssl解密S / MIME文件相关的知识,希望对你有一定的参考价值。

我是openssl Newibe。我正在尝试编写一个python脚本(调用openssl)来解密多个p12加密的eml文件但是失败了。

我可以在Thunderbird打开它们。

这是我试过的:

openssl pkcs12 -in keys/pkitepki.p12 -clcerts -nokeys -out file.crt.pem
openssl pkcs12 -in keys/pkitepki.p12 -nocerts -out file.key.pem
openssl smime -decrypt -in smime.p7m -recip file.crt.pem  -inkey file.key.pem 

我得到的错误是:

Error reading S/MIME message
139955665413864:error:0D0D40D1:asn1 encoding routines:SMIME_read_ASN1:no content type:asn_mime.c:451

我的步骤有什么问题?

答案

输入不应该是smime.p7m。应该是里面有smime.p7m的电子邮件。应该有电子邮件标头和base64编码的内容。

另一答案

使用cms而不是smime:

openssl cms -decrypt -in smime.p7m -recip file.crt.pem  -inkey file.key.pem

以上是关于尝试使用Openssl解密S / MIME文件的主要内容,如果未能解决你的问题,请参考以下文章

OpenSSL 解密失败但错误代码为 0

OpenSSL 和 C# 之间的不同 S/MIME 签名

使用 openssl 生成证书

从 MIME 创建 S/MIME?

使用openssl加密和解密一个小文件

使用rust的openssl库加密/解密大文本