使用 OpenSSL 解码/提取 smime.p7m 文件内容(带有嵌入文件的电子邮件)?

Dav*_*vid 4 openssl smime

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

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

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

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

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

Jun*_*ing 5

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

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

openssl smime -verify -in <signed.eml> -noverify -out /tmp/blob
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用类似 RFC822 的解析器从该“blob”中获取正文和附件。这意味着您的解析器必须能够进行诸如引用打印和 base64 之类的编码。