首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iText添加ltv信息

iText添加ltv信息
EN

Stack Overflow用户
提问于 2016-09-26 19:49:32
回答 1查看 1.3K关注 0票数 0

我正在尝试‘完成ltv’,一个已经签名的pdf,我发现这段代码使用itext:

http://developers.itextpdf.com/question/how-enable-ltv-timestamp-signature

代码语言:javascript
复制
public void addLtv(String src, String dest, OcspClient ocsp, CrlClient crl, TSAClient tsa)
throws IOException, DocumentException, GeneralSecurityException {

    PdfReader r = new PdfReader(src);
    FileOutputStream fos = new FileOutputStream(dest);
    PdfStamper stp = PdfStamper.createSignature(r, fos, '\0', null, true);
    LtvVerification v = stp.getLtvVerification();
    AcroFields fields = stp.getAcroFields();
    List<String> names = fields.getSignatureNames();
    String sigName = names.get(names.size() - 1);
    PdfPKCS7 pkcs7 = fields.verifySignature(sigName);
    if (pkcs7.isTsp()) {
        v.addVerification(sigName, ocsp, crl,
            LtvVerification.CertificateOption.SIGNING_CERTIFICATE,
            LtvVerification.Level.OCSP_CRL,
            LtvVerification.CertificateInclusion.NO);
    }
    else {
        for (String name : names) {
            v.addVerification(name, ocsp, crl,
                LtvVerification.CertificateOption.WHOLE_CHAIN,
                LtvVerification.Level.OCSP_CRL,
                LtvVerification.CertificateInclusion.NO);
        }
    }
    PdfSignatureAppearance sap = stp.getSignatureAppearance();
    LtvTimestamp.timestamp(sap, tsa, null);
}

我读到Adobe有一个“问题”,因为应用的时间戳不被认为是支持LTV的,并建议应用一个新的dss来解决这个问题。

我的问题:

  • 可以在应用时间戳之前添加此信息吗?如果我要添加一个dss来完成,我可以添加TSA时间戳信息(ocsp,crl.)也可以(也许用假标志获取信息),然后在不需要新dss的情况下应用时间戳。
代码语言:javascript
复制
- If yes... this is approved by ETSI? Can iText handle it? I noticed that addVerification adds info from signatures already included, but seems i can't add the required info with this method. There's another way to add 'free' verifications or addVerification let's me and i didn't notice?
- If no... Why? Then why i not need to timestamp again the new dss added?

如你所见..。我不是专家,我需要帮助。

非常感谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-27 16:53:37

我的问题:

  • 可以在应用时间戳之前添加此信息吗?如果我要添加一个dss来完成,我可以添加TSA时间戳信息(ocsp,crl.)也可以(也许用假标志获取信息),然后在不需要新dss的情况下应用时间戳。
    • 如果是..。这是ETSI批准的吗?iText能处理吗?我注意到addVerification添加了已经包含的签名信息,但是我似乎不能用这个方法添加所需的信息。还有另一种添加“免费”验证或addVerification的方法--让我和我没有注意到?
    • 如果没有..。为什么?那么,为什么我不需要再次时间戳新的决策支持系统呢?

从技术上讲,您可以在应用相关的签名/时间戳之前添加任何与验证相关的信息。实际上,您甚至必须这样做,如果使用ol‘型ISO 32000-1签名,需要验证信息才能在签名的属性中。

这些信息是否被验证者所接受,取决于。

ETSI TS 102 778-4 V1.1.1说:

4.3验证过程 建议确认程序如下:

  1. “最新”文档时间戳应在当前时间使用当前时间收集的验证数据进行验证。
  2. “内部”文档时间戳应在以前的文档时间戳时间上进行验证,并在前面的DSS中显示验证数据(并为后续的信封时间戳加盖时间戳)。
  3. 签名和签名时间戳应在最晚的LTV文档时间戳时间内验证,使用DSS中存储的验证数据和时间戳(通过连续的信封时间戳)。

没有文档时间戳的文档的验证不属于本概要文件的范围.

如果验证器根据这些建议进行验证,它将不会接受您想要的验证信息,至少它不会识别用于验证的时间戳。

但是,由于这些只是建议,其他TS或EN文档可能会提出不同的建议,因此您感兴趣的验证人员可能会按照您的要求接受您的验证信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39711206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档