我试图'完成到ltv'的pdf已经签署,我发现这个代码使用它的文本:
http://developers.itextpdf.com/question/how-enable-ltv-timestamp-signature
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来解决这个问题。
我的问题:
>
>
如果是...这是ETSI批准的?iText能处理吗?我注意到,addVerise添加信息从签名已经包括,但似乎我不能添加所需的信息与此方法。还有另一种方法可以添加免费验证或添加验证让我来,我没有注意到?
如果没有。。。为什么?那么为什么我不需要再次为新添加的dss添加时间戳呢?
正如你所看到的。。。我不是专家,我需要一些帮助。
非常感谢你的帮助!
我的问题:
从技术上讲,您可以在应用相关的签名/时间戳之前添加任何验证相关信息。实际上,在传统的ISO 32000-1签名要求验证信息位于签名属性中的情况下,您甚至必须这样做。
核查人员是否接受此类信息取决于。
ETSI TS 102 778-4 V1。1.1说:
建议验证程序如下:
>
“最新”文档时间戳应在当前时间使用当前时间收集的验证数据进行验证。
“内部”文件时间戳应在前一个DSS中存在的验证数据(以及连续信封时间戳的时间戳)的前一个文件时间戳时间进行验证。
签名和签名时间戳应使用DSS中存储的验证数据和时间戳(通过连续信封时间戳)在最里面的LTV文档时间戳时间进行验证
验证没有文档时间戳的文档不在此配置文件的范围内。
如果验证器根据这些建议进行验证,它将不会按照您的要求接受您的验证信息,至少它不会识别为其验证而在信息上加盖时间戳。
但是,由于这些只是建议,其他TS或EN文件可能会提出不同的建议,因此您感兴趣的验证者可能会根据您的需要接受您的验证信息。
问题内容: 我试图在没有LTV格式的已签名PDF文档中启用LTV。在所有情况下,我都找到了相同的示例,如链接中所述。如何为时间戳签名启用LTV,启用iText LTV-如何添加更多CRL?,它定义了获得预期结果的过程。碰巧我没有工作,它没有给我任何错误,但是我没有添加LTV。 为什么在执行以下代码时不会给我任何错误,但是我不添加LTV的一些想法。 这是我尝试添加LTV的方法: 我正在使用的版本:
我正在尝试在一个已经签名的PDF文档中启用LTV,而不使用LTV格式。我在所有情况下都发现了相同的示例,如链接“如何为时间戳签名启用LTV”,iText LTV enabled-如何添加更多CRL?”中所述,定义了获得预期结果的过程。碰巧我没有工作,它没有给我任何错误,但我没有添加LTV。 关于为什么在执行以下代码时没有给我任何错误的想法,但是我没有添加LTV。 这就是我尝试添加LTV的方法: 我
我是新来的iText 7,我已经尝试添加ltv信息到现有的签名通过使用addolv()方法(下面提供的代码)...如果我理解正确的话,这个方法将crl或ocsp参数添加到现有的签名或时间戳中,然后对文档进行时间戳,但是生成的pdf文档没有启用ltv。然而,如果我首先用ocsp或crl列表签署文档,我就能够生成支持LTV的签名,这让我相信这个问题与某些证书丢失或未正确添加无关。因此,由于某种原因,a
我已经阅读了许多关于如何使用iText启用pdf ltv的问题/答案。他们俩都不为我工作。我有一个pdf的蒸汽,我设置了一个签名字段,然后使用它来调用SignDistached方法并对pdf进行签名。我使用: 但什么都没发生。我已经读到,你必须包括所有的证书,除了从根。我添加了我的私人证书链(我使用它来签署pdf),但我还没有找到一种可能的方式包括TSA的证书。 我使用iText版本7. X。
我有一个带有LTV签名的PDF文档(文档包含DSS字典)。如果签名后添加的唯一信息是DSS,为什么iText检查签名是否覆盖整个文档返回FALSE?文件中未作其他更改。 在iText 7.1.7中,方法不考虑DSS字节范围。对我来说,DSS是签名和验证检查的一部分,应该与此一起计算。 调用方法时,如何忽略/排除PDF文档末尾的DSS字节?
我正在编写一个小型库,旨在成为一个高级(简单易用)库,用于对使用WeasyPrint库生成的pdf进行数字签名(https://github.com/Kozea/WeasyPrint). 我已经让它为自签名证书工作,现在我正在从GlobalSignDSS API(https://www.globalsign.com/en/resources/apis/api-documentation/digit