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. Page hashes opcionais, o equivalente de signtool sign /ph, para que o Windows verifique cada página de 4 KB de um driver em modo kernel (Integridade da memória, HVCI).

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–10 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;

Recursos do servidor

Segurança, controle de assinatura e operações do sgcSign Server. As versões registrada e de avaliação incluem todos os recursos; a última coluna mostra o que a Community Edition oferece.

Recurso O que faz Community Edition
Login em dois fatores Códigos TOTP de qualquer aplicativo autenticador mais 10 códigos de recuperação de uso único. admin.require_2fa o torna obrigatório para todo usuário do console, e um administrador pode redefinir um segundo fator perdido. Sim
Login com OpenID Connect Login no console por Microsoft Entra ID, Okta, Keycloak, Google ou qualquer provedor padrão, com PKCE. Os usuários vinculam uma identidade externa à sua conta, e as solicitações de conta podem, opcionalmente, aguardar a aprovação de um administrador. Sim
Console reforçado Cabeçalhos de segurança e uma Content Security Policy rigorosa em toda resposta, política de senhas configurável, senhas temporárias trocadas no primeiro login e sessões que terminam quando o perfil ou os direitos por trás delas mudam. Sim
Segredos criptografados em repouso Senhas de provedores, PINs, credenciais de nuvem e segredos de webhooks armazenados com AES-256-GCM sob uma chave mestra vinculada à máquina. --protect-secrets criptografa uma configuração existente no próprio local. Sim
Aprovações obrigatórias Aprovação exigida por provedor ou por projeto, verificada pelo servidor em todos os caminhos de assinatura, inclusive a assinatura de digest bruto para o signtool /dlib. Cada aprovação assina uma única vez. Não
Ciclo de vida das chaves de API Regeneração com janela de sobreposição de até 7 dias, validade editável, proprietários das chaves, lista de provedores permitidos por chave e chaves de autoatendimento para operadores com api_keys.self_service. Uma chave também pode começar a valer no primeiro uso: ela é válida por N dias contados a partir da primeira chamada autenticada, com uma data obrigatória de ativar antes de, para que uma chave nunca usada não fique válida para sempre. As subchaves só funcionam depois que a chave principal é ativada, a ativação é registrada no log de auditoria como apikey.activate e a edição Community limita os dois valores a 30 dias. Uma chave ativa, validade de até 30 dias
Proteção contra tentativas de PIN PKCS#11 Deixa de fazer login em um token após max_pin_attempts PINs incorretos e nunca gasta a última tentativa, a menos que allow_final_pin_try esteja definido, de modo que um PIN errado nunca bloqueie um token de hardware. Não (sem provedor PKCS#11)
Servidores de carimbo de tempo padrão Uma lista, válida para todo o servidor, de servidores de carimbo de tempo RFC 3161 testados em ordem com fallback automático, tsa_urls por provedor e no_timestamp para dispensar o carimbo de tempo em uma requisição. Sim
sgcsign timestamp Adiciona um carimbo de tempo RFC 3161 a um arquivo que já está assinado com Authenticode, tentando cada servidor --tsa em sequência. Sim
--page-hashes Authenticode: adiciona um hash por página de 4 KB da imagem, o equivalente de signtool sign /ph, usado por drivers em modo kernel com Integridade da memória (HVCI). Sim
Backups agendados e criptografados Um único arquivo AES-256-GCM com a configuração, o banco de dados, a chave mestra e os arquivos de chave e certificado, gerado em um agendamento ou pelo console. --archive restore o restaura ou move o servidor para uma nova máquina. Sim
Monitoramento de expiração de certificados Verificação diária dos certificados de assinatura e TLS com avisos aos 30, 14, 7 e 1 dias no painel, no webhook cert.expiring, por e-mail e em uma métrica do Prometheus. Somente painel e e-mail
Notificações por e-mail E-mail para bloqueios, alterações de dois fatores e de senha, backups com falha e certificados prestes a expirar, por SMTP com STARTTLS ou TLS implícito. No Windows não são necessárias bibliotecas OpenSSL. Sim
Instalador para Windows sgcSignServer_Setup.exe instala o serviço do Windows, cria o primeiro administrador, abre a porta no firewall e configura o TLS com um certificado autoassinado ou um arquivo PFX existente. Não, a Community roda a partir do zip com start.bat (HTTP simples)
Perfis salvos da CLI sgcsign config mantém as configurações em perfis nomeados e sgcsign auth set-key guarda a chave de API, na CLI Delphi e na ferramenta .NET esegece.sgcsign.cli. Sim
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.