我收到加密和签名的 smime 消息。解密没问题,数据似乎是正确的。
openssl.exe smime -decrypt -in %1 -out %1_signed.txt -inkey myPrivate.pem
但是在验证签名阶段我得到了错误。
openssl.exe smime -verify -CAfile senderCACert.pem -certfile senderCert.pem -in %1 -out %1_plain
Verification failure
7600:error:21071065:PKCS7 routines:PKCS7_signatureVerify:digest failure:./crypto/pkcs7/pk7_doit.c:9
48:
7600:error:21075069:PKCS7 routines:PKCS7_verify:signature failure:./crypto/pkcs7/pk7_smime.c:312:
发送两个证书(CA 证书和客户端证书)应该没问题。
我认为 openssl 可以在解密过程中产生特定的符号,例如换行符或源消息中不存在的其他符号。或者它可以处理非标准算法(至少据我所知openssl有非标准的私钥存储格式)
我使用openssl 0.9.8h。而另一边的smime消息是由“webMethods EDI version 6.5”软件形成的(它是处理EDI消息的AS2服务器)。
这个错误的原因是什么?
您能建议尝试另一种 smime 工具吗?