【发布时间】:2015-08-17 12:46:10
【问题描述】:
我正在使用 pdfBox 来完成一个包含撤销信息的 pades 文档。目标是文档启用 LTV。
我正在使用的文档有 1 个签名和一个时间戳。我有必要的 crl/ocsp 令牌。
我的问题是如何构建一个 COSDictionary 来获得 CRL 和 OCSP 的响应?
InMemoryDocument doc = new InMemoryDocument(getFile());
PDDocument document = PDDocument.loadNonSeq(doc.openStream(), null);
COSDictionary cosDictionary = document.getDocumentCatalog().getCOSDictionary();
...
cosDictionary.setNeedToBeUpdate(true);
谢谢
【问题讨论】:
-
您使用
InMemoryDocument似乎表明您使用欧盟加入sd-dss。该项目的当前 4.5-SNAPSHOT 开发版本使用 PDFBox 1.8.8。除了添加签名之外,我还没有看到一种使用 PDFBox 1.8.x 增量更新机制的干净方法。但是,如果我理解正确,您希望在 DSS 字典中添加验证相关信息而不添加文档时间戳。因此,您需要增量更新。恐怕没有简单的方法可以做到这一点,您可能需要为此改进一下 PDFBox。 -
是的,我正在使用 sd-dss 将文档扩展到 LTA 级别。例如,我有一份来自 TSA 的具有 1 个签名和 1 个时间戳的文档。在这种情况下,做签名的人没有包括撤销信息。所以 adobe 会说签名没有启用 LTV,但时间戳是。我的问题是如何将有关签名的撤销信息添加到 DSS 字典中。
-
我会在长周末尝试调查这个问题,现在就开始吧。如上所述,我还没有看到一种简单的方法来实现所需要的,即使用 PDFBox 增量更新签名以外的其他内容。
-
谢谢。我已经向 DSS 添加了必要的信息,但这不是一个优雅的解决方案。我不得不稍微更改 dss-documenbt 库。
-
我已经向 DSS 添加了必要的信息,但这不是一个优雅的解决方案。 - 如果您添加了代码,则更容易判断您的解决方案是否(尽管可能不优雅)是使用 PDFBox 或不使用的最佳解决方案。
标签: java pdf pdf-generation pdfbox