4

OSX 10.6 で openssl 1.0.1b のコマンド ライン インターフェイスを使用しています。

まず、DSA キーを作成します。

openssl dsaparam -noout -out privatekey.pem -genkey 1024

次に、そのキーから自己署名証明書を作成します。

openssl req -new -outform PEM -out certificate.pem -key privatekey.pem -keyform PEM -sha1 -x509 -days 1000

次に、その証明書とキーを使用して、ファイルの切り離された smime 署名を作成します。

openssl smime -sign -in file.zip -out file.zip.signature -outform DER -inkey privatekey.pem -signer certificate.pem

最後に、すぐに同じファイル/署名を検証しようとします*

openssl smime -verify -in file.zip.signature -inform DER -content file.zip -noverify certificate.pem > /dev/null

しかし、どういうわけか、ダイジェストに失敗します。

PKCS7 routines:PKCS7_signatureVerify:digest failure:pk7_doit.c:1097:
PKCS7 routines:PKCS7_verify:signature failure:pk7_smime.c:410

ファイルは何も変更されておらず、手動の md5 ハッシュは前後で一致していますが、何らかの形で署名ダイジェストが失敗しています。誰かが私が間違っていることについての手がかりを持っていますか?

ありがとう。

`* -noverify は、証明書が自己署名されていることについて警告しないように openssl に指示するために使用されることに注意してください

4

1 に答える 1

3

私は問題を理解しました。

-binary フラグを使用しなかったため、openssl は入力ファイルの \n を \r\n に変換していました。

于 2012-06-02T15:12:21.090 に答える