使用openssl smime进行数据验证失败

时间:2017-01-19 11:32:57

标签: ssl openssl cryptography digital-signature smime

我正在使用openssl smime来签名和验证数据。

要使用openssl签署文本文件,请使用以下命令:

  

openssl smime -sign -in sample.txt -out mail.msg -signer cert.pem -inkey key.pem

然后我继续进行验证:

  

openssl smime -verify -in mail.msg -CAfile allCA.pem

验证成功。

我的问题是我有一个外部工具使用以下命令执行验证:

  

openssl smime -verify -in mail.msg -inform DER -CAfile allCA.pem

如何签署我的txt文件,以便可以使用上一个命令进行验证?

到目前为止我尝试过的事情:

  

openssl smime -sign -in sample.txt -out mail.msg -outform DER -signer cert.pem -inkey key.pem

但是在尝试验证我的邮件时遇到错误:

Verification failure
140204331579208:error:2107507A:PKCS7 routines:PKCS7_verify:no content:pk7_smime.c:291:

1 个答案:

答案 0 :(得分:1)

您调用签名操作的方式会创建分离签名,因此您需要将-content sample.txt传递给验证命令。但是,可以创建将消息与签名(-nodetach参数)一起封装的结构。

这是您正在寻找的签名命令:

openssl smime -sign -in data.dat -out mail.msg -signer cert.pem -inkey key.pem -outform DER -nodetach