sgcSign Features Reference

Pełny katalog funkcji zestawu podpisów cyfrowych sgcSign — standardy podpisów, dostawcy kluczy, profile krajowe, walidacja, integracja z listą zaufanych UE oraz raporty walidacyjne ETSI dla Delphi 7 do Delphi 13, C++Builder i .NET.

Trzy warstwy, jeden silnik

sgcSign rozdziela zarządzanie kluczami, operacje podpisywania i formaty wyjściowe. Łącz dowolnego dostawcę kluczy z dowolnym signerem; przełącz się między lokalnym PFX a chmurowym KMS, zmieniając jeden komponent.

Key Providers (IsgcKeyProvider)

Dostęp do certyfikatu i klucza prywatnego ukryty za jednym interfejsem. Pliki lokalne, magazyn certyfikatów Windows, tokeny sprzętowe PKCS#11, Azure / AWS / Google Cloud KMS, HashiCorp Vault, Certum SimplySign i zdalne QTSP CSC v2.

Signers

Wyspecjalizowane signery dla każdego formatu ETSI: TsgcXAdESSigner, TsgcPAdESSigner, TsgcCAdESSigner, TsgcAuthenticodeSigner. Oraz TsgcDocumentSigner — ujednolicone API wysokiego poziomu, które wybiera i konfiguruje właściwy signer z profilu krajowego.

Support Components

TsgcTSAClient (RFC 3161 timestamps), TsgcOCSPClient (revocation), TsgcSignatureVerifier (validation), TsgcEUTrustList (LOTL/EUTL), TsgcASiCContainer (ASiC-S/ASiC-E ZIP packaging).

XAdES, PAdES, CAdES, ASiC & Authenticode

Pełne pokrycie formatów podpisów ETSI na wszystkich czterech poziomach AdES (B-B, B-T, B-LT, B-LTA) oraz Microsoft Authenticode do podpisywania kodu.

XAdES — ETSI EN 319 132

Zaawansowane podpisy elektroniczne XML. Tryby enveloped, detached i enveloping. Poziomy B-B / B-T / B-LT / B-LTA. SignatureParentElement dla formatów kopert wymagających określonego miejsca podpisu (KSeF /v2/auth/xades-signature). Znaki diakrytyczne polskie, hiszpańskie i niemieckie przez przeciążenia WideString od Delphi 7+.

PAdES — ETSI EN 319 142

Zaawansowane podpisy elektroniczne PDF. Podpisy osadzone w pliku PDF; widoczny wygląd podpisu z nazwą podpisującego, powodem, lokalizacją, danymi kontaktowymi i konfigurowalnym prostokątem. Zgodny z Adobe Acrobat. Poziomy PAdES-T, -LT przez TSA + OCSP.

CAdES — ETSI EN 319 122

Binarne podpisy CMS/PKCS#7 dla dowolnego pliku lub strumienia danych. Formy odłączone i dołączone. CAdES-BES, CAdES-T (z sygnaturą czasową), CAdES-XL (długoterminowe z wartościami unieważnienia).

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

Kontenery skojarzone z podpisem. Archiwum ZIP łączące jeden lub więcej dokumentów z podpisem XAdES lub CAdES. Prosty (apASiCS, jeden dokument) lub rozszerzony (apASiCE, manifest + wiele dokumentów). Pierwszy wpis ZIP jest nieskompresowanym znacznikiem mimetype, by weryfikatory wykryły kontener w pierwszych ~50 bajtach.

Authenticode — Code Signing

Microsoft Authenticode dla plików PE systemu Windows (.exe, .dll, .sys, .ocx, .cpl, .scr). Algorytmy skrótu SHA-1, SHA-256 (domyślny), SHA-384 i SHA-512. Tokeny sygnatur czasowych RFC 3161. Zagnieżdżone (podwójne) podpisy dla zgodności z weryfikatorami starszymi i nowoczesnymi. Dostępne w sgcSign Server.

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

Wszystkie cztery poziomy zgodności ETSI obsługiwane dla każdego formatu: B-B (podstawowy), B-T (sygnatura czasowa), B-LT (długoterminowy, z wartościami unieważnienia), B-LTA (archiwalny, z archiwalną sygnaturą czasową). Awansuj podpis z B-B do B-LT, dodając klienta TSA i serwer OCSP.

Lokalne, sprzętowe, chmurowe i zdalne QTSP

Każdy dostawca implementuje IsgcKeyProvider. Przełączaj się między dowolnymi źródłami kluczy bez zmiany kodu podpisującego.

