Itext 如何获取时间戳证书?

Itext 如何获取时间戳证书?,itext,Itext,为了在时间戳中添加docuemnt,使用itext,我们有com.itextpdf.text.pdf.security.TSAClient抽象接口 但是如何从PDF文件中获取时间戳证书呢?对于包含文档时间戳的签名字段,您也可以调用AcroFields方法verifySignature,并查询证书的结果 PdfReader reader = ...; AcroFields fields = reader.getAcroFields(); List<String> names = fie

为了在时间戳中添加docuemnt,使用itext,我们有com.itextpdf.text.pdf.security.TSAClient抽象接口


但是如何从PDF文件中获取时间戳证书呢?

对于包含文档时间戳的签名字段,您也可以调用
AcroFields
方法
verifySignature
,并查询证书的结果

PdfReader reader = ...;
AcroFields fields = reader.getAcroFields();
List<String> names = fields.getSignatureNames();
String signatureName = names.get(names.size() - 1);
PdfPKCS7 pkcs7 = fields.verifySignature(signatureName);
System.out.println(String.format("Checking %ssignature %s", pkcs7.isTsp() ? "document-level timestamp " : "", signatureName));
Certificate[] chain = pkcs7.getSignCertificateChain();
PdfReader阅读器=。。。;
AcroFields=reader.getAcroFields();
列表名称=字段。getSignatureNames();
String signatureName=names.get(names.size()-1);
PdfPKCS7 pkcs7=字段。验证签名(signatureName);
System.out.println(String.format(“检查%s签名%s”,pkcs7.isTsp()?“文档级时间戳”:“”,signatureName));
证书[]链=pkcs7.getSignCertificateChain();
此代码检查文档的最外层签名或文档时间戳,并返回已知的该签名或时间戳的证书链


您可能希望查看
LtvVerifier
类(我从中提取了上述代码)以验证所有签名和文档时间戳,并阅读第5.4.4节验证中的LTV文档以供上下文使用。

您是指签名时间戳吗?或者对于独立的文档级时间戳?我指的是文档级时间戳。我和客户签约。LtvTimestamp.时间戳(外观,tsa,“sig”);然后我需要那个证书,比你还需要。请也看看这个问题;