0

content-type 'Application/EDI' の smime メッセージを受け取りました。これは非標準の MIME タイプであり、コンテンツはバイナリとして解釈される必要があります。ただし、署名の検証中に OpenSSL はそれをテキストとして扱い、改行を '\n' から '\r\n' に変更します (コンテンツ タイプ 'text' の仕様で必要とされるため)。そのため、ダイジェストが間違って検証に失敗します。

openssl が元のメッセージで何も変更しないようにする方法はありますか? 引数「-binary」はどのバージョンでも機能しません (0.9.7、0.9.8、1.0.0 を試しました)。

4

1 に答える 1

4

わかりました、私自身の質問に答えます。

入力データを 2 つの別個のファイルに分割し、コンテンツと署名から不要なメタデータを削除しました。その後、署名の MIME タイプを に変更するapplication/pkcs7-mimeと、次のコマンドで検証が成功しました。

openssl.exe smime -verify -inform SMIME -CAfile caCert.pem -certfile cert.pem -in signature.txt -content content.txt

PEMに変更したバリアント-informも機能しますが、署名はContent-xxxヘッダーなしである必要があります

于 2010-10-27T14:45:48.360 に答える