Referência de recursos do sgcSign

Catálogo completo de recursos da suite de assinatura digital sgcSign — padrões de assinatura, provedores de chaves, perfis por país, validação, integração com EU Trust List e relatórios de validação ETSI para Delphi 7 ao Delphi 13 Florence, C++Builder e .NET.

Três camadas, um motor

O sgcSign separa o gerenciamento de chaves, as operações de assinatura e os formatos de saída. Combine qualquer provedor de chaves com qualquer assinador; mude de PFX local para KMS na nuvem alterando um componente.

Provedores de chaves (IsgcKeyProvider)

Abstrai o acesso a certificados e chaves privadas por trás de uma única interface. Arquivos locais, Windows Certificate Store, tokens de hardware PKCS#11, Azure / AWS / Google Cloud KMS, HashiCorp Vault, Certum SimplySign e QTSPs remotos CSC v2.

Assinadores

Assinadores especializados para cada formato ETSI: TsgcXAdESSigner, TsgcPAdESSigner, TsgcCAdESSigner, TsgcAuthenticodeSigner. Mais TsgcDocumentSigner — uma API de alto nível unificada que seleciona e configura o assinador correto a partir de um perfil por país. TsgcSAFTPTSigner produz a assinatura de fatura da Portaria 363/2010 de Portugal.

Componentes de suporte

TsgcTSAClient (timestamps RFC 3161), TsgcOCSPClient (revogação), TsgcSignatureVerifier (validação), TsgcX509Certificate (decodificador de certificado + verificação de emissor), TsgcEUTrustList (LOTL/EUTL), TsgcASiCContainer (empacotamento ZIP ASiC-S/ASiC-E).

XAdES, PAdES, CAdES, ASiC e Authenticode

Cobertura completa dos formatos de assinatura ETSI em todos os quatro níveis AdES (B-B, B-T, B-LT, B-LTA), mais Microsoft Authenticode para assinatura de código.

XAdES — ETSI EN 319 132

Assinaturas Eletrônicas Avançadas em XML. Modos enveloped, detached e enveloping. Níveis B-B / B-T / B-LT / B-LTA. SignatureParentElement para formatos de envelope que fixam a posição da assinatura (KSeF /v2/auth/xades-signature). Diacríticos poloneses, espanhóis e alemães por meio de overloads WideString no Delphi 7+.

PAdES — ETSI EN 319 142

Assinaturas Eletrônicas Avançadas em PDF. Assinaturas incorporadas ao PDF; aparência de assinatura visível com nome do signatário, motivo, local, informações de contato e retângulo configurável. Compatível com o Adobe Acrobat. Níveis PAdES-T e -LT via TSA + OCSP.

CAdES — ETSI EN 319 122

Assinaturas binárias CMS/PKCS#7 sobre qualquer arquivo ou fluxo de dados. Formas detached e attached. CAdES-BES, CAdES-T (com timestamp) e CAdES-XL (longo prazo com valores de revogação).

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

Associated Signature Containers. Arquivo em formato ZIP que reúne um ou mais documentos com uma assinatura XAdES ou CAdES. Simples (apASiCS, um único documento) ou Estendido (apASiCE, manifesto + vários documentos). A primeira entrada do ZIP é um marcador mimetype não compactado, para que os verificadores detectem o contêiner nos primeiros ~50 bytes.

Authenticode: assinatura de código

Microsoft Authenticode para arquivos Windows PE (.exe, .dll, .sys, .ocx, .cpl, .scr). Algoritmos de hash SHA-1, SHA-256 (padrão), SHA-384 e SHA-512. Tokens de timestamp RFC 3161. Assinaturas aninhadas (duplas) para compatibilidade com verificadores legados e modernos. Disponível no sgcSign Server.

Níveis AdES: B-B / B-T / B-LT / B-LTA

Os quatro níveis de conformidade ETSI são suportados em cada formato: B-B (básico), B-T (timestamp), B-LT (longo prazo, com valores de revogação) e B-LTA (arquivamento, com timestamp de arquivo). Promova uma assinatura de B-B para B-LT adicionando um cliente TSA e um respondedor OCSP.

QTSPs locais, de hardware, na nuvem e remotos

Todo provedor implementa IsgcKeyProvider. Alterne entre qualquer uma dessas origens de chaves sem mudar o seu código de assinatura.

