据我所知,有两种方法
在签名时添加DSS dictionary
DSS方式似乎有效,Adobe将签名识别为启用了LTV。第二种方法将更适合我们的应用程序,所以我仍然试图让它发挥作用。我在将OCSP响应添加到签名时遇到问题,所以我只尝试添加证书和CRLs。如果我错了,请纠正我,但据我了解,无论是CRLs还是OCSP响应都应该添加到签名中。没有必要两者兼得?我收集签名证书及其根证书,以及TSA证书及其根证书。在那之后,我把所有的CRLs都拿来。所有这些都是在签名和时间戳之前添加的。只添加证书和CRL似乎不起作用,因为Adobe无法识别启用LTV的签名。我真的不明白我做错了什么,所以任何帮助都是值得感激的!
Store crlStore = new JcaCRLStore(crls);
gen.addCRLs(crlStore);
Store certStore = new JcaCertStore(certList);
gen.addCertificates(certStore);发布于 2021-06-03 21:05:19
您所做的错误是将CRLs放入通常用于CRLs的CMS签名容器元素中。但是,在集成PDF签名的情况下,情况就不同了;在这里,CRLs应该放在一个特殊的签名属性中。
查看已指定此属性的ISO 32000-1:
PKCS#7对象应该包含以下内容:
..。
..。
12.8.3.3.2撤销信息
adbe吊销信息属性:
::= { adbe(1.2.840.113583) acrobat(1)安全性(1)8}
吊销信息属性的值可以包括下列任何数据类型:
RFC 3280中描述的object.
来确定八进制字符串中包含的数据类型。
adbe的吊销信息属性值具有ASN.1类型的RevocationInfoArchival:
RevocationInfoArchival ::=序列{ crl显式序列,ocsp响应的可选OCSP 1显式序列,OtherRevInfo 2显式otherRevInfo序列,可选} OtherRevInfo ::=序列{类型对象标识符值八进制字符串}
https://stackoverflow.com/questions/67821453
复制相似问题