验证PDF文件中的签名时会出现此问题.标准中说:
消息摘要计算过程的结果取决于signedAttrs字段是否存在.当该字段不存在时,结果仅是如上所述的内容的消息摘要.但是,当该字段存在时,结果是signedAttrs字段中包含的SignedAttrs值的完整DER编码的消息摘要.
我解析了签名并得到了signedAttrs:
[0](4 elem)
SEQUENCE(2 elem)
OBJECT IDENTIFIER1.2.840.113549.1.9.3 // ContentType
SET(1 elem)
OBJECT IDENTIFIER1.2.840.113549.1.7.1
SEQUENCE(2 elem)
OBJECT IDENTIFIER1.2.840.113549.1.9.5 // SigningTime
SET(1 elem)
UTCTime2014-04-13 02:58:41 UTC
SEQUENCE(2 elem)
OBJECT IDENTIFIER1.2.840.113549.1.9.4 // MessageDigest
SET(1 elem)
OCTET STRING(20 byte) 194E0BA9C4B9A53D5E9E5B7B94D7DB42BEA4C28F
SEQUENCE(2 elem)
OBJECT IDENTIFIER1.2.840.113549.1.9.15
SET(1 elem)
SEQUENCE(8 elem)
SEQUENCE(1 elem)
OBJECT IDENTIFIER2.16.840.1.101.3.4.1.42
SEQUENCE(1 elem)
OBJECT IDENTIFIER2.16.840.1.101.3.4.1.22
SEQUENCE(1 elem)
OBJECT IDENTIFIER2.16.840.1.101.3.4.1.2
SEQUENCE(1 elem)
OBJECT IDENTIFIER1.2.840.113549.3.7
SEQUENCE(2 elem)
OBJECT IDENTIFIER1.2.840.113549.3.2
INTEGER128
SEQUENCE(2 elem)
OBJECT IDENTIFIER1.2.840.113549.3.2
INTEGER64
SEQUENCE(1 elem)
OBJECT IDENTIFIER1.3.14.3.2.7
SEQUENCE(2 elem) …Run Code Online (Sandbox Code Playgroud)