Referencia de características de sgcSign

Catálogo completo de características del suite de firma digital sgcSign — estándares de firma, proveedores de claves, perfiles por país, validación, integración con la EU Trust List e informes de validación ETSI para Delphi 7 hasta Delphi 13 Florence, C++Builder y .NET.

Tres capas, un solo motor

sgcSign separa la gestión de claves, las operaciones de firma y los formatos de salida. Combina cualquier proveedor de claves con cualquier firmador; cambia entre PFX local y KMS en la nube cambiando un solo componente.

Proveedores de claves (IsgcKeyProvider)

Abstrae el acceso a certificados y claves privadas tras una única interfaz. Archivos locales, almacén de certificados de Windows, tokens hardware PKCS#11, Azure / AWS / Google Cloud KMS, HashiCorp Vault, Certum SimplySign y QTSP remotos CSC v2.

Firmadores

Firmadores especializados para cada formato ETSI: TsgcXAdESSigner, TsgcPAdESSigner, TsgcCAdESSigner, TsgcAuthenticodeSigner. Además, TsgcDocumentSigner — una API unificada de alto nivel que selecciona y configura el firmador adecuado a partir de un perfil de país. TsgcSAFTPTSigner produce la firma de factura de la Portaria 363/2010 de Portugal.

Componentes auxiliares

TsgcTSAClient (sellos de tiempo RFC 3161), TsgcOCSPClient (revocación), TsgcSignatureVerifier (validación), TsgcX509Certificate (decodificación de certificados y verificación del emisor), TsgcEUTrustList (LOTL/EUTL), TsgcASiCContainer (empaquetado ZIP ASiC-S/ASiC-E).

XAdES, PAdES, CAdES, ASiC y Authenticode

Cobertura completa de formatos de firma ETSI en los cuatro niveles AdES (B-B, B-T, B-LT, B-LTA), además de Microsoft Authenticode para firma de código.

XAdES — ETSI EN 319 132

XML Advanced Electronic Signatures. Modos enveloped, detached y enveloping. Niveles B-B / B-T / B-LT / B-LTA. SignatureParentElement para formatos enveloped que fijan la ubicación de la firma (KSeF /v2/auth/xades-signature). Diacríticos polacos, españoles y alemanes mediante sobrecargas WideString en Delphi 7+.

PAdES — ETSI EN 319 142

PDF Advanced Electronic Signatures. Firmas integradas dentro del PDF; apariencia de firma visible con nombre del firmante, motivo, ubicación, datos de contacto y rectángulo configurable. Compatible con Adobe Acrobat. Niveles PAdES-T y -LT mediante TSA + OCSP.

CAdES — ETSI EN 319 122

Firmas binarias CMS/PKCS#7 sobre cualquier archivo o flujo de datos. Formas detached y attached. CAdES-BES, CAdES-T (con sello de tiempo) y CAdES-XL (a largo plazo con valores de revocación).

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

Associated Signature Containers. Archivo en formato ZIP que agrupa uno o varios documentos con una firma XAdES o CAdES. Simple (apASiCS, un solo documento) o extendido (apASiCE, manifiesto + varios documentos). La primera entrada del ZIP es un marcador mimetype sin comprimir para que los verificadores detecten el contenedor en los primeros ~50 bytes.

Authenticode — Firma de código

Microsoft Authenticode para archivos Windows PE (.exe, .dll, .sys, .ocx, .cpl, .scr). Algoritmos de hash SHA-1, SHA-256 (por defecto), SHA-384 y SHA-512. Tokens de sello de tiempo RFC 3161. Firmas anidadas (duales) para compatibilidad con verificadores antiguos y modernos. Disponible en sgcSign Server. Hashes de página opcionales, el equivalente de signtool sign /ph, para que Windows verifique cada página de 4 KB de un controlador en modo kernel (Integridad de memoria, HVCI).

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

Compatibilidad con los cuatro niveles de conformidad ETSI para cada formato: B-B (básico), B-T (sello de tiempo), B-LT (largo plazo, con valores de revocación), B-LTA (archivado, con sello de tiempo de archivo). Pasa una firma de B-B a B-LT añadiendo un cliente TSA y un respondedor OCSP.

