我收到一封带有我正在尝试验证的签名的电子邮件。
我正在使用 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 结构的错误。但是运行openssl asn1parse -i -in sig.txt
(sig.txt 只是之前 signed.eml 的签名)没有错误,并且很好地显示了 ASN.1 树(恕我直言)。
作为旁注:电子邮件在 MS Outlook 2010 中显示为成功验证。
任何想法签名可能有什么问题或我在这里遇到的openssl的哪些特点?除了 openssl 之外的任何其他工具来检查签名(以排除 openssl 问题)?