0

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

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

4

1 回答 1

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 节在PDF 文档的数字签名中验证 LTV 文档以在上下文中使用。

于 2013-06-24T13:20:27.453 回答