sgcSign
适用于 Delphi、C++Builder 和 .NET 的企业级数字签名套件。支持 10 个密钥提供者和 21 个预配置国家配置文件,可生成 XAdES、PAdES、CAdES 和 ASiC 签名——可作为进程内组件库或自托管远程签名服务器使用。
适用于 Delphi、C++Builder 和 .NET 的企业级数字签名套件。支持 10 个密钥提供者和 21 个预配置国家配置文件,可生成 XAdES、PAdES、CAdES 和 ASiC 签名——可作为进程内组件库或自托管远程签名服务器使用。
sgcSign 提供两种互补形态,共享相同的签名引擎、密钥提供者和国家配置文件。可选择嵌入式库、集中式服务器,或同时使用两者。
可直接嵌入应用程序的 Delphi / C++Builder / .NET 组件,可生成 XAdES、PAdES、CAdES 和 ASiC 签名。原生 CNG/BCrypt 加密,无需外部 DLL,包含完整源代码。
组件库功能 →自托管远程签名服务器——REST API、Bootstrap Web 管理台、Windows 服务安装程序。在文档格式基础上增加 Authenticode、ClickOnce、NuGet 和 VSIX 签名。内置 GitHub Actions、Azure DevOps、Jenkins、Docker 和 Helm 流水线。
服务器概览 →全面支持四种 ETSI 签名类型以及适用于 PE 二进制文件的 Microsoft Authenticode。支持所有四个 AdES 等级。
ETSI EN 319 132 — XML Advanced Electronic Signatures
支持 XML 封装、分离和包裹签名。等级 B-B / B-T / B-LT / B-LTA。在 Delphi 7+ 上通过 WideString 重载无损处理波兰语、西班牙语和德语带逆字符。
ETSI EN 319 142 — PDF Advanced Electronic Signatures
将数字签名嵌入 PDF 文档。可见签名外观包含签名者姓名、理由、位置、联系信息和可配置矩形。与 Adobe Acrobat 兼容。
ETSI EN 319 122 — CMS/PKCS#7 Advanced Electronic Signatures
对任意文件或数据流的 CMS/PKCS#7 二进制签名。支持分离和附属形式。BES、T 和 XL 层级。
ETSI EN 319 162 — Associated Signature Containers
将一个或多个文档以及关联的 XAdES 或 CAdES 签名打包到一个 ZIP 档案中。简单形式(一个文档)或扩展形式(清单 + 多个文档)。
代码签名——sgcSign 服务器
对 Windows PE 文件(.exe、.dll、.sys、.ocx)、ClickOnce 清单、NuGet 包和 VSIX 包进行签名。支持 SHA-256(默认)、SHA-384、SHA-512 以及双签名兼容老系统。
每个提供者均实现相同的 IsgcKeyProvider 接口,密钥源可无缝切换无需修改签名器。仅需更换一个组件,即可从 PFX 文件切换至 AWS KMS。
TsgcPFXKeyProvider
本地密码保护 PFX 文件。原生 Windows CNG 支持,无需 OpenSSL DLL。
TsgcPEMKeyProvider
PEM 编码的证书和加密 PKCS#8 私钥。原生 PBES2 / PBKDF2 / AES-CBC 解密——无需外部库。
TsgcWindowsCertStoreProvider
本地计算机和当前用户证书存储。与 Windows PKI 和 Active Directory 无缝集成。
TsgcPKCS11Provider
通过标准 PKCS#11 接口使用智能卡和 HSM——SafeNet、YubiKey、Nitrokey 以及任何提供 PKCS#11 驱动的厂商。
TsgcAzureTrustedSigningProvider
Microsoft 认证签名服务。OAuth2 客户端凭据,私钥永远不离开 Azure。与 Azure Key Vault 不同。
TsgcAWSKMSKeyProvider
AWS 密钥管理服务。使用 AWS 中的密钥进行签名;发送文档哈希,返回原始签名。
TsgcGCloudKMSKeyProvider
Google Cloud 密钥管理。服务账户认证,密钥托管于 Google Cloud。
TsgcHashiCorpVaultKeyProvider
Vault 传输签名引擎。密钥始终存放在 Vault 中;文档哈希通过经过认证的 REST API 发送。
TsgcCertumSimplySignProvider
波兰资质电子签名提供商。基于云的远程签名,适用于 KSeF、ZUS 和其他波兰政务门户。
TsgcCSCKeyProvider
通用 CSC v2 客户端,适用于远程 QTSP——Universign、D-Trust sign-me、A-Trust、FNMT Cl@ve Firma、Evrotrust、Intesi Group 等。
每个配置文件均预先设置哈希算法、规范化、签名级别、时间戳和 OCSP 吐销策略,以匹配目标国家的监管要求。一行代码即可切换司法管辖区域。
| Profile | Country | System | Format | Level |
|---|---|---|---|---|
spVeriFactu | Spain | VeriFactu (AEAT) | XAdES-EPES | B-B |
spTicketBAI | Spain (Basque) | TicketBAI | XAdES-EPES | B-B |
spFacturaeB2B | Spain | Facturae 3.x / FACe | XAdES-EPES | B-T |
spFatturaPA | Italy | FatturaPA (SDI) | XAdES-BES | B-B |
spSAFTPT | Portugal | SAF-T PT | RSA-SHA256 | B-B |
spKSeF | Poland | KSeF (Krajowy System e-Faktur) | XAdES | B-T |
spFacturX | France / Germany | Factur-X / ZUGFeRD | XAdES | B-B |
spEFactura | Romania | e-Factura (ANAF) | XAdES | B-T |
spNAVOnline | Hungary | NAV Online | XML-DSig | B-B |
spFiskalizacija | Croatia | Fiskalizacija | XML-DSig | B-B |
spPeppolBE / spPeppolBG | EU (Belgium, Bulgaria) | Peppol UBL 2.x | XAdES | B-T |
spMyDATA | Greece | myDATA (AADE) | XAdES | B-B |
符合 eIDAS 规范的签名,满足各成员国对劳动合同的劳动法要求。根据各司法管辖区域预先设置 AdES / QES 等级、哈希、规范化、时间戳和 OCSP 吐销策略。被劳动行政验证机构接受。
spEmploymentDE等级 B-LT,书面形式合同(如定期超过 24 个月、合同后竞业禁止)依据 § 126a BGB 需要 QES。
spEmploymentIT等级 B-LT,FEQ 资质签名。CAdES(.p7m)广泛使用;XAdES 同样被接受。INPS 门户均支持。
spEmploymentES等级 B-T,AdES 即可。SEPE / TGSS 门户需要 FNMT 或 DNIe 证书;CRL 通过 FNMT 信任列表获取。
spEmploymentFR等级 B-T,AdES 可行。DSP2 / RGS 远程签名流程首选 QES。
spEmploymentAT等级 B-LT。常用 Handy-Signatur / ID Austria 的 QES。
spEmploymentBE等级 B-LT。通过 eID 卡(BeID)的 QES。
spEmploymentPT等级 B-LT。通过 Cartão do Cidadão / Chave Móvel Digital 的 QES。
spEmploymentNL等级 B-T。AdES 普遍被接受;某些 HR 门户(UWV)需要 QES。
spEmploymentPL等级 B-T。合同提交至 ZUS / PUE 时需要通过 Profil Zaufany 或资质证书的 QES。
sgcSign 采用与 EU 相同的方式验证签名——对照实时 LOTL,生成劳动法院和公共行政机构接受的标准化 XML 报告作为法律证明。
完整验证流程——摘要校验、RSA/ECDSA 签名验证、证书链验证、OCSP 吐销检查、内嵌长期验证 RevocationValues、基于 ID 的 SignedProperties 片段查找。
TsgcEUTrustList 解析 ETSI TS 119 612 信任列表的列表以及约 31 个成员国信任列表。通过将证书签发 TSP 服务与实时 EU 注册表匹配,对任意 X.509 证书进行 eIDAS 资质分类。
每次验证均生成标准化 XML 验证报告(v1.2.1)——被 EU 劳动法院和公共行政验证机构接受为签名有效性的法律证明。
内置 TsgcTSAClient,支持任意 RFC 3161 时间戳机构。可将签名提升至 XAdES-T、XAdES-LT 和 XAdES-LTA——即使签名证书过期后仍可验证。
// Sign Spanish VeriFactu invoice
var
vKeyProvider: TsgcPFXKeyProvider;
vSigner: TsgcDocumentSigner;
begin
vKeyProvider := TsgcPFXKeyProvider.Create(nil);
try
vKeyProvider.FileName := 'certificate.pfx';
vKeyProvider.Password := 'secret';
vKeyProvider.LoadFromFile;
vSigner := TsgcDocumentSigner.Create(nil);
try
vSigner.KeyProvider := vKeyProvider;
vSigner.Profile := spVeriFactu;
memoSigned.Text := vSigner.SignXML(memoXML.Text);
finally
vSigner.Free;
end;
finally
vKeyProvider.Free;
end;
end;
// Authenticode-sign with Azure Trusted Signing
var
vKeyProvider: TsgcAzureTrustedSigningProvider;
vSigner: TsgcAuthenticodeSigner;
begin
vKeyProvider := TsgcAzureTrustedSigningProvider.Create(nil);
vSigner := TsgcAuthenticodeSigner.Create(nil);
try
vKeyProvider.AccountName := 'my-trusted-signing-account';
vKeyProvider.CertificateProfileName := 'public-trust';
vKeyProvider.Endpoint := 'https://eus.codesigning.azure.net';
vSigner.KeyProvider := vKeyProvider;
vSigner.SignFile('myapp.exe', 'myapp-signed.exe');
finally
vSigner.Free;
vKeyProvider.Free;
end;
end;
// PAdES-T with visible signature appearance
var
vKeyProvider: TsgcWindowsCertStoreProvider;
vSigner: TsgcPAdESSigner;
vTSA: TsgcTSAClient;
begin
vKeyProvider := TsgcWindowsCertStoreProvider.Create(nil);
vSigner := TsgcPAdESSigner.Create(nil);
vTSA := TsgcTSAClient.Create(nil);
try
vKeyProvider.SubjectName := 'CN=Acme Corp';
vKeyProvider.LoadFromStore;
vTSA.URL := 'https://freetsa.org/tsr';
vSigner.KeyProvider := vKeyProvider;
vSigner.TSAClient := vTSA;
vSigner.Reason := 'Approved';
vSigner.Location := 'Madrid, Spain';
vSigner.VisibleSignature.Enabled := True;
vSigner.SignPDF('contract.pdf', 'contract-signed.pdf');
finally
vTSA.Free;
vSigner.Free;
vKeyProvider.Free;
end;
end;
需要为构建流水线提供集中式签名?sgcSign 服务器将相同的引擎封装在 REST API 和 Bootstrap Web 管理台背后——Windows 服务安装程序、内置 GitHub Actions / Azure DevOps / Jenkins / Docker / Helm 流水线、多租户项目模型、两步审批工作流、SHA-256 哈希链审计日志、Prometheus 指标和 HMAC 签名的 Webhook。
name: Sign Release
on: [push]
jobs:
sign:
runs-on: windows-latest
steps:
- uses: esegece/sgcsign-action@v1
with:
server: https://sign.acme.local
project: acme-release
file: myapp.exe
format: authenticode