Locales, hardware, nube y QTSP remotos

Cada proveedor implementa IsgcKeyProvider. Cambia entre cualquiera de estas fuentes de claves sin modificar tu código de firma.

Componente Tipo Caso de uso
TsgcPFXKeyProvider Archivo local (PKCS#12) Archivos PFX/.p12 protegidos por contraseña. Soporte nativo de Windows CNG en Windows, Pascal puro en las demás plataformas.
TsgcPEMKeyProvider Archivo local (PEM) Certificados PEM con claves PKCS#8 cifradas. Descifrado nativo PBES2 / PBKDF2 / AES-CBC — no requiere DLL de OpenSSL.
TsgcWindowsCertStoreProvider Almacén de Windows Almacenes de máquina local y de usuario actual. Integración con Active Directory y directiva de grupo.
TsgcPKCS11Provider Token hardware Tarjetas inteligentes y HSM mediante driver PKCS#11 — SafeNet, YubiKey, Nitrokey, Thales, Utimaco, etc.
TsgcAzureTrustedSigningProvider Nube (Microsoft) Azure Trusted Signing — el servicio de firma cualificada de Microsoft. Credenciales de cliente OAuth2. Distinto de Azure Key Vault.
TsgcAWSKMSKeyProvider Nube (AWS) AWS Key Management Service. Las claves permanecen en AWS; de la red solo salen los hashes de los documentos.
TsgcGCloudKMSKeyProvider Nube (Google) Google Cloud Key Management. Autenticación con cuenta de servicio.
TsgcHashiCorpVaultKeyProvider Nube (autoalojada) Motor de firma transit de HashiCorp Vault. Las claves nunca salen del clúster Vault.
TsgcCertumSimplySignProvider QTSP remoto Certum SimplySign — proveedor cualificado polaco de firma electrónica. Compatible con KSeF, ZUS y PUE.
TsgcCSCKeyProvider QTSP remoto (CSC v2) Cliente genérico Cloud Signature Consortium v2 — Universign, D-Trust sign-me, A-Trust, FNMT Cl@ve Firma, Evrotrust, Intesi Group y cualquier QTSP que exponga la API CSC v2.

Facturación electrónica europea y firma de contratos laborales

Cada perfil ajusta de antemano el algoritmo de hash, la canonicalización, el nivel de firma, la política de sello de tiempo RFC 3161 y las expectativas de revocación OCSP para cumplir con el regulador del país de destino. Cambia de jurisdicción con una sola línea.

Perfiles de facturación electrónica (12)

Perfil País Sistema Formato Nivel
spVeriFactuEspañaVeriFactu (AEAT)XAdES-EPESB-B
spTicketBAIEspaña (País Vasco)TicketBAIXAdES-EPESB-B
spFacturaeB2BEspañaFacturae 3.x / FACeXAdES-EPESB-T
spFatturaPAItaliaFatturaPA (SDI)XAdES-BESB-B
spSAFTPTPortugalSAF-T PTRSA-SHA256B-B
spKSeFPoloniaKSeF (Krajowy System e-Faktur)XAdESB-T
spFacturXFrancia / AlemaniaFactur-X / ZUGFeRDXAdESB-B
spEFacturaRumaniae-Factura (ANAF)XAdESB-T
spNAVOnlineHungríaNAV OnlineXML-DSigB-B
spFiskalizacijaCroaciaFiskalizacijaXML-DSigB-B
spPeppolBEBélgicaPeppol UBL 2.0XAdESB-T
spPeppolBGBulgariaPeppol UBL 2.1XAdESB-T
spMyDATAGreciamyDATA (AADE)XAdESB-B

Portugal: además de firmar el propio archivo SAF-T (PT), el componente dedicado TsgcSAFTPTSigner produce la firma por factura de la Portaria 363/2010, la firma RSA-SHA1 cuyos cuatro caracteres en las posiciones 1, 11, 21 y 31 se imprimen en la factura y se incluyen en el campo Q del código QR.

TicketBAI: las variantes por provincia spTicketBAIAraba, spTicketBAIBizkaia y spTicketBAIGipuzkoa incluyen cada una el identificador oficial de política de firma y el digest SHA-256 de la Hacienda de su provincia. spTicketBAI se asigna al par de Bizkaia por compatibilidad con versiones anteriores.

EET 2.0 checo: el registro de ventas (Elektronická evidence tržeb) no es un perfil de firma, tiene su propio componente, TsgcEETClient. Firma cada venta registrada con WS-Security, la envía a la autoridad tributaria y lee el código de acuse de recibo, el pok. La comunicación de ventas comienza el 1 de enero de 2027. Más sobre EET 2.0.

Perfiles de contratos laborales de la UE (9)

Firmas compatibles con eIDAS para los requisitos de derecho laboral de los Estados miembros (por ejemplo, § 126a BGB en Alemania, FEQ en Italia). Preajustadas por jurisdicción; se cargan en TsgcXAdESSigner mediante Profile.LoadProfile(spEmploymentXX).

Perfil País Nivel Hash Sello de tiempo OCSP Notas
spEmploymentDEAlemaniaB-LTSHA-256SíSíQES requerida por el § 126a BGB para contratos en forma escrita.
spEmploymentITItaliaB-LTSHA-256SíSíFirma cualificada FEQ; los portales del INPS aceptan XAdES y CAdES.
spEmploymentESEspañaB-TSHA-256SíNoBasta con AdES. Los portales SEPE / TGSS exigen FNMT o DNIe.
spEmploymentFRFranciaB-TSHA-256SíNoAdES sirve; se prefiere QES para firma remota bajo DSP2 / RGS.
spEmploymentATAustriaB-LTSHA-256SíSíHabitual usar QES mediante Handy-Signatur / ID Austria.
spEmploymentBEBélgicaB-LTSHA-256SíSíQES mediante tarjeta eID (BeID).
spEmploymentPTPortugalB-LTSHA-256SíSíQES mediante Cartão do Cidadão / Chave Móvel Digital.
spEmploymentNLPaíses BajosB-TSHA-256SíNoAdES suele ser aceptada; QES para algunos portales de RR. HH. (UWV).
spEmploymentPLPoloniaB-TSHA-256SíNoQES mediante Profil Zaufany o certificado cualificado cuando el contrato va a ZUS / PUE.

Verifica como lo hace la UE

Pipeline de validación completo más integración con la EU Trust List y el informe de validación XML estandarizado ETSI TS 119 102-2 — prueba legal de validez de firma aceptada por los tribunales laborales de la UE y los verificadores de la administración pública.

Verificación de firma con LTV

TsgcSignatureVerifier cubre todo el pipeline: comprobaciones de digest, verificación de firmas RSA / ECDSA, validación de la cadena de certificados, comprobación de revocación OCSP, RevocationValues embebidos para validación a largo plazo y búsqueda de fragmentos por Id para SignedProperties.

EU Trust List (LOTL / EUTL)

TsgcEUTrustList parsea la List of Trusted Lists ETSI TS 119 612 y las ~31 Trusted Lists por Estado miembro. Clasifica cualquier certificado X.509 como cualificado eIDAS consultándolo en el registro vivo de la UE. Caché en modo offline para despliegues aislados.

Informe de validación ETSI TS 119 102-2

Informe XML de validación estandarizado (v1.2.1) generado para cada verificación — el formato aceptado por los tribunales laborales de la UE y los verificadores de la administración pública como prueba legal de validez de firma.

Sellos de tiempo RFC 3161

TsgcTSAClient se conecta a cualquier autoridad de sellado de tiempo RFC 3161. Eleva las firmas de B-B a B-T, B-LT y B-LTA — verificables mucho después de que el certificado de firma haya expirado.

Revocación OCSP

TsgcOCSPClient realiza comprobaciones Online Certificate Status Protocol RFC 6960. Revocación en tiempo real, con la respuesta OCSP embebida en las firmas B-LT para que el documento siga siendo verificable cuando el respondedor esté después fuera de línea.

Decodificador de certificados X.509 y comprobación del emisor

TsgcX509Certificate expone todos los campos que muestra un decodificador en línea: tamaño de clave, nombres de algoritmo, número de serie (dos puntos y decimal), nombres distinguidos RFC 2253 / LDAP, políticas de certificado, identificadores de clave, huellas SHA-1 / SHA-256 / MD5 y el pin SubjectPublicKeyInfo SHA-256. Verifica criptográficamente la firma del emisor (RSA y ECDSA), resuelve la CA desde la URL AIA caIssuers y ejecuta una comprobación OCSP automática mediante CheckCertificateAuto.

Canonicalización XML (C14N)

C14N inclusiva (xml-c14n11) y C14N exclusiva (xml-exc-c14n) para un procesamiento coherente de firmas XML. Cada perfil de país selecciona la canonicalización que espera su regulador.

Nativo, autocontenido y multi-versión

Cero DLL externas

Criptografía Windows CNG / BCrypt en Windows, un motor en Pascal puro en Linux64, macOS, iOS y Android. No requiere DLL de OpenSSL. PBES2 / PBKDF2 / AES-CBC nativos para PEM PKCS#8 cifrados. WinHTTP para las operaciones de red en Windows, el cliente HTTP de la RTL de Delphi en las demás plataformas.

Delphi 7 hasta Delphi 13 Florence

Compatible con todos los compiladores Delphi desde Delphi 7 hasta RAD Studio 13, además de C++Builder. Las unidades modernas están protegidas para compatibilidad heredada (por ejemplo, TsgcASiCContainer requiere genéricos D2010+; compila como unidad vacía en D7).

Implementación .NET

Port espejo en C# para .NET Framework 2.0–4.8, .NET Core, .NET 5–10 y .NET Standard. Mismos nombres de clase Tsgc*; misma superficie de API que la biblioteca Delphi.

Código fuente completo

Código fuente completo incluido con cada licencia. Inspecciona, personaliza, audita y amplía. Nombres de clase de componente registrados para integración en tiempo de diseño en el IDE.

Sellos de tiempo UTC en todo

Todos los sellos de tiempo X.509 / CRL / OCSP / TSA se almacenan como valores TDateTime en UTC, conforme a RFC 5280, RFC 3161 y RFC 6960. Conversión a hora local mediante las propiedades *Local de cada componente.

Cero royalties en tiempo de ejecución

Redistribución binaria gratuita. Firma todos los documentos que quieras sin tarifas por documento ni licencias por despliegue.

La misma API, tres fuentes de claves distintas

Firma una factura VeriFactu con un PFX local

  • Un único componente de alto nivel (TsgcDocumentSigner)
  • El perfil selecciona XAdES-EPES, B-B, SHA-256, C14N exclusiva
  • Cambia a spFatturaPA para Italia o spKSeF para Polonia
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;

Firma Authenticode de un EXE con Azure Trusted Signing

  • Clave en la nube, sin PFX local ni token USB
  • Autenticación con credenciales de cliente OAuth2
  • Certificado de confianza pública emitido por 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 con firma visible y sello de tiempo

  • Certificado del almacén de Windows por Subject Name
  • Sello de tiempo RFC 3161 embebido en la firma
  • Apariencia visible con motivo y ubicación
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;

Funciones del servidor

Seguridad, control de firma y operaciones del servidor sgcSign. Las compilaciones registrada y de prueba incluyen todas las funciones; la última columna muestra lo que ofrece la edición Community.

Función Qué hace Edición Community
Inicio de sesión en dos pasos Códigos TOTP de cualquier aplicación autenticadora más 10 códigos de recuperación de un solo uso. admin.require_2fa lo hace obligatorio para todos los usuarios de la consola, y un administrador puede restablecer un segundo factor perdido. Sí
Inicio de sesión con OpenID Connect Acceso a la consola mediante Microsoft Entra ID, Okta, Keycloak, Google o cualquier proveedor estándar, con PKCE. Los usuarios vinculan una identidad externa a su cuenta, y las solicitudes de cuenta pueden esperar opcionalmente la aprobación de un administrador. Sí
Consola reforzada Cabeceras de seguridad y una Content Security Policy estricta en cada respuesta, política de contraseñas configurable, contraseñas temporales que se cambian en el primer inicio de sesión y sesiones que terminan cuando cambia el rol o los permisos que las respaldan. Sí
Secretos cifrados en reposo Contraseñas de proveedores, PIN, credenciales de la nube y secretos de webhooks almacenados con AES-256-GCM bajo una clave maestra ligada a la máquina. --protect-secrets cifra en su sitio una configuración existente. Sí
Aprobaciones obligatorias Aprobación obligatoria por proveedor o por proyecto, comprobada por el servidor en todas las rutas de firma, incluida la firma de hash en bruto para signtool /dlib. Cada aprobación firma una sola vez. No
Ciclo de vida de las claves API Regeneración con una ventana de solapamiento de hasta 7 días, caducidad editable, propietarios de clave, una lista de proveedores permitidos por clave y claves de autoservicio para operadores con api_keys.self_service. Una clave también puede empezar su validez en el primer uso: es válida durante N días contados desde su primera llamada autenticada, con una fecha obligatoria de activar antes de, para que una clave sin usar nunca siga válida para siempre. Las subclaves solo funcionan cuando su clave principal está activada, la activación queda registrada en el registro de auditoría como apikey.activate y Community limita ambos valores a 30 días. Una clave activa, caducidad de hasta 30 días
Protección de reintentos de PIN PKCS#11 Deja de iniciar sesión en un token tras max_pin_attempts PIN incorrectos y nunca gasta el último intento salvo que se defina allow_final_pin_try, de modo que un PIN erróneo nunca bloquea un token de hardware. No (sin proveedor PKCS#11)
Servidores de sellos de tiempo por defecto Una lista global del servidor de servidores de sellos de tiempo RFC 3161 probados en orden con respaldo automático, tsa_urls por proveedor y no_timestamp para omitir el sello de tiempo en una solicitud. Sí
sgcsign timestamp Añade un sello de tiempo RFC 3161 a un archivo ya firmado con Authenticode, probando cada servidor --tsa por turno. Sí
--page-hashes Authenticode: añade un hash por cada página de 4 KB de la imagen, el equivalente de signtool sign /ph, que usan los controladores en modo kernel con Integridad de memoria (HVCI). Sí
Copias de seguridad cifradas programadas Un único archivo AES-256-GCM con la configuración, la base de datos, la clave maestra y los archivos de claves y certificados, generado según una programación o desde la consola. --archive restore lo restaura o traslada el servidor a una máquina nueva. Sí
Monitorización de caducidad de certificados Comprobación diaria de los certificados de firma y TLS con avisos a los 30, 14, 7 y 1 días en el panel, el webhook cert.expiring, correo y una métrica Prometheus. Solo panel y correo
Notificaciones por correo Correo para bloqueos de cuenta, cambios de autenticación en dos pasos y de contraseña, copias de seguridad fallidas y certificados a punto de caducar, mediante SMTP con STARTTLS o TLS implícito. En Windows no se necesitan bibliotecas OpenSSL. Sí
Instalador de Windows sgcSignServer_Setup.exe instala el servicio de Windows, crea el primer administrador, abre el puerto del cortafuegos y configura TLS con un certificado autofirmado o un archivo PFX existente. No, Community se ejecuta desde el zip con start.bat (HTTP sin cifrar)
Perfiles guardados en la CLI sgcsign config guarda los ajustes en perfiles con nombre y sgcsign auth set-key almacena la clave API, en la CLI de Delphi y en la herramienta .NET esegece.sgcsign.cli. Sí
La mejor opción: All-AccessTodos los productos de eSeGeCe, con Premium Support incluido, desde €1,059 al año.
Ver precios de All-Access

Lanza firmas compatibles con eIDAS hoy mismo

Añade firma XAdES, PAdES, CAdES y ASiC a tu aplicación Delphi, C++Builder o .NET.