Email 为什么验证smime签名失败?

Email 为什么验证smime签名失败?,email,openssl,digital-signature,smime,Email,Openssl,Digital Signature,Smime,我收到了一封带有签名的电子邮件,我正在验证 我正在使用openssl openssl-smime-inform-smime-CAfile all.pem-verify-in signed.eml 要检查,将出现错误: 4144:error:0D07209B:asn1 encoding routines:ASN1_get_object:too long:asn1_lib.c:142: 4144:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLE

我收到了一封带有签名的电子邮件,我正在验证

我正在使用openssl
openssl-smime-inform-smime-CAfile all.pem-verify-in signed.eml
要检查,将出现错误:

4144:error:0D07209B:asn1 encoding routines:ASN1_get_object:too long:asn1_lib.c:142:
4144:error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header:tasn_dec.c:1302:
4144:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:379:Type=X509_SIG
4144:error:21071069:PKCS7 routines:PKCS7_signatureVerify:signature failure:pk7_doit.c:978:
4144:error:21075069:PKCS7 routines:PKCS7_verify:signature failure:pk7_smime.c:312:
在谷歌搜索了一段时间后,这首先似乎是asn.1结构的一个错误。但是在sig.txt中运行
openssl asn1parse-i-in(sig.txt只是以前signed.eml中的签名)不会出现错误,并且可以很好地显示ASN.1树(IMHO)

另请注意:该电子邮件在MS Outlook 2010中显示为已成功验证


你知道签名有什么问题吗?或者我在这里提到的openssl的哪些特性?除了openssl之外,还有什么其他工具可以检查签名(以排除openssl问题)?

好的,在openssl的帮助下:

这是asn.1结构的一个错误。签名格式不正确。这不会导致asn1parse出现问题,但在OpenSSL尝试验证时会出现问题。
它没有正确的DigestInfo结构,只有原始的SHA1散列,这违反了PKCS#1规范中提到的RSA方案

Outlook(和其他客户端)似乎可以容忍原始表单,而openssl(和Thunderbird及其他客户端)则不能