java LTV支持PDF格式的签名
据我所知,有两种方法
- 添加DSS字典
- 在签名时在签名中嵌入CRL或OCSP响应
DSS方式似乎可行,Adobe将该签名识别为启用了LTV。第二种方法将更适合我们的应用程序,所以我仍然尝试让它工作。我在将OCSP响应添加到签名时遇到问题,因此我只尝试添加证书和CRL。如果我错了,请纠正我,但据我所知,CRL或OCSP响应应该添加到签名中。两者都不需要吗?我收集签名证书及其根证书,以及TSA证书及其根证书。之后,我去拿所有的CRL。所有这些都是在签名和时间戳之前添加的。仅添加证书和CRL似乎不起作用,因为Adobe不承认该签名已启用LTV。我真的不明白我做错了什么,所以非常感谢任何帮助
Store crlStore = new JcaCRLStore(crls);
gen.addCRLs(crlStore);
Store certStore = new JcaCertStore(certList);
gen.addCertificates(certStore);
# 1 楼答案
错误之处在于将CRL放入通常用于CRL的CMS签名容器元素中。然而,在集成PDF签名的情况下,情况就不同了;在这里,CRL应该在一个特殊的有符号属性中
查看ISO 32000-1,其中已经指定了该属性: