sgcSign-Funktionsreferenz

Vollständiger Funktionskatalog der digitalen Signatur-Suite sgcSign — Signaturstandards, Schlüsselanbieter, Länderprofile, Validierung, Integration der EU Trust List und ETSI-Validierungsberichte für Delphi 7 bis Delphi 13, C++Builder und .NET.

Drei Schichten, eine Engine

sgcSign trennt Schlüsselverwaltung, Signaturoperationen und Ausgabeformate. Kombiniere beliebige Schlüsselanbieter mit beliebigen Signern; wechsle zwischen lokaler PFX und Cloud-KMS, indem du eine einzige Komponente austauschst.

Schlüsselanbieter (IsgcKeyProvider)

Abstrahiert den Zugriff auf Zertifikate und private Schlüssel hinter einer einzigen Schnittstelle. Lokale Dateien, Windows-Zertifikatsspeicher, PKCS#11-Hardware-Token, Azure-/AWS-/Google Cloud KMS, HashiCorp Vault, Certum SimplySign und CSC v2-Remote-QTSPs.

Signer

Spezialisierte Signer für jedes ETSI-Format: TsgcXAdESSigner, TsgcPAdESSigner, TsgcCAdESSigner, TsgcAuthenticodeSigner. Dazu TsgcDocumentSigner — eine einheitliche High-Level-API, die anhand eines Länderprofils den passenden Signer auswählt und konfiguriert.

Hilfskomponenten

TsgcTSAClient (RFC 3161-Zeitstempel), TsgcOCSPClient (Widerruf), TsgcSignatureVerifier (Validierung), TsgcEUTrustList (LOTL/EUTL), TsgcASiCContainer (ASiC-S/ASiC-E-ZIP-Verpackung).

XAdES, PAdES, CAdES, ASiC & Authenticode

Vollständige Abdeckung der ETSI-Signaturformate auf allen vier AdES-Stufen (B-B, B-T, B-LT, B-LTA), plus Microsoft Authenticode für Code-Signaturen.

XAdES — ETSI EN 319 132

XML Advanced Electronic Signatures. Enveloped-, Detached- und Enveloping-Modi. Stufen B-B / B-T / B-LT / B-LTA. SignatureParentElement für Hüllen-Formate, die die Signaturposition festlegen (KSeF /v2/auth/xades-signature). Polnische, spanische und deutsche Diakritika über WideString-Overloads ab Delphi 7.

PAdES — ETSI EN 319 142

PDF Advanced Electronic Signatures. Im PDF eingebettete Signaturen; sichtbares Signaturbild mit Unterzeichnername, Grund, Ort, Kontaktinformationen und konfigurierbarem Rahmen. Kompatibel mit Adobe Acrobat. Stufen PAdES-T und -LT über TSA + OCSP.

CAdES — ETSI EN 319 122

CMS-/PKCS#7-Binärsignaturen über jede Datei oder jeden Datenstrom. Detached- und Attached-Form. CAdES-BES, CAdES-T (mit Zeitstempel), CAdES-XL (langfristig, mit Widerrufswerten).

ASiC-S / ASiC-E — ETSI EN 319 162

Associated Signature Containers. ZIP-Archiv, das ein oder mehrere Dokumente zusammen mit einer XAdES- oder CAdES-Signatur bündelt. Simple (apASiCS, ein Dokument) oder Extended (apASiCE, Manifest + mehrere Dokumente). Der erste ZIP-Eintrag ist ein unkomprimierter Mimetype-Marker, damit Prüfer den Container in den ersten ~50 Bytes erkennen.

Authenticode — Code-Signatur

Microsoft Authenticode für Windows-PE-Dateien (.exe, .dll, .sys, .ocx, .cpl, .scr). Hash-Algorithmen SHA-1, SHA-256 (Standard), SHA-384 und SHA-512. RFC 3161-Zeitstempel-Tokens. Verschachtelte (Dual-)Signaturen für Kompatibilität mit Legacy- und modernen Prüfern. Verfügbar im sgcSign Server.

AdES-Stufen — B-B / B-T / B-LT / B-LTA

Alle vier ETSI-Konformitätsstufen werden pro Format unterstützt: B-B (Basis), B-T (Zeitstempel), B-LT (langfristig, mit Widerrufswerten), B-LTA (archivtauglich, mit Archivzeitstempel). Stufe eine Signatur von B-B auf B-LT an, indem du einen TSA-Client und OCSP-Responder ergänzt.

Lokal, Hardware, Cloud & Remote-QTSPs

Jeder Anbieter implementiert IsgcKeyProvider. Wechsle zwischen diesen Schlüsselquellen, ohne deinen Signaturcode zu ändern.

