我是iText的新手。我想签署PDF并添加LTV。签名PDF很好但是当我想将LTV添加到PDF时,它没有显示TimeStamp证书的OCSP和CRL信息。 首先,我想描述一下我的签名方式。 - 我的证书链:签署证书,签署证书根,TimeStamp证书,TimeStamp证书根。 (我忘了链中的任何东西吗?)
对于签名PDF,我正在使用:
MakeSignature.SignDetached(signatureAppearance, externalSignature, chain, crlList, ocsp2, tsa1, 0, CryptoStandard.CMS);
之后,我正在为签名和TimeStamp添加LTV。
PdfReader r = new PdfReader(this.Source);
FileStream fos = new FileStream(this.Output, FileMode.Create);
PdfStamper stp = PdfStamper.CreateSignature(r, fos, '\0', null, true);
LtvVerification v = stp.LtvVerification;
AcroFields fields = stp.AcroFields;
List<String> names = fields.GetSignatureNames();
String sigName = names[names.Count - 1];
PdfPKCS7 pkcs7 = fields.VerifySignature(sigName);
if (pkcs7.IsTsp)
v.AddVerification(sigName, this.ocspClient, this.crlClient, LtvVerification.CertificateOption.SIGNING_CERTIFICATE, LtvVerification.Level.OCSP_CRL, LtvVerification.CertificateInclusion.NO);
else
foreach (String name in names)
v.AddVerification(name, this.ocspClient, this.crlClient, LtvVerification.CertificateOption.WHOLE_CHAIN, LtvVerification.Level.OCSP_CRL, LtvVerification.CertificateInclusion.NO);
PdfSignatureAppearance sap = stp.SignatureAppearance;
LtvTimestamp.Timestamp(sap, this.tsaClient, null);
我正在执行这两次,一次是Signature,第二次是TimeStamp。这是Adobe的结果:
正如您所看到的,签名证书没有问题。我可以看到嵌入在PDF中的OCSP信息。但是当我控制timeStamp证书时,我可以看到没有OCSP - CRL信息显示。
第二张图片表示时间戳证书。 如何为时间戳证书嵌入OCSP和CRL?
谢谢。