我收到内容类型为“应用程序/EDI”的 smime 消息。它是非标准的 mime 类型,内容应解释为二进制。但 OpenSSL 在验证签名期间将其视为文本并将换行符从 '\n' 更改为 '\r\n' (根据内容类型'text'的规范需要)。因此摘要出错,验证失败。
有什么方法可以让 openssl 不更改原始消息中的任何内容?参数 '-binary' 不适用于任何版本(我尝试了 0.9.7、0.9.8、1.0.0)。
我收到内容类型为“应用程序/EDI”的 smime 消息。它是非标准的 mime 类型,内容应解释为二进制。但 OpenSSL 在验证签名期间将其视为文本并将换行符从 '\n' 更改为 '\r\n' (根据内容类型'text'的规范需要)。因此摘要出错,验证失败。
有什么方法可以让 openssl 不更改原始消息中的任何内容?参数 '-binary' 不适用于任何版本(我尝试了 0.9.7、0.9.8、1.0.0)。
好的,回答我自己的问题。
我已将输入数据拆分为两个单独的文件,其中内容和签名删除了不必要的元数据。之后,我将签名的 mime 类型更改为,application/pkcs7-mime
并且使用以下命令验证成功:
openssl.exe smime -verify -inform SMIME -CAfile caCert.pem -certfile cert.pem -in signature.txt -content content.txt
更改-inform
为 PEM 的变体也可以,但签名必须没有Content-xxx
标题