繁体   English   中英

使用 Java 和 iText 为 PDF 加时间戳的问题

[英]Problem with timestamping a PDF using Java and iText

我正在编写一个应用程序,用于使用 iText 和 Java 对 PDF 进行签名和时间戳记。 因为我们(在斯洛文尼亚)有不同的方法从我们的 TSA 获取时间戳(通过 web 服务,使用证书和密码)我不能使用 iText 中的这些方法。 为此,我有一个 Perl 脚本。 那么..我可以如何或使用哪些代码部分将时间戳和摘要(来自 web 服务响应)写入 PDF?

如果我完全按照您的要求进行操作,我不是,但听起来您想调整为 PDF 签名报告的日期。

假设您正在使用 PdfStamper 对文档进行签名,请在创建签名后尝试

pdfStamper.getSignatureAppearence().setSignDate(calendar)

其中 calendar 是您使用来自时间戳 web 服务的响应创建的日历实例。

让 iText 包含 TSA 信息以及签名有点复杂。 它有点超出我的知识领域,但据我了解,您需要使用外部生成的证书,并且大多数人使用 BouncyCastle 来完成。

这个讨论有一个如何做到这一点的例子。 在获取加密证书时,您最终会想要使用TSAClientBouncyCastle 页面还有一个替代示例,其中还包括 OCSP 信息。

如果您解决了这个问题,请添加您的解决方案,以便在 stackoverflow 上有更权威的答案。

这是一个例子

http://itextpdf.sourceforge.net/howtosign.html#signtsocspjava

你必须更换

   sap.setCrypto(null, chain, null, PdfSignatureAppearance.SELF_SIGNED);

为了

sap.setCrypto(pk, chain, null, PdfSignatureAppearance.WINCER_SIGNED);

并放置这些正确版本的库

- org.bouncycastle -> bcprov-jdk16 1.40
- org.bouncycastle -> bctsp-jdk16 1.38

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM