显示启用了LTV的文档未启用LTV,层次结构itextsharp C#

这是来自Adding LTV in signature makes pdf invalid using C#

的扩展问题

我已经使用全局符号的DSS服务对文件进行了签名。但是该pdf显示了不同笔记本电脑和PC的不同行为。即使添加了LTV,也有一些Adobe Reader,它显示LTV尚未启用,并且假设在已签名的文档中有3个证书并且在我的Adobe中显示有效,但是在其他人的Adobe Reader中,只有一个或两个证书中间证书丢失或只有最后一个证书存在于链中。为什么Adobe的行为方式不一样,我无法理解。

未签名的pdf为:https://gofile.io/?c=Hd3tfm-我们在进行签名之前使用aspose在其上添加一张图像。 签名的pdf为:https://gofile.io/?c=Gu1kF2

为使其正常工作,我从这个类似的问题中获得了参考,并在我的代码中添加了AdobeLtvEnabling类和其他缺少的证书 :Trouble making pdf document LTV enabled in C# and iTextSharp

代码与我之前的问题相同,只是我删除了LTV部分并添加了此新的添加代码:

PdfReader reader = new PdfReader(finalsignedPdf);
FileStream os = new FileStream(finaltrustedSignedpdf,FileMode.CreateNew);
PdfStamper pdfStamper = new PdfStamper(reader,os,(char)0,true);
X509Certificate2 extra = new X509Certificate2(@"D:\CertExchange.cer");
AdobeLtvEnabling adobeLtvEnabling = new AdobeLtvEnabling(pdfStamper);
AdobeLtvEnabling.extraCertificates.Add(new Org.BouncyCastle.X509.X509Certificate(X509CertificateStructure.GetInstance(extra.GetRawCertData())));
IOcspClient ocspnw = new OcspClientBouncyCastle();
ICrlClient crl = new CrlClientOnline();
adobeLtvEnabling.enable(ocspnw,crl);
pdfStamper.Close();

但结果仍然相同。此修复程序可用于丢失了该额外证书的一台计算机,但不适用于其他计算机。请为LTV和证书提出建议,谢谢。

tankwu111 回答:显示启用了LTV的文档未启用LTV,层次结构itextsharp C#

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3167530.html

大家都在问