PDFbox如何创建PADES-LTV样本

时间:2016-06-21 07:15:34

标签: java pdf pdf-generation pdfbox pades

我正在使用PDFBox 2.0我想用PADES-LTV格式创建一个PDF,但不是我这样做的步骤。 我的问题是LTV参数和应用时的问题。

需要知道在什么时候添加以及如何

如果你可以引导我,我会把我的部分代码放进去。但我正在使用签名PDFBox的例子

https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/

提前致谢

public void signDetached(PDDocument document, OutputStream output, TSAClient tsaClient)
        throws IOException
{
    setTsaClient(tsaClient);

    // create signature dictionary
    PDSignature signature = new PDSignature();
    signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
    signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
    signature.setName("test PADES-LTV");
    signature.setLocation("Madrid, ES");
    signature.setReason("Testing");
    // TODO extract the above details from the signing certificate? Reason as a parameter?

    // the signing date, needed for valid signature
    signature.setSignDate(Calendar.getInstance());

    // register signature dictionary and sign interface
    document.addSignature(signature, this);

    // write incremental (only for signing purpose)
    document.saveIncremental(output);
}

我删除了第一个链接,因为它是在书店付款。

我有这些信息,但没有如何应用它PDFBox

  

根据ETSI TS 102 778-4 V1.1.2(2009-12)的PDF结构   应用LTV的文件如图2所示。

     

图2:使用LTV的PDF文档图示

     

保护的使用寿命可以进一步延长   生命 - 最后一个文档通过添加更多DSS应用的时间戳   用于验证上一个文档时间戳的信息   带有新文档的时间戳。如图3所示。

     

图3:重复LTV的PDF文档图示

     

另一方面,根据Adobe(由他们的PDF写的   福音传教士Leonard Rosenthol在1月的iText邮件列表上   2013年),

     

启用LTV意味着验证文件所需的所有信息   (减去根证书)包含在。所以这是你的陈述   会是真的。

     

PDF已正确签名并包含所有必要的证书,a   每个证书的有效CRL或OSCP响应但是从唯一开始   该陈述的真实方式是DSS的存在,你必须这样做   启用了支持LTV的DSS。没有时间戳(常规或文档   等级)是必需的。由于这种与LTV的PDF文件的分歧   根据ETSI通常由Adobe软件提供一个   不支持LTV的文档时间戳。

     

引用(对于itext):How to enable LTV for a timestamp signature?

0 个答案:

没有答案