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 に指示するために使用されることに注意してください