首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iTextSharp 5中实现PADES签名?

如何在iTextSharp 5中实现PADES签名?
EN

Stack Overflow用户
提问于 2019-12-10 08:24:24
回答 1查看 1.4K关注 0票数 0

我目前正在使用iTextSharp 5将数字签名应用于PDF。我使用BouncyCastle的支持在分离模式下应用签名,如下所示:

代码语言:javascript
复制
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允许我选择数字签名的标准,但我看到的唯一标准是CADESCMS,我还需要对PADES的支持。在iTextSharp中可以这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-10 11:19:43

PAdES

首先,你说你需要支持帕迪斯,但你没有提到你需要哪个PADES配置文件。

PAdES最初(2009/2010年)被指定为带有配置文件的ETSI技术规范(ETSI TS 102 778 parts 1-6)。

  • PAdES Basic -PAdES配置文件基于

32000-1

  • PAdES增强型-

-BES和PAdES-EPES Profile

  • 长期- PAdES-LTV配置文件
  • PAdES中的XML内容- XML容器中嵌入的XML文档的XAdES签名配置文件f 29

同时,(2016)它被更新为欧洲标准(ETSI EN 319 142 parts 1-2)。

级别为BES、BES、BES和B-LTA

  • Profile的
  • PAdES基准签名,用于PDF
  • 扩展的PAdES签名配置文件,级别为PAdES、PAdES和PAdES-E-LTV
  • Profiles for XAdES签名,它们在PDF

中签名

(后三个是旧配置文件的重新配置版本,但基准配置文件现在已成为焦点)。

iText 5.5.x

正如您发现的那样,iText枚举CryptoStandard知道两个选项CMSCADES

首先,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.

级扩展签名的配置文件

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59262944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档