Podpisy cyfrowe XAdES i PAdES dla Delphi | sgcSign | eSeGeCe

Podpisy cyfrowe XAdES i PAdES w Delphi

sgcSign tworzy podpisy cyfrowe klasy eIDAS z kodu Delphi, C++Builder i .NET: XAdES dla XML, PAdES dla PDF, CAdES dla dowolnej treści binarnej i kontenery ASiC do pakowania dokumentów razem z ich podpisami. Wszystkie cztery poziomy AdES, 10 dostawców kluczy i 21 wstępnie skonfigurowanych profili krajów UE, z natywną kryptografią CNG/BCrypt i bez zewnętrznych DLL.

Każdy format ETSI, od B-B do B-LTA

Jeden silnik podpisujący za czterema rodzinami podpisów. Wybierz format, którego oczekuje Twój regulator lub kontrahent; profil zrobi resztę.

Komponent podpisu cyfrowego XAdES / PAdES dla Delphi ma jedno zadanie: wytworzyć wynik, który odbierający portal faktycznie akceptuje. sgcSign pokrywa cztery rodziny podpisów ETSI: XAdES (EN 319 132, XML), PAdES (EN 319 142, PDF), CAdES (EN 319 122, CMS/PKCS#7) i kontenery ASiC-S / ASiC-E (EN 319 162), na każdym poziomie AdES od B-B (podstawowy) przez B-T (ze znacznikiem czasu) i B-LT (długoterminowy, z osadzonym łańcuchem i danymi unieważnień) aż po B-LTA (długoterminowy z archiwalnymi znacznikami czasu).

Klucze pochodzą stamtąd, gdzie faktycznie są: lokalne pliki PFX/PKCS#12 i PEM, magazyn certyfikatów Windows, karty inteligentne PKCS#11 i HSM-y lub usługi chmurowe (Azure Trusted Signing, AWS KMS, Google Cloud KMS, HashiCorp Vault, Certum SimplySign, zdalni QTSP CSC v2). Każdy dostawca implementuje ten sam interfejs IsgcKeyProvider, więc przejście z pliku PFX na chmurowy HSM to zmiana jednego komponentu.

XAdES

Podpisy XML enveloped, enveloping i detached: TsgcSignXML + TsgcSignProfile_XAdES

PAdES

Podpisy PDF z widoczną reprezentacją, kompatybilne z Adobe Acrobat: TsgcSignPDF + TsgcSignProfile_PAdES

CAdES i ASiC

Podpisy CMS/PKCS#7 nad dowolnym plikiem, plus kontenery ASiC-S / ASiC-E oparte na ZIP

Kompilatory

Delphi 7 do RAD Studio 13, C++Builder i .NET

Zbudowane do pracy nad zgodnością w UE

Elementy, które zamieniają surowy podpis w dokument akceptowany przez administrację publiczną.

Znaczniki czasu RFC 3161

Wskaż TSA.URL na dowolny urząd znaczników czasu, a poziomy B-T i wyższe osadzają znacznik czasu podpisu automatycznie.

Walidacja długoterminowa

Dla B-LT / B-LTA OCSP.AutoFetch i CRL.AutoFetch pobierają i osadzają pełny łańcuch oraz dane unieważnień, więc dokument weryfikuje się przez lata bez wywołań sieciowych.

21 profili krajowych

VeriFactu, TicketBAI, Facturae, FatturaPA, KSeF, Factur-X / ZUGFeRD, e-Factura, SAF-T PT, Peppol i więcej. Każdy profil wstępnie stroi hash, kanonizację, poziom, znacznik czasu i politykę unieważnień pod docelowego regulatora.

Umowy o pracę

Dziewięć profili umów o pracę w UE (Niemcy, Włochy, Hiszpania, Francja, Austria, Belgia, Portugalia, Holandia, Polska) wstępnie ustawia poziom AdES / QES oczekiwany przez każdą jurysdykcję.

Weryfikacja i raporty

TsgcSignatureVerifier waliduje skróty, łańcuchy, unieważnienia OCSP i znaczniki czasu oraz zwraca strukturalny raport z wykrytym poziomem, podpisującym i statusem.

Lista zaufania UE

TsgcEUTrustList parsuje aktualną LOTL i listy zaufania poszczególnych państw członkowskich, więc możesz sklasyfikować dowolny certyfikat jako kwalifikowany eIDAS wobec oficjalnego rejestru UE.

Widoczne podpisy PDF

Nazwa podpisującego, powód, lokalizacja, dane kontaktowe i konfigurowalny prostokąt podpisu na dowolnej stronie, kompatybilne z Adobe Acrobat.

Natywna kryptografia

Windows CNG/BCrypt pod maską. Żadnych DLL OpenSSL do wdrażania obok Twojego pliku wykonywalnego.

Biblioteka lub serwer

Ten sam silnik dostarczany jest jako biblioteka komponentów in-process oraz jako sgcSign Server, samodzielnie hostowany demon podpisujący REST dla farm buildów i pipeline'ów CI.

Podpisz fakturę XML, potem PDF

Załaduj dostawcę klucza, skonfiguruj profil, podpisz. Ten sam trzykrokowy wzorzec dla każdego formatu.

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;

Zweryfikuj, zanim wyślesz

Każdy przepływ podpisywania powinien kończyć się przebiegiem weryfikacji. TsgcSignatureVerifier przyjmuje podpisany XML lub PDF i zwraca raport dla każdego podpisu: faktycznie osiągnięty poziom AdES, podmiot podpisujący, znacznik czasu i wszelkie problemy z łańcuchem lub unieważnieniem. Jeśli poprosiłeś o B-T, a raport mówi B-B, żądanie znacznika czasu nie powiodło się i dowiadujesz się o tym na swojej maszynie, a nie w kolejce błędów regulatora.

Do kontroli kwalifikacji eIDAS połącz weryfikator z komponentem listy zaufania UE: sgcSign waliduje podpisy tak samo, jak waliduje je UE, wobec aktualnej LOTL, i może wytworzyć ustandaryzowany raport walidacji.

Idź dalej z sgcSign

Tutorial: podpisywanie XAdES

Od zwykłej faktury XML do XAdES-B-T: tryby pakowania, znaczniki czasu i weryfikacja, krok po kroku.

Tutorial: podpisywanie PDF

Ten sam przewodnik dla PAdES: profile, widoczne podpisy i aktualizacje przyrostowe.

Profile krajowe

21 wstępnie skonfigurowanych profili UE dla e-fakturowania i umów o pracę.

Dostawcy kluczy

PFX, PEM, magazyn Windows, tokeny PKCS#11 i chmurowi dostawcy KMS w szczegółach.

sgcSign Server

Scentralizowane zdalne podpisywanie przez REST. Gotowe na GitHub Actions, Azure DevOps, Docker i Helm.

Cennik

Licencje na bibliotekę komponentów i serwer, plus pakiet All-Access.

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

Podpisz swój pierwszy dokument już dziś

Pobierz wersję próbną, uruchom tutorial XAdES na własnej fakturze i zweryfikuj wynik od początku do końca.