我目前正在使用iTextSharp 5将数字签名应用于PDF。我使用BouncyCastle的支持在分离模式下应用签名,如下所示:
public void Sign(PDFDocument doc, SigningKey key)
{
using (PdfReader reader = new PdfReader(doc.Content))
using (MemoryStream memStream = new MemoryStream())
using (PdfStamper stamper = PdfStamper.CreateSignature(reader, memStream, '\0'))
{
PdfSignatureAppearance signature = stamper.SignatureAppearance;
IExternalSignature pks = new PrivateKeySignature(key.ToParameters(), DigestAlgorithms.SHA256);
MakeSignature.SignDetached(signature, pks, key.CertChain, null, null, null, 0, CryptoStandard.CADES);
doc.Content = memStream.ToArray();
}
}我发现CryptoStandard允许我选择数字签名的标准,但我看到的唯一标准是CADES和CMS,我还需要对PADES的支持。在iTextSharp中可以这样做吗?
发布于 2019-12-10 11:19:43
PAdES
首先,你说你需要支持帕迪斯,但你没有提到你需要哪个PADES配置文件。
PAdES最初(2009/2010年)被指定为带有配置文件的ETSI技术规范(ETSI TS 102 778 parts 1-6)。
32000-1
-BES和PAdES-EPES Profile
f 29同时,(2016)它被更新为欧洲标准(ETSI EN 319 142 parts 1-2)。
级别为BES、BES、BES和B-LTA
中签名
(后三个是旧配置文件的重新配置版本,但基准配置文件现在已成为焦点)。
iText 5.5.x
正如您发现的那样,iText枚举CryptoStandard知道两个选项CMS和CADES。
首先,CADES不是用于生成任意的CAdES签名,而是用于生成特殊配置的CAdES签名容器,并将它们嵌入到PDF中,这是非CMS配置文件PAdES签名所必需的。
因此,关于你的问题
I还需要对PADES的支持。在iTextSharp中可以这样做吗?
是的,iText 5.5.x确实支持简单的PAdES配置文件。特别是,您将使用CryptoStandard值进行以下配置文件:
CryptoStandard.CMS用于PDF;CryptoStandard.CADES中用于CMS数字签名的配置文件,用于BES级和BES级的基准签名,以及在PAdES和PAdES-E-EPES.级扩展签名的配置文件
https://stackoverflow.com/questions/59262944
复制相似问题