使用 iTextsharp (5.5.8) 添加签名 pades-epes signature-policy-identifier 属性
Add signature pades-epes signature-policy-identifier attribute with iTextsharp (5.5.8)
我目前正在针对包含 pdf 签名的业务案例评估 iTextSharp (5.5.8)。签名必须包含 pades-epes signature-policy-identifier 属性。我找不到包含此属性的文档和/或示例。所以我的问题是,iTextSharp 是否能够提供此属性,如果可以,如何添加它。
很遗憾,您没有显示您的代码中哪里卡住了。
如果您正在使用 MakeSignature.SignDetached
,恐怕不支持添加策略标识符。
但您始终可以使用 MakeSignature.SignExternalContainer
。这个助手允许您创建实际的签名容器以使用例如外部嵌入BouncyCastle,因此您可以包含任何您想要的属性,而 iText(Sharp) 会完成所有其余的工作。
我希望不会太晚,但我对 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
希望对你有所帮助。
我目前正在针对包含 pdf 签名的业务案例评估 iTextSharp (5.5.8)。签名必须包含 pades-epes signature-policy-identifier 属性。我找不到包含此属性的文档和/或示例。所以我的问题是,iTextSharp 是否能够提供此属性,如果可以,如何添加它。
很遗憾,您没有显示您的代码中哪里卡住了。
如果您正在使用 MakeSignature.SignDetached
,恐怕不支持添加策略标识符。
但您始终可以使用 MakeSignature.SignExternalContainer
。这个助手允许您创建实际的签名容器以使用例如外部嵌入BouncyCastle,因此您可以包含任何您想要的属性,而 iText(Sharp) 会完成所有其余的工作。
我希望不会太晚,但我对 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
希望对你有所帮助。