Komponent Typ Zastosowanie
TsgcPFXKeyProvider Local file (PKCS#12) Pliki PFX/.p12 chronione hasłem. Natywna obsługa Windows CNG.
TsgcPEMKeyProvider Local file (PEM) Certyfikaty PEM z zaszyfrowanymi kluczami PKCS#8. Natywne deszyfrowanie PBES2 / PBKDF2 / AES-CBC — nie wymaga biblioteki DLL OpenSSL.
TsgcWindowsCertStoreProvider Windows store Magazyny maszyny lokalnej i bieżącego użytkownika. Integracja z Active Directory i zasadami grupy.
TsgcPKCS11Provider Hardware token Karty inteligentne i HSM przez sterownik PKCS#11 — SafeNet, YubiKey, Nitrokey, Thales, Utimaco itp.
TsgcAzureTrustedSigningProvider Cloud (Microsoft) Azure Trusted Signing — kwalifikowana usługa podpisywania Microsoft. Poświadczenia klienta OAuth2. Odrębna od Azure Key Vault.
TsgcAWSKMSKeyProvider Cloud (AWS) Usługa zarządzania kluczami AWS. Klucze pozostają w AWS; sieć opuszczają tylko skróty dokumentów.
TsgcGCloudKMSKeyProvider Cloud (Google) Zarządzanie kluczami Google Cloud. Uwierzytelnianie kontem usługi.
TsgcHashiCorpVaultKeyProvider Cloud (self-hosted) Silnik podpisywania tranzytowego HashiCorp Vault. Klucze nigdy nie opuszczają klastra Vault.
TsgcCertumSimplySignProvider Remote QTSP Certum SimplySign — kwalifikowany polski dostawca podpisu elektronicznego. Zgodny z KSeF, ZUS, PUE.
TsgcCSCKeyProvider Remote QTSP (CSC v2) Ogólny klient Cloud Signature Consortium v2 — Universign, D-Trust sign-me, A-Trust, FNMT Cl@ve Firma, Evrotrust, Intesi Group i każdy QTSP udostępniający API CSC v2.

Europejskie e-fakturowanie i podpisywanie umów o pracę

Każdy profil wstępnie dostosowuje algorytm skrótu, kanonizację, poziom podpisu, politykę sygnatur czasowych RFC 3161 i oczekiwania dotyczące unieważnienia OCSP, aby spełnić wymagania regulatora docelowego kraju. Zmień jurysdykcję jedną linią.

Profile e-fakturowania (12)

Profil Kraj System Format Poziom
spVeriFactuSpainVeriFactu (AEAT)XAdES-EPESB-B
spTicketBAISpain (Basque)TicketBAIXAdES-EPESB-B
spFacturaeB2BSpainFacturae 3.x / FACeXAdES-EPESB-T
spFatturaPAItalyFatturaPA (SDI)XAdES-BESB-B
spSAFTPTPortugalSAF-T PTRSA-SHA256B-B
spKSeFPolandKSeF (Krajowy System e-Faktur)XAdESB-T
spFacturXFrance / GermanyFactur-X / ZUGFeRDXAdESB-B
spEFacturaRomaniae-Factura (ANAF)XAdESB-T
spNAVOnlineHungaryNAV OnlineXML-DSigB-B
spFiskalizacijaCroatiaFiskalizacijaXML-DSigB-B
spPeppolBEBelgiumPeppol UBL 2.0XAdESB-T
spPeppolBGBulgariaPeppol UBL 2.1XAdESB-T
spMyDATAGreecemyDATA (AADE)XAdESB-B

Profile umów o pracę UE (9)

Podpisy zgodne z eIDAS spełniające wymagania prawa pracy państw członkowskich (np. § 126a BGB w Niemczech, FEQ we Włoszech). Wstępnie dostrojone dla każdej jurysdykcji; ładowane do TsgcXAdESSigner przez Profile.LoadProfile(spEmploymentXX).

Profil Kraj Poziom Skrót Sygnatura czasowa OCSP Uwagi
spEmploymentDEGermanyB-LTSHA-256YesYesQES wymagany przez § 126a BGB dla umów w formie pisemnej.
spEmploymentITItalyB-LTSHA-256YesYesPodpis kwalifikowany FEQ; portale INPS akceptują XAdES i CAdES.
spEmploymentESSpainB-TSHA-256YesNoAdES wystarczający. Portale SEPE / TGSS wymagają FNMT lub DNIe.
spEmploymentFRFranceB-TSHA-256YesNoAdES OK; QES preferowany do podpisywania zdalnego na podstawie DSP2 / RGS.
spEmploymentATAustriaB-LTSHA-256YesYesQES przez Handy-Signatur / ID Austria — powszechne.
spEmploymentBEBelgiumB-LTSHA-256YesYesQES przez kartę eID (BeID).
spEmploymentPTPortugalB-LTSHA-256YesYesQES przez Cartão do Cidadão / Chave Móvel Digital.
spEmploymentNLNetherlandsB-TSHA-256YesNoAdES ogólnie akceptowany; QES dla niektórych portali HR (UWV).
spEmploymentPLPolandB-TSHA-256YesNoQES przez Profil Zaufany lub certyfikat kwalifikowany, gdy umowa trafia do ZUS / PUE.

Weryfikuj tak jak UE

Pełny potok walidacji wraz z integracją listy zaufanych UE i ustandaryzowanym raportem walidacji XML ETSI TS 119 102-2 — prawny dowód ważności podpisu akceptowany przez unijne sądy pracy i weryfikatory administracji publicznej.

Signature Verification with LTV

TsgcSignatureVerifier obejmuje pełny potok: sprawdzenie skrótów, weryfikację podpisu RSA / ECDSA, walidację łańcucha certyfikatów, sprawdzenie unieważnienia OCSP, osadzone RevocationValues dla walidacji długoterminowej oraz wyszukiwanie fragmentów na podstawie Id dla SignedProperties.

EU Trust List (LOTL / EUTL)

TsgcEUTrustList przetwarza listę ETSI TS 119 612 List of Trusted Lists oraz ~31 list zaufanych dla każdego państwa członkowskiego. Klasyfikuj dowolny certyfikat X.509 jako kwalifikowany eIDAS, sprawdzając go w bieżącym rejestrze UE. Buforowanie w trybie offline dla środowisk odizolowanych.

ETSI TS 119 102-2 Validation Report

Ustandaryzowany raport walidacji XML (v1.2.1) generowany dla każdej weryfikacji — format akceptowany przez unijne sądy pracy i weryfikatory administracji publicznej jako prawny dowód ważności podpisu.

RFC 3161 Timestamping

TsgcTSAClient łączy się z dowolnym urzędem sygnatur czasowych RFC 3161. Awansuje podpisy z B-B do B-T, B-LT i B-LTA — weryfikowalne długo po wygaśnięciu certyfikatu podpisującego.

OCSP Revocation

TsgcOCSPClient wykonuje sprawdzenia statusu certyfikatu online zgodnie z RFC 6960. Unieważnienie w czasie rzeczywistym, z odpowiedzią OCSP osadzoną w podpisach B-LT, dzięki czemu dokument pozostaje weryfikowalny po późniejszym przejściu serwera w tryb offline.

XML Canonicalization (C14N)

Inkluzywny C14N (xml-c14n11) i ekskluzywny C14N (xml-exc-c14n) dla spójnego przetwarzania podpisów XML. Każdy profil krajowy wybiera kanonizację oczekiwaną przez jego regulatora.

Natywny, autonomiczny, wielowersyjny

Zero External DLLs

Kryptografia Windows CNG / BCrypt wszędzie — nie wymaga biblioteki DLL OpenSSL. Natywny PBES2 / PBKDF2 / AES-CBC dla zaszyfrowanych PEM PKCS#8. WinHTTP dla operacji sieciowych.

Delphi 7 through Delphi 13

Obsługuje każdy kompilator Delphi od Delphi 7 do RAD Studio 13 oraz C++Builder. Nowoczesne jednostki chronione dla zgodności z poprzednimi wersjami (np. TsgcASiCContainer wymaga typów generycznych D2010+; kompiluje się bez problemu jako pusta jednostka na D7).

.NET Implementation

Lustrzany port C# dla .NET Framework 2.0–4.8, .NET Core, .NET 5–9 i .NET Standard. Te same nazwy klas Tsgc*; ta sama powierzchnia API co biblioteka Delphi.

Full Source Code

Pełny kod źródłowy dołączony do każdej licencji. Przeglądaj, dostosowuj, audytuj i rozszerzaj. Nazwy klas komponentów zarejestrowane dla integracji z IDE w czasie projektowania.

UTC Timestamps Throughout

Wszystkie sygnatury czasowe X.509 / CRL / OCSP / TSA przechowywane jako wartości UTC TDateTime, zgodnie z RFC 5280, RFC 3161 i RFC 6960. Konwersja na czas lokalny przez właściwości *Local każdego komponentu.

Zero Runtime Royalties

Bezpłatna redystrybucja binarna. Podpisuj tyle dokumentów, ile chcesz, bez opłat za dokument i bez licencji za wdrożenie.

To samo API, trzy różne źródła kluczy

Podpisz fakturę VeriFactu lokalnym plikiem PFX

  • Jeden komponent wysokiego poziomu (TsgcDocumentSigner)
  • Profil wybiera XAdES-EPES, B-B, SHA-256, ekskluzywny C14N
  • Przełącz na spFatturaPA dla Włoch, spKSeF dla Polski
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;

Podpisz plik EXE Authenticode za pomocą Azure Trusted Signing

  • Klucz w chmurze, bez lokalnego PFX ani tokenu USB
  • Uwierzytelnianie poświadczeniami klienta OAuth2
  • Certyfikat publicznego zaufania wydany przez Microsoft
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 z widocznym podpisem i sygnaturą czasową

  • Certyfikat z magazynu Windows według nazwy podmiotu
  • Sygnatura czasowa RFC 3161 osadzona w podpisie
  • Widoczny wygląd z powodem i lokalizacją
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;

Wdrożenie podpisów zgodnych z eIDAS już dziś

Dodaj podpisywanie XAdES, PAdES, CAdES i ASiC do swojej aplikacji Delphi, C++Builder lub .NET.