Показывает, что LTV не включен для документов с поддержкой LTV, сертификат отсутствует в иерархии itextsharp C # - PullRequest
0 голосов
/ 04 ноября 2019

Это расширенный вопрос от: Добавление LTV в подпись делает PDF недействительным с использованием C #

Я подписал файл, используя службы DSS глобального знака. Но этот PDF показывает различное поведение для разных ноутбуков и ПК. Некоторый Adobe Reader, даже если LTV добавлен. Он показывает, что LTV не включен, более того, предположим, что есть 3 сертификата в подписанном документе и показывает действительный в моем Adobe, но в Adobe Reader это только один или два сертификата среднего сертификата отсутствует или только последнийСертификат присутствует в цепочке. почему Adobe ведет себя по-другому, я не мог понять.

PDF без подписи: https://gofile.io/?c=Hd3tfm - Мы добавляем одно изображение с использованием aspose перед тем, как приступить к подписанию. Подписанный pdf: https://gofile.io/?c=Gu1kF2

Чтобы он заработал, я взял ссылку на этот похожий вопрос и добавил класс AdobeLtvEnabling и дополнительные недостающие сертификаты в своем коде: Устранение неполадок, связанных с включением LTV в PDF-документ в C # и 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 и сертификат, спасибо заранее.

...