2010-10-20 24 views
0

我收到含有內容類型'Application/EDI'的smime消息。它是非標準的MIME類型,內容應解釋爲二進制。但是在驗證簽名的過程中,OpenSSL會將其視爲文本並將換行符從'\ n'更改爲'\ r \ n'(根據內容類型'文本'的規範需要)。所以摘要會變得錯誤,驗證失敗。OpenSSL將內容類型爲'Application/EDI'的smime消息視爲文本並更改換行符

有什麼辦法可以讓openssl不會破壞原始消息中的任何東西嗎?參數「二進制」不適用於任何版本(我試過0.9.7,0.9.8,1.0.0)。

回答

4

好的,回答我自己的問題。

我已經將輸入數據分割爲兩個單獨的文件,其中包含內容和簽名以去除不必要的元數據。從那以後,我改變了簽名的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

相關問題