OpenSSL将内容类型为“应用程序/ EDI”的smime消息视为文本并更改换行符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenSSL将内容类型为“应用程序/ EDI”的smime消息视为文本并更改换行符相关的知识,希望对你有一定的参考价值。

我收到内容类型为“Application / 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标题

以上是关于OpenSSL将内容类型为“应用程序/ EDI”的smime消息视为文本并更改换行符的主要内容,如果未能解决你的问题,请参考以下文章

openssl pem证书 转换为p12类型证书

加密算法与openssl的使用

.NET 中的 EDI 解析器

openssl生成csr文件,将crt和key文件转换成tomcat下的jks文件

数据安全及OpenSSL

将 cer 转换为 pem 时出现 OpenSSL 编码错误