我在 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 不要警告我证书正在自签名