使用iTextsharp(5.5.8)添加签名pades-epes signature-policy-identifier属性

时间:2016-01-04 08:47:18

标签: itext digital-signature pades

我目前正在评估iTextSharp(5.5.8)的商业案例,其中包括pdf签名。签名必须包含pades-epes signature-policy-identifier属性。我找不到包含此属性的文档和/或示例。所以我的问题是iTextSharp是否能够提供这个属性,如果是这样,它是如何添加的。

2 个答案:

答案 0 :(得分:1)

我希望不会太晚,但我在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

我希望这对你有所帮助。

答案 1 :(得分:0)

很遗憾,您没有在代码中显示卡住的位置。

如果您使用MakeSignature.SignDetached,我担心不支持添加政策标识符。

但您可以随时使用MakeSignature.SignExternalContainer。这个帮助器允许您创建实际的签名容器,以便使用例如外部嵌入。 BouncyCastle,所以你可以包含你想要的任何属性,而iText(夏普)可以完成所有其他属性。