Openssl命令行无法验证之前创建的分离的smime签名

时间:2012-05-31 16:21:55

标签: openssl signature verify pkcs#7 smime

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

1 个答案:

答案 0 :(得分:3)

我已经弄明白了这个问题。

因为我没有使用-binary标志,所以openssl将输入文件中的\ n转换为\ r \ n