Sign Documents in a Few Lines of Code

Clean, intuitive API. Drop components at design-time or create them at runtime.

XAdES (VeriFactu)

// Sign an XML invoice with VeriFactu profile
var
  vSigner: TsgcDocumentSigner;
  vKeyProvider: TsgcPFXKeyProvider;
begin
  vKeyProvider := TsgcPFXKeyProvider.Create(nil);
  vKeyProvider.FileName := 'certificate.pfx';
  vKeyProvider.Password := 'secret';
  vKeyProvider.LoadFromFile;

  vSigner := TsgcDocumentSigner.Create(nil);
  vSigner.KeyProvider := vKeyProvider;
  vSigner.Profile := spVeriFactu;

  memoSigned.Text := vSigner.SignXML(memoXML.Text);
end;

PAdES (PDF)


// Sign a PDF document with PAdES
var
  vSigner: TsgcPAdESSigner;
  vKeyProvider: TsgcWindowsCertStoreProvider;
begin
  vKeyProvider := TsgcWindowsCertStoreProvider.Create(nil);
  vKeyProvider.SelectCertificateBySubject('My Company');

  vSigner := TsgcPAdESSigner.Create(nil);
  vSigner.KeyProvider := vKeyProvider;
  vSigner.Reason := 'Invoice approval';
  vSigner.Location := 'Madrid, Spain';
  vSigner.SignerName := 'Finance Dept';

  vSigner.SignPDFFile('invoice.pdf', 'invoice_signed.pdf');
end;

CAdES (PDF)


// Sign binary data with CAdES-T (timestamped)
var
  vSigner: TsgcCAdESSigner;
  vKeyProvider: TsgcPFXKeyProvider;
  vTSA: TsgcTSAClient;
begin
  vKeyProvider := TsgcPFXKeyProvider.Create(nil);
  vKeyProvider.FileName := 'cert.pfx';
  vKeyProvider.Password := 'secret';
  vKeyProvider.LoadFromFile;

  vTSA := TsgcTSAClient.Create(nil);
  vTSA.URL := 'http://timestamp.digicert.com';

  vSigner := TsgcCAdESSigner.Create(nil);
  vSigner.KeyProvider := vKeyProvider;
  vSigner.Level := clT;
  vSigner.TSAClient := vTSA;
  vSigner.Detached := True;

  memoSignature.Text := vSigner.SignDataBase64(vData);
end;

Download Free Trial

Fully functional 30-day trial. No credit card required. Full source code included in paid licenses.

sgcSign Trial Setup for Delphi & CBuilder
sgcSign Trial