sgcSign
Delphi・C++Builder・.NET 向けエンタープライズグレードのデジタル署名スイートです。10 種類のキープロバイダーと 21 の事前設定済み国別プロファイルから XAdES、PAdES、CAdES、ASiC 署名を生成します — インプロセスのコンポーネントライブラリとして、またはビルドファーム向けのセルフホスト型リモート署名デーモンとしてご利用いただけます。
Delphi・C++Builder・.NET 向けエンタープライズグレードのデジタル署名スイートです。10 種類のキープロバイダーと 21 の事前設定済み国別プロファイルから XAdES、PAdES、CAdES、ASiC 署名を生成します — インプロセスのコンポーネントライブラリとして、またはビルドファーム向けのセルフホスト型リモート署名デーモンとしてご利用いただけます。
sgcSign は、同一の署名エンジン・キープロバイダー・国別プロファイルを共有する 2 つの補完的な形態で提供されています。組み込みライブラリ、集中管理型サーバー、またはその両方を組み合わせてご利用ください。
Delphi / C++Builder / .NET アプリケーションの内部で直接 XAdES、PAdES、CAdES、ASiC 署名を生成するドロップイン型コンポーネントです。ネイティブ CNG/BCrypt 暗号化を使用し、外部 DLL 不要で完全なソースコードが付属しています。
ライブラリの機能 →セルフホスト型のリモート署名デーモンです — REST API、Bootstrap ウェブ管理画面、Windows サービスインストーラーを搭載しています。ドキュメント形式に加え、Authenticode・ClickOnce・NuGet・VSIX 署名にも対応しています。GitHub Actions、Azure DevOps、Jenkins、Docker、Helm 向けの既成パイプラインも用意されています。
サーバーの概要 →4 つの ETSI 署名ファミリーと PE バイナリ向けの Microsoft Authenticode を完全にサポートしています。すべての 4 つの AdES レベルに対応しています。
ETSI EN 319 132 — XML 高度電子署名
XML に対するエンベロープ型・デタッチ型・エンベロッピング型署名に対応しています。レベルは B-B / B-T / B-LT / B-LTA。Delphi 7 以降の WideString オーバーロードにより、ポーランド語・スペイン語・ドイツ語のダイアクリティクスをロスなく往復変換できます。
ETSI EN 319 142 — PDF 高度電子署名
PDF ドキュメントにデジタル署名を埋め込みます。署名者名・理由・場所・連絡先情報と設定可能な矩形による可視署名外観をサポートしています。Adobe Acrobat と互換性があります。
ETSI EN 319 122 — CMS/PKCS#7 高度電子署名
任意のファイルやデータストリームに対する CMS/PKCS#7 バイナリ署名です。デタッチ形式とアタッチ形式の両方に対応しています。BES、T、XL の各適合レベルをサポートしています。
ETSI EN 319 162 — 関連署名コンテナー
1 つまたは複数のドキュメントと関連する XAdES または CAdES 署名を単一の ZIP アーカイブにまとめます。シンプル形式(1 ドキュメント)または拡張形式(マニフェスト+複数ドキュメント)に対応しています。
コード署名 — sgcSign Server
Windows PE ファイル(.exe、.dll、.sys、.ocx)、ClickOnce マニフェスト、NuGet パッケージ、VSIX バンドルに署名します。SHA-256(デフォルト)、SHA-384、SHA-512 および旧システムとの互換性のためのデュアル署名をサポートしています。
すべてのプロバイダーは同一の IsgcKeyProvider インターフェースを実装しているため、署名者はコードを変更せずにあらゆるキーソースで動作します。コンポーネントを 1 つ変更するだけで 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 Key Management Service を使用します。AWS 内に保管された鍵で署名し、ドキュメントのハッシュを送信すると生の署名が返されます。
TsgcGCloudKMSKeyProvider
Google Cloud Key Management を使用します。Google Cloud にホストされた鍵を使い、サービスアカウント認証で署名します。
TsgcHashiCorpVaultKeyProvider
Vault のトランジット署名エンジンを使用します。鍵は Vault の内部に留まり、ドキュメントのハッシュが認証済み REST API 経由で送信されます。
TsgcCertumSimplySignProvider
ポーランドの有資格電子署名プロバイダーです。KSeF、ZUS などのポーランド行政ポータル向けのクラウドベースのリモート署名に対応しています。
TsgcCSCKeyProvider
リモート QTSP 向けの汎用 CSC v2 クライアントです — Universign、D-Trust sign-me、A-Trust、FNMT Cl@ve Firma、Evrotrust、Intesi Group などに対応しています。
各プロファイルは、対象国の規制当局の要件に合わせてハッシュアルゴリズム、正規化方式、署名レベル、タイムスタンプ、OCSP 失効ポリシーを事前に調整しています。1 行変更するだけで適用国を切り替えることができます。
| プロファイル | 国 | システム | 形式 | レベル |
|---|---|---|---|---|
spVeriFactu | スペイン | VeriFactu (AEAT) | XAdES-EPES | B-B |
spTicketBAI | スペイン(バスク) | TicketBAI | XAdES-EPES | B-B |
spFacturaeB2B | スペイン | Facturae 3.x / FACe | XAdES-EPES | B-T |
spFatturaPA | イタリア | FatturaPA (SDI) | XAdES-BES | B-B |
spSAFTPT | ポルトガル | SAF-T PT | RSA-SHA256 | B-B |
spKSeF | ポーランド | KSeF (Krajowy System e-Faktur) | XAdES | B-T |
spFacturX | フランス / ドイツ | Factur-X / ZUGFeRD | XAdES | B-B |
spEFactura | ルーマニア | e-Factura (ANAF) | XAdES | B-T |
spNAVOnline | ハンガリー | NAV Online | XML-DSig | B-B |
spFiskalizacija | クロアチア | Fiskalizacija | XML-DSig | B-B |
spPeppolBE / spPeppolBG | EU(ベルギー、ブルガリア) | Peppol UBL 2.x | XAdES | B-T |
spMyDATA | ギリシャ | myDATA (AADE) | XAdES | B-B |
雇用契約に関する各加盟国の労働法要件に適合した eIDAS 準拠の署名です。各法域の AdES / QES レベル、ハッシュ、正規化、タイムスタンプ、OCSP 失効ポリシーを事前に調整しています。労働行政の検証機関にも承認されています。
spEmploymentDEレベル B-LT。書面形式の契約(例:24 か月超の有期雇用、契約後の競業禁止)には BGB §126a に基づき 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。QES は Handy-Signatur / ID Austria 経由が一般的です。
spEmploymentBEレベル B-LT。QES は eID カード(BeID)経由で取得します。
spEmploymentPTレベル B-LT。QES は Cartão do Cidadão / Chave Móvel Digital 経由で取得します。
spEmploymentNLレベル B-T。AdES は一般的に受け入れられており、一部の HR ポータル(UWV)では QES が必要です。
spEmploymentPLレベル B-T。契約が ZUS / PUE に提出される場合、Profil Zaufany または有資格証明書による QES が必要です。
sgcSign は EU が署名を検証するのと同じ方法で署名を検証します — ライブ LOTL を参照し、労働裁判所や公共行政機関が法的証拠として受け入れる標準化された XML レポートを生成します。
完全な検証パイプラインを提供します — ダイジェスト検査、RSA/ECDSA 署名検証、証明書チェーン検証、OCSP 失効確認、長期検証のための組み込み RevocationValues、SignedProperties の ID ベースフラグメント検索に対応しています。
TsgcEUTrustList は ETSI TS 119 612 の信頼リスト一覧と約 31 の加盟国別トラストリストを解析します。発行 TSP サービスをライブ EU レジストリと照合することで、任意の X.509 証明書を eIDAS 適格かどうか分類できます。
すべての検証で標準化された XML 検証レポート(v1.2.1)を生成します — EU の労働裁判所や公共行政の検証機関が署名の有効性の法的証拠として受け入れています。
任意の RFC 3161 タイムスタンプ局に対応した TsgcTSAClient を内蔵しています。署名を 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 Server は同一のエンジンを REST API と Bootstrap ウェブ管理画面の背後でラップしています — Windows サービスインストーラー、既成の GitHub Actions / Azure DevOps / Jenkins / Docker / Helm パイプライン、マルチテナントのプロジェクトモデル、2 ステップの承認ワークフロー、SHA-256 ハッシュチェーンの監査ログ、Prometheus メトリクス、HMAC 署名付きウェブフックを備えています。
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