【问题标题】:Decode/extract smime.p7m file contents (email with embedded files) with OpenSSL?使用 OpenSSL 解码/提取 smime.p7m 文件内容(带有嵌入文件的电子邮件)?
【发布时间】:2010-10-01 09:51:06
【问题描述】:

我们有一个旧进程 (VBScript),它读取一个公共邮箱并将某些电子邮件处理到数据库中。

新法规现在对所有带有附件的邮件进行数字签名。

该过程现在只提取一个文件 (smime.p7m)。使用基于 GUI 的查看器,我可以看到嵌入的文件并毫无问题地提取它们。然而,我真正需要的是一个基于命令行的提取器,它将写出嵌入的文件(PDF、DOC、XLS)——它们没有加密,只是签名。我使用没有证书的笔记本电脑对此进行了测试,只需使用上述查看器打开 smime.p7m 文件。

看起来 OpenSSL 将对此进行解码/提取,并且有人设法获得了在 Windows 上编译的版本。但是,对可执行文件的大量试错测试令人沮丧,因为我找不到正确的标志组合来只说“打开 smime.p7m 文件并写出您找到的所有嵌入文件”。在所有选项之后,“openssl smime”似乎总是想要一个“cert.pem”,但我没有。

我错过了什么?提前致谢。

【问题讨论】:

    标签: openssl smime


    【解决方案1】:

    您是否尝试过 openssl 的“-noverify”选项?

    对于仅签名的消息,您可以使用

    openssl smime -verify -in <signed.eml> -noverify -out /tmp/blob
    

    然后您可以使用类似 RFC822 的解析器从“blob”中获取正文和附件。这意味着您的解析器必须能够编码像quoted-printable 和base64。

    【讨论】:

    • 不能说我做到了。在这种环境(军事站点)中,试图让 OpenSSL 完全正常工作是一件苦差事,而我从未真正成功过。最后,编写一个新程序来完成这项工作,利用 Chilkat 库快速完成了这项工作。不过,谢谢你的想法。
    【解决方案2】:

    看起来唯一可用的选项是使用 Chilkat 的库编写一个简单的程序。此选项的费用为 149 美元或 289 美元,具体取决于每个开发人员的许可类型,但至少它是免版税的。

    【讨论】:

    • 这很有趣。我很高兴今天找到了这个。
    猜你喜欢
    • 2011-11-12
    • 1970-01-01
    • 2021-07-19
    • 2012-11-02
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    相关资源
    最近更新 更多