如何获得TimeStamp证书?

时间:2013-06-24 11:48:54

标签: itext

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

但如何从PDF文件中获取TimeStamp证书?

1 个答案:

答案 0 :(得分:0)

您也可以为包含文档时间戳的签名字段调用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();

此代码检查文档的最外层签名或文档时间戳,并在知道的时候返回该签名或时间戳的证书链。

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