Delphi XAdES 与 PAdES 数字签名 | sgcSign | eSeGeCe

Delphi 中的 XAdES 与 PAdES 数字签名

sgcSign 从 Delphi、C++Builder 和 .NET 代码生成符合 eIDAS 要求的数字签名:XAdES 用于 XML,PAdES 用于 PDF,CAdES 用于任何二进制内容,ASiC 容器则把文档与其签名打包在一起。全部四个 AdES 级别、10 种密钥提供程序和 21 个预配置的欧盟国家配置文件,采用原生 CNG/BCrypt 加密,无需外部 DLL。

覆盖每种 ETSI 格式,从 B-B 到 B-LTA

四个签名家族背后是同一个签名引擎。选择监管机构或对方期望的格式,其余交给配置文件。

Delphi XAdES / PAdES 数字签名组件只有一个任务:产出接收门户真正接受的结果。sgcSign 覆盖四个 ETSI 签名家族:XAdES(EN 319 132,XML)、PAdES(EN 319 142,PDF)、CAdES(EN 319 122,CMS/PKCS#7)以及 ASiC-S / ASiC-E 容器(EN 319 162),支持从 B-B(基础)、B-T(带时间戳)、B-LT(长期,内嵌证书链和吊销数据)到 B-LTA(带存档时间戳的长期)的每一个 AdES 级别。

您的密钥在哪里都可以:本地 PFX/PKCS#12 和 PEM 文件、Windows 证书存储、PKCS#11 智能卡和 HSM,或云服务(Azure Trusted Signing、AWS KMS、Google Cloud KMS、HashiCorp Vault、Certum SimplySign、CSC v2 远程 QTSP)。每个提供程序都实现同一个 IsgcKeyProvider 接口,因此从 PFX 文件切换到云 HSM 只是更换一个组件的事。

XAdES

包封式、包封内和分离式 XML 签名:TsgcSignXML + TsgcSignProfile_XAdES

PAdES

带可见外观的 PDF 签名,兼容 Adobe Acrobat:TsgcSignPDF + TsgcSignProfile_PAdES

CAdES 与 ASiC

对任何文件的 CMS/PKCS#7 签名,以及基于 ZIP 的 ASiC-S / ASiC-E 容器

编译器

Delphi 7 至 RAD Studio 13、C++Builder 和 .NET

为欧盟合规工作而生

把原始签名变成公共管理部门接受的文档所需的各个部分。

RFC 3161 时间戳

TSA.URL 指向任意时间戳机构,B-T 及以上级别会自动嵌入签名时间戳。

长期验证

对于 B-LT / B-LTA,OCSP.AutoFetchCRL.AutoFetch 获取并嵌入完整证书链和吊销数据,使文档多年后无需联网也能验证。

21 个国家配置文件

VeriFactu、TicketBAI、Facturae、FatturaPA、KSeF、Factur-X / ZUGFeRD、e-Factura、SAF-T PT、Peppol 等。每个配置文件都为目标监管机构预调好哈希、规范化、级别、时间戳和吊销策略。

雇佣合同

九个欧盟雇佣合同配置文件(德国、意大利、西班牙、法国、奥地利、比利时、葡萄牙、荷兰、波兰)预设了各司法辖区期望的 AdES / QES 级别。

验证与报告

TsgcSignatureVerifier 验证摘要、证书链、OCSP 吊销和时间戳,并返回包含检测到的级别、签名者和状态的结构化报告。

欧盟信任列表

TsgcEUTrustList 解析实时 LOTL 和各成员国信任列表,让您能够依据欧盟官方登记册判定任意证书是否为 eIDAS 合格证书。

可见 PDF 签名

签名者姓名、原因、地点、联系信息以及任意页面上可配置的签名矩形,兼容 Adobe Acrobat。

原生加密

底层使用 Windows CNG/BCrypt。无需随可执行文件部署 OpenSSL DLL。

库或服务器

同一引擎既作为进程内组件库提供,也作为 sgcSign Server 提供:一个面向构建集群和 CI 流水线的自托管 REST 签名守护进程。

先签一张 XML 发票,再签一份 PDF

加载密钥提供程序,配置一个配置文件,然后签名。每种格式都是同样的三步模式。

uses
  sgcSign_KeyProvider_PFX, sgcSign_XML, sgcSign_Profile_XAdES;

var
  vKeyProvider: TsgcPFXKeyProvider;
  vProfile: TsgcSignProfile_XAdES;
  vSigner: TsgcSignXML;
  vXML, vSigned: string;
begin
  vXML := TFile.ReadAllText('invoice.xml', TEncoding.UTF8);

  vKeyProvider := TsgcPFXKeyProvider.Create(nil);
  vKeyProvider.FileName := 'certificate.pfx';
  vKeyProvider.Password := 'secret';
  vKeyProvider.LoadFromFile;

  vProfile := TsgcSignProfile_XAdES.Create(nil);
  vProfile.Level := xalT;            // or xalLT, xalLTA
  vProfile.Packaging := xpkEnveloped;
  vProfile.HashAlgorithm := shaSHA256;
  vProfile.TSA.URL := 'https://freetsa.org/tsr';

  vSigner := TsgcSignXML.Create(nil);
  try
    vSigner.KeyProvider := vKeyProvider;
    vSigner.Profile := vProfile;
    vSigned := vSigner.SignXML(vXML);
    TFile.WriteAllText('invoice-signed.xml', vSigned, TEncoding.UTF8);
  finally
    vSigner.Free;
  end;
end;
var
  vProfile: TsgcSignProfile_PAdES;
  vSigner: TsgcSignPDF;
begin
  vProfile := TsgcSignProfile_PAdES.Create(nil);
  vProfile.Level := palT;
  vProfile.HashAlgorithm := shaSHA256;
  vProfile.TSA.URL := 'http://timestamp.digicert.com';

  // Optional visible signature widget
  vProfile.SignatureField.Visible := True;
  vProfile.SignatureField.Page := 1;
  vProfile.SignatureField.Rect := Rect(50, 50, 250, 120);
  vProfile.SignatureField.Reason := 'Approved';
  vProfile.SignatureField.Location := 'Madrid';

  vSigner := TsgcSignPDF.Create(nil);
  try
    vSigner.KeyProvider := vKeyProvider;
    vSigner.Profile := vProfile;
    vSigner.SignFile('invoice.pdf', 'invoice-signed.pdf');
  finally
    vSigner.Free;
  end;
end;

交付之前先验证

每个签名工作流都应以一次验证收尾。TsgcSignatureVerifier 接收已签名的 XML 或 PDF,并为每个签名返回一份报告:实际达到的 AdES 级别、签名者主题、时间戳以及任何证书链或吊销问题。如果您要求 B-T 而报告显示 B-B,说明时间戳请求失败了,而您会在自己的机器上发现这一点,而不是在监管机构的错误队列里。

对于 eIDAS 合格性检查,可将验证器与欧盟信任列表组件结合使用:sgcSign 按照欧盟自己的方式(依据实时 LOTL)验证签名,并能生成标准化的验证报告。

继续探索 sgcSign

教程:XAdES 签名

从普通 XML 发票到 XAdES-B-T:打包模式、时间戳和验证,循序渐进。

教程:PDF 签名

PAdES 的同款演练:配置文件、可见签名和增量更新。

国家配置文件

21 个预配置的欧盟电子发票和雇佣合同配置文件。

密钥提供程序

详解 PFX、PEM、Windows 存储、PKCS#11 令牌和云 KMS 提供程序。

sgcSign Server

通过 REST 的集中式远程签名。支持 GitHub Actions、Azure DevOps、Docker 和 Helm。

定价

组件库和服务器的许可,以及 All-Access 捆绑包。

Best value: All-AccessEvery eSeGeCe product, Premium Support included, from €1,059/year.
See All-Access pricing

立即签署您的第一份文档

下载试用版,用您自己的发票跑一遍 XAdES 教程,并端到端验证结果。