OpenSSL 使用内容类型“应用程序/EDI”处理 smime 消息。作为文本并更改换行符
我收到内容类型为“应用程序/EDI”的 smime 消息。它是非标准 mime 类型,内容应解释为二进制。但 OpenSSL 在验证签名期间将其视为文本,并将换行符从“\n”更改为“\r\n”(根据内容类型“文本”规范的需要)。所以摘要出错,验证失败。
有没有办法让 openssl 不更改原始消息中的任何内容?参数“-binary”不适用于任何版本(我尝试过 0.9.7、0.9.8、1.0.0)。
I receive smime message with content-type 'Application/EDI'. It is non-standard mime type and content should be interpreted as binary. But OpenSSL during verifying signature treats it as text and changes line breaks from '\n' to '\r\n' (as needed by spec for content-type 'text'). So digest becomes wrong and verification fails.
Is there any way to make openssl not chaging anything in original message? Argument '-binary' doesn't work on any version (I tried 0.9.7, 0.9.8, 1.0.0).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好的,回答我自己的问题。
我已将输入数据拆分为两个单独的文件,其中内容和签名删除了不必要的元数据。之后,我将签名的 mime 类型更改为
application/pkcs7-mime
并且使用此命令验证成功:将
-inform
更改为 PEM 的变体也可以,但签名必须是没有Content-xxx
标头Ok, answering my own question.
I've split input data into two separate files with content and signature removing unnecessary metadata. After that I changed mime type of signature to
application/pkcs7-mime
and verification became successful with this command:Variant with changing
-inform
to PEM also works, but signature must be withoutContent-xxx
headers