Komponente Typ Einsatzszenario
TsgcPFXKeyProvider Lokale Datei (PKCS#12) Passwortgeschützte PFX-/.p12-Dateien. Native Windows-CNG-Unterstützung.
TsgcPEMKeyProvider Lokale Datei (PEM) PEM-Zertifikate mit verschlüsselten PKCS#8-Schlüsseln. Native PBES2-/PBKDF2-/AES-CBC-Entschlüsselung — keine OpenSSL-DLL erforderlich.
TsgcWindowsCertStoreProvider Windows-Speicher Lokale Maschinen- und Benutzerspeicher. Active Directory- und Gruppenrichtlinien-Integration.
TsgcPKCS11Provider Hardware-Token Smartcards und HSMs über PKCS#11-Treiber — SafeNet, YubiKey, Nitrokey, Thales, Utimaco usw.
TsgcAzureTrustedSigningProvider Cloud (Microsoft) Azure Trusted Signing — Microsofts qualifizierter Signaturdienst. OAuth2-Client-Credentials. Unabhängig von Azure Key Vault.
TsgcAWSKMSKeyProvider Cloud (AWS) AWS Key Management Service. Schlüssel bleiben in AWS; nur Dokumenten-Hashes verlassen das Netzwerk.
TsgcGCloudKMSKeyProvider Cloud (Google) Google Cloud Key Management. Authentifizierung per Service Account.
TsgcHashiCorpVaultKeyProvider Cloud (selbst gehostet) HashiCorp Vault Transit-Signing-Engine. Schlüssel verlassen den Vault-Cluster nie.
TsgcCertumSimplySignProvider Remote-QTSP Certum SimplySign — qualifizierter polnischer E-Signatur-Anbieter. Kompatibel mit KSeF, ZUS, PUE.
TsgcCSCKeyProvider Remote-QTSP (CSC v2) Generischer Cloud Signature Consortium v2-Client — Universign, D-Trust sign-me, A-Trust, FNMT Cl@ve Firma, Evrotrust, Intesi Group und jeder QTSP, der die CSC v2-API bereitstellt.

Europäische E-Rechnung & Signatur von Arbeitsverträgen

Jedes Profil stellt Hash-Algorithmus, Kanonikalisierung, Signaturstufe, RFC 3161-Zeitstempelrichtlinie und OCSP-Widerrufserwartungen so ein, dass die Vorgaben der jeweiligen Aufsichtsbehörde erfüllt sind. Wechsle die Jurisdiktion mit einer einzigen Zeile.

E-Rechnungs-Profile (12)

Profil Land System Format Stufe
spVeriFactuSpanienVeriFactu (AEAT)XAdES-EPESB-B
spTicketBAISpanien (Baskenland)TicketBAIXAdES-EPESB-B
spFacturaeB2BSpanienFacturae 3.x / FACeXAdES-EPESB-T
spFatturaPAItalienFatturaPA (SDI)XAdES-BESB-B
spSAFTPTPortugalSAF-T PTRSA-SHA256B-B
spKSeFPolenKSeF (Krajowy System e-Faktur)XAdESB-T
spFacturXFrankreich / DeutschlandFactur-X / ZUGFeRDXAdESB-B
spEFacturaRumäniene-Factura (ANAF)XAdESB-T
spNAVOnlineUngarnNAV OnlineXML-DSigB-B
spFiskalizacijaKroatienFiskalizacijaXML-DSigB-B
spPeppolBEBelgienPeppol UBL 2.0XAdESB-T
spPeppolBGBulgarienPeppol UBL 2.1XAdESB-T
spMyDATAGriechenlandmyDATA (AADE)XAdESB-B

EU-Arbeitsvertrag-Profile (9)

eIDAS-konforme Signaturen für die arbeitsrechtlichen Anforderungen der Mitgliedsstaaten (z. B. § 126a BGB in Deutschland, FEQ in Italien). Pro Jurisdiktion vorabgestimmt; werden über Profile.LoadProfile(spEmploymentXX) in den TsgcXAdESSigner geladen.

Profil Land Stufe Hash Zeitstempel OCSP Anmerkungen
spEmploymentDEDeutschlandB-LTSHA-256JaJaQES nach § 126a BGB für die Schriftform erforderlich.
spEmploymentITItalienB-LTSHA-256JaJaQualifizierte FEQ-Signatur; INPS-Portale akzeptieren XAdES und CAdES.
spEmploymentESSpanienB-TSHA-256JaNeinAdES ausreichend. SEPE-/TGSS-Portale verlangen FNMT oder DNIe.
spEmploymentFRFrankreichB-TSHA-256JaNeinAdES okay; QES bevorzugt für Remote-Signaturen nach DSP2/RGS.
spEmploymentATÖsterreichB-LTSHA-256JaJaQES über Handy-Signatur / ID Austria gängig.
spEmploymentBEBelgienB-LTSHA-256JaJaQES über eID-Karte (BeID).
spEmploymentPTPortugalB-LTSHA-256JaJaQES über Cartão do Cidadão / Chave Móvel Digital.
spEmploymentNLNiederlandeB-TSHA-256JaNeinAdES wird allgemein akzeptiert; QES für einige HR-Portale (UWV).
spEmploymentPLPolenB-TSHA-256JaNeinQES über Profil Zaufany oder qualifiziertes Zertifikat, wenn der Vertrag an ZUS/PUE geht.

Prüfen wie die EU prüft

Vollständige Validierungs-Pipeline plus Integration der EU Trust List und der standardisierte ETSI TS 119 102-2 XML-Validierungsbericht — rechtlicher Nachweis der Signaturgültigkeit, akzeptiert von EU-Arbeitsgerichten und öffentlichen Prüfstellen.

Signaturprüfung mit LTV

TsgcSignatureVerifier deckt die komplette Pipeline ab: Digest-Prüfungen, RSA-/ECDSA-Signaturverifizierung, Zertifikatsketten-Validierung, OCSP-Widerrufsprüfung, eingebettete RevocationValues für Long-Term Validation und Id-basierte Fragment-Suche für SignedProperties.

EU Trust List (LOTL / EUTL)

TsgcEUTrustList parst die ETSI TS 119 612 List of Trusted Lists und rund 31 Trusted Lists der einzelnen Mitgliedstaaten. Klassifiziere jedes X.509-Zertifikat als eIDAS-qualifiziert, indem du es gegen das aktuelle EU-Register prüfst. Offline-Caching für abgeschottete Deployments.

ETSI TS 119 102-2-Validierungsbericht

Standardisierter XML-Validierungsbericht (v1.2.1), der bei jeder Prüfung erzeugt wird — das Format, das EU-Arbeitsgerichte und öffentliche Prüfstellen als rechtlichen Nachweis der Signaturgültigkeit akzeptieren.

RFC 3161-Zeitstempel

TsgcTSAClient verbindet sich mit jeder RFC 3161-Zeitstempelautorität. Stuft Signaturen von B-B auf B-T, B-LT und B-LTA — auch lange nach Ablauf des Signaturzertifikats prüfbar.

OCSP-Widerruf

TsgcOCSPClient führt Prüfungen nach RFC 6960 Online Certificate Status Protocol durch. Echtzeit-Widerruf; die OCSP-Antwort wird in B-LT-Signaturen eingebettet, sodass das Dokument auch dann prüfbar bleibt, wenn der Responder später offline ist.

XML-Kanonikalisierung (C14N)

Inclusive C14N (xml-c14n11) und Exclusive C14N (xml-exc-c14n) für eine konsistente XML-Signaturverarbeitung. Jedes Länderprofil wählt die von der Aufsichtsbehörde erwartete Kanonikalisierung.

Nativ, eigenständig, versionsübergreifend

Keine externen DLLs

Durchgängig Windows-CNG-/BCrypt-Kryptographie — keine OpenSSL-DLL erforderlich. Natives PBES2/PBKDF2/AES-CBC für verschlüsselte PKCS#8-PEM. WinHTTP für Netzwerkoperationen.

Delphi 7 bis Delphi 13

Unterstützt jeden Delphi-Compiler von Delphi 7 bis RAD Studio 13, dazu C++Builder. Moderne Units sind für Abwärtskompatibilität abgesichert (z. B. benötigt TsgcASiCContainer Generics ab D2010; auf D7 wird die Unit unauffällig als leere Unit kompiliert).

.NET-Implementierung

Spiegelbild-Portierung in C# für .NET Framework 2.0–4.8, .NET Core, .NET 5–9 und .NET Standard. Gleiche Tsgc*-Klassennamen; identische API-Oberfläche wie die Delphi-Bibliothek.

Vollständiger Quellcode

Vollständiger Quellcode in jeder Lizenz enthalten. Einsehen, anpassen, prüfen und erweitern. Komponentenklassennamen für die Design-Time-IDE-Integration registriert.

UTC-Zeitstempel durchgehend

Alle X.509-/CRL-/OCSP-/TSA-Zeitstempel werden als UTC-TDateTime-Werte gespeichert, passend zu RFC 5280, RFC 3161 und RFC 6960. Umwandlung in Ortszeit über die *Local-Eigenschaften jeder Komponente.

Keine Laufzeit-Royalties

Kostenlose Weitergabe der Binärdateien. Signiere so viele Dokumente, wie du willst — ohne Gebühren pro Dokument und ohne Lizenzen pro Deployment.

Eine API, drei verschiedene Schlüsselquellen

VeriFactu-Rechnung mit lokalem PFX signieren

  • Eine einzige High-Level-Komponente (TsgcDocumentSigner)
  • Profil wählt XAdES-EPES, B-B, SHA-256, Exclusive C14N
  • Wechsle zu spFatturaPA für Italien, spKSeF für Polen
SignVeriFactu.pas
// 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;

EXE mit Azure Trusted Signing per Authenticode signieren

  • Cloud-Schlüssel, kein lokaler PFX oder USB-Token
  • Authentifizierung per OAuth2-Client-Credentials
  • Von Microsoft ausgestelltes Public-Trust-Zertifikat
SignWithAzure.pas
// 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 — PDF mit sichtbarer Signatur & Zeitstempel

  • Zertifikat aus dem Windows-Speicher per Subject Name
  • RFC 3161-Zeitstempel in der Signatur eingebettet
  • Sichtbares Erscheinungsbild mit Grund und Ort
SignPDFVisible.pas
// 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;

Liefere noch heute eIDAS-konforme Signaturen

Ergänze deine Delphi-, C++Builder- oder .NET-Anwendung um XAdES-, PAdES-, CAdES- und ASiC-Signaturen.