Delphi での XAdES & PAdES 電子署名
sgcSign は Delphi、C++Builder、.NET のコードから eIDAS 級の電子署名を生成します: XML には XAdES、PDF には PAdES、あらゆるバイナリコンテンツには CAdES、そしてドキュメントと署名を束ねる ASiC コンテナ。4 つの AdES レベルすべて、10 の鍵プロバイダー、21 の事前構成済み EU 国別プロファイルを、ネイティブ暗号で、外部 DLL なしに提供します。
sgcSign は Delphi、C++Builder、.NET のコードから eIDAS 級の電子署名を生成します: XML には XAdES、PDF には PAdES、あらゆるバイナリコンテンツには CAdES、そしてドキュメントと署名を束ねる ASiC コンテナ。4 つの AdES レベルすべて、10 の鍵プロバイダー、21 の事前構成済み EU 国別プロファイルを、ネイティブ暗号で、外部 DLL なしに提供します。
4 つの署名ファミリーの背後に 1 つの署名エンジン。規制当局や取引先が期待する形式を選べば、残りはプロファイルがやってくれます。
Delphi XAdES / PAdES 電子署名コンポーネントの仕事はただ 1 つ、受け取り側のポータルが実際に受理する出力を生成することです。sgcSign は 4 つの 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 への切り替えはコンポーネント 1 つの変更で済みます。
Enveloped、enveloping、detached の XML 署名: TsgcSignXML + TsgcSignProfile_XAdES
可視外観付きの PDF 署名、Adobe Acrobat 互換: TsgcSignPDF + TsgcSignProfile_PAdES
あらゆるファイルに対する CMS/PKCS#7 署名と、ZIP ベースの ASiC-S / ASiC-E コンテナ
Delphi 7 から RAD Studio 13、C++Builder、.NET
生の署名を、公的機関が受理するドキュメントに変える部品たち。
TSA.URL を任意のタイムスタンプ局に向ければ、B-T 以上のレベルは署名タイムスタンプを自動的に埋め込みます。
B-LT / B-LTA では、OCSP.AutoFetch と CRL.AutoFetch が完全なチェーンと失効データを取得して埋め込むため、ドキュメントはネットワーク呼び出しなしで何年も検証可能です。
VeriFactu、TicketBAI、Facturae、FatturaPA、KSeF、Factur-X / ZUGFeRD、e-Factura、SAF-T PT、Peppol ほか。各プロファイルは、対象の規制当局に合わせてハッシュ、正規化、レベル、タイムスタンプ、失効ポリシーを事前調整します。チェコ EET 2.0 売上登録は、専用のコンポーネント TsgcEETClient として提供されます。
9 つの EU 雇用契約プロファイル(ドイツ、イタリア、スペイン、フランス、オーストリア、ベルギー、ポルトガル、オランダ、ポーランド)が、各法域の期待する AdES / QES レベルを事前設定します。
TsgcSignatureVerifier がダイジェスト、チェーン、OCSP 失効、タイムスタンプを検証し、検出されたレベル、署名者、ステータスを含む構造化レポートを返します。
TsgcEUTrustList がライブの LOTL と各加盟国のトラステッドリストをパースするため、公式の EU レジストリに照らして任意の証明書を eIDAS 適格として分類できます。
署名者名、理由、場所、連絡先情報と、任意のページに設定可能な署名矩形。Adobe Acrobat 互換。
Windows では内部は Windows CNG/BCrypt、Linux64、macOS、iOS、Android では純粋な Pascal のエンジンです。実行ファイルと一緒に配布する OpenSSL DLL はありません。
同じエンジンが、インプロセスのコンポーネントライブラリとしても、ビルドファームや CI パイプラインのためのセルフホスト REST 署名デーモンである sgcSign Server としても提供されます。
鍵プロバイダーを読み込み、プロファイルを構成し、署名する。どの形式でも同じ 3 ステップパターンです。
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 適格性チェックには、検証者を EU トラストリストコンポーネントと組み合わせてください: sgcSign は EU が検証するのと同じ方法で、ライブの LOTL に照らして署名を検証し、標準化された検証レポートを生成できます。
プレーンな XML 請求書から XAdES-B-T へ: パッケージングモード、タイムスタンプ、検証をステップ・バイ・ステップで。
PAdES 版の同じウォークスルー: プロファイル、可視署名、増分更新。
電子請求書と雇用契約のための 21 の事前構成済み EU プロファイル。
PFX、PEM、Windows ストア、PKCS#11 トークン、クラウド KMS プロバイダーの詳細。
REST 上の集中リモート署名。GitHub Actions、Azure DevOps、Docker、Helm に対応。
コンポーネントライブラリとサーバーのライセンス、そして All-Access バンドル。