Добавьте атрибут подписи pades-epes signature-policy-identifier с помощью iTextsharp (5.5.8)

В настоящее время я оцениваю iTextSharp (5.5.8) для бизнес-кейса, который включает в себя подписание PDF. Подпись должна включать атрибут идентификатора политики подписи pades-epes. Я не могу найти документацию и / или образцы для включения этого атрибута. Поэтому у меня возникает вопрос, может ли iTextSharp предоставить этот атрибут и, если да, то как его можно добавить.

2 ответа

Решение

Надеюсь, не будет слишком поздно, но я добавил некоторые изменения в исходный код iTextSharp для поддержки подписей PAdES-EPES. Вот пример моего кода:

        SignaturePolicyInfo spi = new SignaturePolicyInfo();
        spi.PolicyIdentifier = "2.16.724.1.3.1.1.2.1.9";
        spi.PolicyHash = "G7roucf600+f03r/o0bAOQ6WAs0=";
        spi.PolicyDigestAlgorithm = "SHA-1";
        spi.PolicyUri = "https://sede.060.gob.es/politica_de_firma_anexo_1.pdf";

        MakeSignature.SignDetached(signatureAppearance, externalSignature, chain, null, null, null, 0, CryptoStandard.CADES, spi);

Вы можете взглянуть на: https://github.com/zinkpad/itextsharp

Я надеюсь, что это поможет вам.

К сожалению, вы не показали, где в вашем коде вы застряли.

Если вы используете MakeSignature.SignDetachedБоюсь, что добавление идентификатора политики не поддерживается.

Но вы всегда можете использовать MakeSignature.SignExternalContainer вместо. Этот помощник позволяет вам создавать фактический контейнер подписи для встраивания извне, используя, например, BouncyCastle, так что вы можете включить любой атрибут, который хотите, а iText(Sharp) сделает все остальное.

Другие вопросы по тегам