Digitale XAdES- & PAdES-Signaturen in Delphi | sgcSign | eSeGeCe

Digitale XAdES- & PAdES-Signaturen in Delphi

sgcSign erzeugt eIDAS-taugliche digitale Signaturen aus Delphi-, C++Builder- und .NET-Code: XAdES für XML, PAdES für PDF, CAdES für beliebige Binärinhalte und ASiC-Container, die Dokumente mit ihren Signaturen bündeln. Alle vier AdES-Level, 10 Key-Provider und 21 vorkonfigurierte EU-Länderprofile, mit nativer CNG/BCrypt-Kryptografie und ohne externe DLLs.

Jedes ETSI-Format, von B-B bis B-LTA

Eine Signier-Engine hinter vier Signaturfamilien. Wähle das Format, das dein Regulierer oder deine Gegenseite erwartet; das Profil erledigt den Rest.

Eine Delphi-Komponente für digitale XAdES-/PAdES-Signaturen hat genau einen Job: Output zu erzeugen, den das empfangende Portal tatsächlich akzeptiert. sgcSign deckt die vier ETSI-Signaturfamilien ab: XAdES (EN 319 132, XML), PAdES (EN 319 142, PDF), CAdES (EN 319 122, CMS/PKCS#7) und ASiC-S-/ASiC-E-Container (EN 319 162), auf jedem AdES-Level von B-B (Basis) über B-T (mit Zeitstempel) und B-LT (Langzeit, mit eingebetteter Kette und Sperrdaten) bis B-LTA (Langzeit mit Archiv-Zeitstempeln).

Schlüssel kommen von dort, wo deine liegen: lokale PFX-/PKCS#12- und PEM-Dateien, der Windows-Zertifikatsspeicher, PKCS#11-Smartcards und HSMs oder Cloud-Dienste (Azure Trusted Signing, AWS KMS, Google Cloud KMS, HashiCorp Vault, Certum SimplySign, CSC v2-Remote-QTSPs). Jeder Provider implementiert dasselbe IsgcKeyProvider-Interface, der Wechsel von einer PFX-Datei zu einem Cloud-HSM ist also eine Ein-Komponenten-Änderung.

XAdES

Enveloped-, Enveloping- und Detached-XML-Signaturen: TsgcSignXML + TsgcSignProfile_XAdES

PAdES

PDF-Signaturen mit sichtbarer Darstellung, kompatibel mit Adobe Acrobat: TsgcSignPDF + TsgcSignProfile_PAdES

CAdES & ASiC

CMS/PKCS#7-Signaturen über beliebige Dateien, plus ZIP-basierte ASiC-S-/ASiC-E-Container

Compiler

Delphi 7 bis RAD Studio 13, C++Builder und .NET

Gebaut für EU-Compliance-Arbeit

Die Bausteine, die aus einer rohen Signatur ein Dokument machen, das eine öffentliche Verwaltung akzeptiert.

RFC-3161-Zeitstempel

Richte TSA.URL auf eine beliebige Timestamp-Authority, und die Level B-T und höher betten automatisch einen Signatur-Zeitstempel ein.

Langzeit-Validierung

Für B-LT / B-LTA holen OCSP.AutoFetch und CRL.AutoFetch die vollständige Kette und die Sperrdaten und betten sie ein, das Dokument bleibt also über Jahre ohne Netzwerkzugriffe verifizierbar.

21 Länderprofile

VeriFactu, TicketBAI, Facturae, FatturaPA, KSeF, Factur-X / ZUGFeRD, e-Factura, SAF-T PT, Peppol und mehr. Jedes Profil stellt Hash, Kanonisierung, Level, Zeitstempel und Sperr-Policy passend zum Ziel-Regulierer voreingestellt bereit.

Arbeitsverträge

Neun EU-Arbeitsvertragsprofile (Deutschland, Italien, Spanien, Frankreich, Österreich, Belgien, Portugal, Niederlande, Polen) setzen das AdES-/QES-Level vor, das die jeweilige Rechtsordnung erwartet.

Verifikation & Berichte

TsgcSignatureVerifier validiert Digests, Ketten, OCSP-Sperrstatus und Zeitstempel und liefert einen strukturierten Bericht mit erkanntem Level, Unterzeichner und Status.

EU Trust List

TsgcEUTrustList parst die Live-LOTL und die Trusted Lists der einzelnen Mitgliedstaaten, damit du jedes Zertifikat gegen das offizielle EU-Register als eIDAS-qualifiziert einstufen kannst.

Sichtbare PDF-Signaturen

Unterzeichnername, Grund, Ort, Kontaktdaten und ein konfigurierbares Signatur-Rechteck auf beliebiger Seite, kompatibel mit Adobe Acrobat.

Native Kryptografie

Windows CNG/BCrypt unter der Haube. Keine OpenSSL-DLL, die du neben deiner Exe ausliefern musst.

Bibliothek oder Server

Dieselbe Engine gibt es als In-Process-Komponentenbibliothek und als sgcSign Server, einen selbst gehosteten REST-Signierdienst für Build-Farmen und CI-Pipelines.

Signiere eine XML-Rechnung, dann ein PDF

Key-Provider laden, Profil konfigurieren, signieren. Dasselbe Drei-Schritte-Muster für jedes Format.

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;

Verifiziere, bevor du auslieferst

Jeder Signier-Workflow sollte mit einem Verifikationslauf enden. TsgcSignatureVerifier nimmt das signierte XML oder PDF und liefert pro Signatur einen Bericht: das tatsächlich erreichte AdES-Level, das Unterzeichner-Subject, den Zeitstempel und etwaige Ketten- oder Sperrprobleme. Hast du B-T angefordert und der Bericht meldet B-B, ist die Zeitstempel-Anfrage fehlgeschlagen, und du erfährst es auf deinem Rechner, nicht in der Fehler-Queue des Regulierers.

Für eIDAS-Qualifikationsprüfungen kombinierst du den Verifier mit der EU-Trust-List-Komponente: sgcSign validiert Signaturen so, wie die EU sie validiert, gegen die Live-LOTL, und kann einen standardisierten Validierungsbericht erzeugen.

Weiter mit sgcSign

Tutorial: XAdES-Signierung

Von der einfachen XML-Rechnung zu XAdES-B-T: Verpackungsmodi, Zeitstempel und Verifikation, Schritt für Schritt.

Tutorial: PDF-Signierung

Derselbe Durchgang für PAdES: Profile, sichtbare Signaturen und inkrementelle Updates.

Länderprofile

Die 21 vorkonfigurierten EU-Profile für E-Invoicing und Arbeitsverträge.

Key-Provider

PFX, PEM, Windows-Speicher, PKCS#11-Token und die Cloud-KMS-Provider im Detail.

sgcSign Server

Zentralisiertes Remote-Signieren über REST. Bereit für GitHub Actions, Azure DevOps, Docker und Helm.

Preise

Lizenzen für die Komponentenbibliothek und den Server, plus das All-Access-Bundle.

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

Signiere noch heute dein erstes Dokument

Lade die Testversion herunter, führe das XAdES-Tutorial mit deiner eigenen Rechnung aus und verifiziere das Ergebnis Ende-zu-Ende.