Delphi XAdES & PAdES 電子署名 | sgcSign | eSeGeCe

Delphi での XAdES & PAdES 電子署名

sgcSign は Delphi、C++Builder、.NET のコードから eIDAS 級の電子署名を生成します: XML には XAdES、PDF には PAdES、あらゆるバイナリコンテンツには CAdES、そしてドキュメントと署名を束ねる ASiC コンテナ。4 つの AdES レベルすべて、10 の鍵プロバイダー、21 の事前構成済み EU 国別プロファイルを、ネイティブ CNG/BCrypt 暗号で、外部 DLL なしに提供します。

あらゆる ETSI 形式、B-B から B-LTA まで

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 つの変更で済みます。

XAdES

Enveloped、enveloping、detached の 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

EU コンプライアンス業務のために構築

生の署名を、公的機関が受理するドキュメントに変える部品たち。

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 ほか。各プロファイルは、対象の規制当局に合わせてハッシュ、正規化、レベル、タイムスタンプ、失効ポリシーを事前調整します。

雇用契約

9 つの EU 雇用契約プロファイル(ドイツ、イタリア、スペイン、フランス、オーストリア、ベルギー、ポルトガル、オランダ、ポーランド)が、各法域の期待する AdES / QES レベルを事前設定します。

検証 & レポート

TsgcSignatureVerifier がダイジェスト、チェーン、OCSP 失効、タイムスタンプを検証し、検出されたレベル、署名者、ステータスを含む構造化レポートを返します。

EU トラストリスト

TsgcEUTrustList がライブの LOTL と各加盟国のトラステッドリストをパースするため、公式の EU レジストリに照らして任意の証明書を eIDAS 適格として分類できます。

可視 PDF 署名

署名者名、理由、場所、連絡先情報と、任意のページに設定可能な署名矩形。Adobe Acrobat 互換。

ネイティブ暗号

内部は Windows CNG/BCrypt。実行ファイルと一緒に配布する OpenSSL DLL はありません。

ライブラリまたはサーバー

同じエンジンが、インプロセスのコンポーネントライブラリとしても、ビルドファームや CI パイプラインのためのセルフホスト REST 署名デーモンである sgcSign Server としても提供されます。

XML 請求書に署名し、次に PDF へ

鍵プロバイダーを読み込み、プロファイルを構成し、署名する。どの形式でも同じ 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 に照らして署名を検証し、標準化された検証レポートを生成できます。

sgcSign をさらに進める

チュートリアル: XAdES 署名

プレーンな XML 請求書から XAdES-B-T へ: パッケージングモード、タイムスタンプ、検証をステップ・バイ・ステップで。

チュートリアル: PDF 署名

PAdES 版の同じウォークスルー: プロファイル、可視署名、増分更新。

国別プロファイル

電子請求書と雇用契約のための 21 の事前構成済み EU プロファイル。

鍵プロバイダー

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 チュートリアルを実行し、結果をエンド・ツー・エンドで検証してください。