Componente Tipo Caso de uso
TsgcPFXKeyProvider Arquivo local (PKCS#12) Arquivos PFX/.p12 protegidos por senha. Suporte nativo ao CNG no Windows e parsing em Pascal puro nas demais plataformas.
TsgcPEMKeyProvider Arquivo local (PEM) Certificados PEM com chaves PKCS#8 criptografadas. Descriptografia nativa PBES2 / PBKDF2 / AES-CBC, sem necessidade da DLL do OpenSSL.
TsgcWindowsCertStoreProvider Repositório do Windows Repositórios da máquina local e do usuário atual. Integração com Active Directory e Group Policy.
TsgcPKCS11Provider Token de hardware Smart cards e HSMs por meio de driver PKCS#11: SafeNet, YubiKey, Nitrokey, Thales, Utimaco, etc.
TsgcAzureTrustedSigningProvider Nuvem (Microsoft) Azure Trusted Signing, o serviço de assinatura qualificada da Microsoft. Client credentials OAuth2. Distinto do Azure Key Vault.
TsgcAWSKMSKeyProvider Nuvem (AWS) AWS Key Management Service. As chaves permanecem na AWS; apenas os hashes dos documentos saem da rede.
TsgcGCloudKMSKeyProvider Nuvem (Google) Google Cloud Key Management. Autenticação por conta de serviço.
TsgcHashiCorpVaultKeyProvider Nuvem (auto-hospedada) Mecanismo de assinatura transit do HashiCorp Vault. As chaves nunca saem do cluster do Vault.
TsgcCertumSimplySignProvider QTSP remoto Certum SimplySign, provedor polonês de assinatura eletrônica qualificada. Compatível com KSeF, ZUS e PUE.
TsgcCSCKeyProvider QTSP remoto (CSC v2) Cliente genérico do Cloud Signature Consortium v2: Universign, D-Trust sign-me, A-Trust, FNMT Cl@ve Firma, Evrotrust, Intesi Group e qualquer QTSP que exponha a API CSC v2.

Fatura eletrônica europeia e assinatura de contratos de trabalho

Cada perfil pré-ajusta o algoritmo de hash, a canonicalização, o nível de assinatura, a política de timestamp RFC 3161 e as expectativas de revogação OCSP para atender ao regulador do país de destino. Troque de jurisdição com uma única linha.

Perfis de fatura eletrônica (12)

Perfil País Sistema Formato Nível
spVeriFactuEspanhaVeriFactu (AEAT)XAdES-EPESB-B
spTicketBAIEspanha (País Basco)TicketBAIXAdES-EPESB-B
spFacturaeB2BEspanhaFacturae 3.x / FACeXAdES-EPESB-T
spFatturaPAItáliaFatturaPA (SDI)XAdES-BESB-B
spSAFTPTPortugalSAF-T PTRSA-SHA256B-B
spKSeFPolôniaKSeF (Krajowy System e-Faktur)XAdESB-T
spFacturXFrança / AlemanhaFactur-X / ZUGFeRDXAdESB-B
spEFacturaRomêniae-Factura (ANAF)XAdESB-T
spNAVOnlineHungriaNAV OnlineXML-DSigB-B
spFiskalizacijaCroáciaFiskalizacijaXML-DSigB-B
spPeppolBEBélgicaPeppol UBL 2.0XAdESB-T
spPeppolBGBulgáriaPeppol UBL 2.1XAdESB-T
spMyDATAGréciamyDATA (AADE)XAdESB-B

Portugal: além de assinar o próprio arquivo SAF-T (PT), o componente dedicado TsgcSAFTPTSigner produz a assinatura por fatura da Portaria 363/2010, a assinatura RSA-SHA1 cujos quatro caracteres nas posições 1, 11, 21 and 31 são impressos na fatura e incluídos no QR-code field Q.

TicketBAI: as variantes por província spTicketBAIAraba, spTicketBAIBizkaia e spTicketBAIGipuzkoa carregam, cada uma, o identificador oficial de política de assinatura e o digest SHA-256 da respectiva Hacienda provincial. spTicketBAI mapeia para o par Bizkaia para manter a compatibilidade com versões anteriores.

EET 2.0 tcheco: o registro de vendas (Elektronická evidence tržeb) não é um perfil de assinatura e tem um componente próprio, o TsgcEETClient. Ele assina cada venda registrada com WS-Security, envia a venda à autoridade fiscal e lê o código de confirmação retornado, o pok. O envio das vendas começa em 1º de janeiro de 2027. Saiba mais sobre o EET 2.0.

Perfis de contrato de trabalho da UE (9)

Assinaturas em conformidade com o eIDAS para os requisitos de direito do trabalho dos Estados-Membros (por exemplo, § 126a BGB na Alemanha, FEQ na Itália). Pré-ajustadas por jurisdição; carregadas no TsgcXAdESSigner via Profile.LoadProfile(spEmploymentXX).

Perfil País Nível Hash Timestamp OCSP Observações
spEmploymentDEAlemanhaB-LTSHA-256SimSimQES exigida pelo § 126a BGB para contratos na forma escrita.
spEmploymentITItáliaB-LTSHA-256SimSimAssinatura qualificada FEQ; os portais do INPS aceitam tanto XAdES quanto CAdES.
spEmploymentESEspanhaB-TSHA-256SimNãoAdES é suficiente. Os portais SEPE / TGSS exigem FNMT ou DNIe.
spEmploymentFRFrançaB-TSHA-256SimNãoAdES é aceita; QES preferida para assinatura remota sob DSP2 / RGS.
spEmploymentATÁustriaB-LTSHA-256SimSimQES via Handy-Signatur / ID Austria é comum.
spEmploymentBEBélgicaB-LTSHA-256SimSimQES via cartão eID (BeID).
spEmploymentPTPortugalB-LTSHA-256SimSimQES via Cartão de Cidadão / Chave Móvel Digital.
spEmploymentNLPaíses BaixosB-TSHA-256SimNãoAdES geralmente aceita; QES para alguns portais de RH (UWV).
spEmploymentPLPolôniaB-TSHA-256SimNãoQES via Profil Zaufany ou certificado qualificado quando o contrato vai para o ZUS / PUE.

Verify the Way the EU Verifies

Pipeline de validação completo, com integração à Lista de Confiança da UE e ao Relatório de Validação XML padronizado ETSI TS 119 102-2: prova legal da validade da assinatura, aceita por tribunais trabalhistas da UE e por verificadores da administração pública.

Verificação de assinaturas com LTV

O TsgcSignatureVerifier cobre o pipeline completo: verificação de digest, verificação de assinaturas RSA / ECDSA, validação da cadeia de certificados, verificação de revogação OCSP, RevocationValues incorporados para Validação de Longo Prazo e localização de fragmentos por Id para SignedProperties.

Lista de Confiança da UE (LOTL / EUTL)

O TsgcEUTrustList interpreta a Lista de Listas de Confiança ETSI TS 119 612 e cerca de 31 Listas de Confiança por Estado-Membro. Classifique qualquer certificado X.509 como qualificado eIDAS consultando o registro ao vivo da UE. Cache em modo offline para implantações isoladas da rede (air-gapped).

Relatório de validação ETSI TS 119 102-2

Relatório de Validação XML padronizado (v1.2.1) produzido a cada verificação, o formato aceito por tribunais trabalhistas da UE e por verificadores da administração pública como prova legal da validade da assinatura.

Timestamping RFC 3161

O TsgcTSAClient conecta-se a qualquer autoridade de timestamp RFC 3161. Promove assinaturas de B-B para B-T, B-LT e B-LTA, verificáveis muito tempo depois da expiração do certificado de assinatura.

Revogação OCSP

O TsgcOCSPClient realiza verificações do Online Certificate Status Protocol (RFC 6960). Revogação em tempo real, com a resposta OCSP incorporada às assinaturas B-LT para que o documento continue verificável quando o respondedor ficar offline.

Decodificador de certificado X.509 & verificação do emissor

TsgcX509Certificate expõe todos os campos que um decodificador online exibe: tamanho da chave, nomes de algoritmos, número de série (com dois-pontos e decimal), nomes distintos RFC 2253 / LDAP, políticas de certificado, identificadores de chave, impressões digitais SHA-1 / SHA-256 / MD5 e o pin SubjectPublicKeyInfo SHA-256. Verifica criptograficamente a assinatura do emissor (RSA e ECDSA), resolve a CA a partir da URL AIA caIssuers e executa uma verificação OCSP automática via CheckCertificateAuto.

Canonicalização XML (C14N)

C14N Inclusive (xml-c14n11) e C14N Exclusive (xml-exc-c14n) para um processamento consistente de assinaturas XML. Cada perfil de país seleciona a canonicalização esperada por seu regulador.

Nativo, autônomo e compatível entre versões

Zero DLLs externas

Criptografia Windows CNG / BCrypt no Windows e um motor em Pascal puro no Linux64, macOS, iOS e Android. Sem necessidade da DLL do OpenSSL. PBES2 / PBKDF2 / AES-CBC nativos para PEM PKCS#8 criptografado. WinHTTP para operações de rede no Windows e o cliente HTTP da RTL do Delphi nas demais plataformas.

Do Delphi 7 ao Delphi 13 Florence

Suporta todos os compiladores Delphi, do Delphi 7 ao RAD Studio 13, além do C++Builder. Units modernas protegidas para compatibilidade com versões antigas (por exemplo, TsgcASiCContainer exige generics do D2010+; compila normalmente como unit vazia no D7).

Implementação .NET

Port espelho em C# para .NET Framework 2.0–4.8, .NET Core, .NET 5–9 e .NET Standard. Mesmos nomes de classe Tsgc*; mesma superfície de API da biblioteca Delphi.

Código-fonte completo

Código-fonte completo incluído em todas as licenças. Inspecione, personalize, audite e estenda. Nomes de classe dos componentes registrados para integração com a IDE em tempo de design.

Timestamps UTC em todo o produto

Todos os timestamps X.509 / CRL / OCSP / TSA são armazenados como valores TDateTime em UTC, conforme as RFC 5280, RFC 3161 e RFC 6960. A conversão para hora local é feita pelas propriedades *Local de cada componente.

Zero royalties de runtime

Redistribuição binária gratuita. Assine quantos documentos quiser, sem taxas por documento e sem licenças por implantação.

Mesma API, três origens de chave diferentes

Assine uma fatura VeriFactu com um PFX local

  • Um único componente de alto nível (TsgcDocumentSigner)
  • O perfil escolhe XAdES-EPES, B-B, SHA-256 e C14N exclusive
  • Troque para spFatturaPA para a Itália e spKSeF para a Polônia
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;

Assine um EXE com Authenticode usando o Azure Trusted Signing

  • Chave na nuvem, sem PFX local nem token USB
  • Autenticação OAuth2 por client credentials
  • Certificado de confiança pública emitido pela 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.TenantId := '00000000-0000-0000-0000-000000000000';
    vKeyProvider.ClientId := '11111111-1111-1111-1111-111111111111';
    vKeyProvider.ClientSecret := 'my-client-secret';
    vKeyProvider.AccountName := 'my-trusted-signing-account';
    vKeyProvider.CertificateProfileName := 'public-trust';
    vKeyProvider.Endpoint := 'https://eus.codesigning.azure.net';
    vKeyProvider.Connect;

    vSigner.KeyProvider := vKeyProvider;
    vSigner.Level := alBES;   // alT additionally requires a TSAClient
    vSigner.SignFile('myapp.exe', 'myapp-signed.exe');
  finally
    vSigner.Free;
    vKeyProvider.Free;
  end;
end;

PAdES-T: PDF com assinatura visível e timestamp

  • Certificado do repositório do Windows por Subject Name
  • Timestamp RFC 3161 incorporado à assinatura
  • Aparência visível com motivo e local
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.StoreName := 'MY';
    vKeyProvider.StoreLocation := cslCurrentUser;
    vKeyProvider.SelectCertificateBySubject('Acme Corp');

    vTSA.URL := 'https://freetsa.org/tsr';

    vSigner.KeyProvider := vKeyProvider;
    vSigner.TSAClient := vTSA;
    vSigner.Reason := 'Approved';
    vSigner.Location := 'Madrid, Spain';
    vSigner.VisibleSignature.Enabled := True;
    vSigner.SignPDFFile('contract.pdf', 'contract-signed.pdf');
  finally
    vTSA.Free;
    vSigner.Free;
    vKeyProvider.Free;
  end;
end;
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Entregue assinaturas em conformidade com o eIDAS hoje

Adicione assinatura XAdES, PAdES, CAdES e ASiC à sua aplicação Delphi, C++Builder ou .NET.