Timestamps RFC3161 nativos
HPDFHeadlessTimestamp aporta creación nativa de peticiones con OpenSSL 3 y verificación autenticada de respuestas y tokens RFC3161 en Linux y Windows
HPDFSignHeadlessCMS, SignToFile y SignPFXToFile hashean los octetos reales de la firma CMS con SHA-256 y adjuntan el token de respuesta verificado como atributo unsigned signatureTimeStampToken
Configura THPDFHeadlessCMSOptions.Timestamp.TrustedCAFile y Transport antes de firmar, y establece RequireTimestamp cuando un token autenticado sea obligatorio
Options := THPDFHeadlessCMSOptions.Default;
Options.TrustedCAFile := SignerTrustFile;
Options.RequireTimestamp := True;
Options.Timestamp.TrustedCAFile := TSATrustFile;
Options.Timestamp.TrustedCRLFile := TSACRLFile;
Options.Timestamp.RequireRevocation := True;
Options.Timestamp.Transport := RequestTimestamp;
Options.Timestamp.TransportContext := TransportContext;
Report := Document.SignPFXToFile(FieldIndex, OutputFile, IdentityPFX,
IdentityPassword, Options);
El transporte propiedad del llamador recibe un TimeStampReq DER completo y devuelve un TimeStampResp DER completo, permitiendo al llamador controlar la autenticación HTTP, la política TLS, los plazos y la cancelación durante la I/O de red
Las peticiones contienen nonces criptográficos frescos y solicitan los certificados TSA; las respuestas deben coincidir tanto con el nonce de la petición como con el valor de firma suministrado
La verificación autentica el token CMS completo, comprueba la ruta del certificado TSA y el EKU de timestamp crítico, verifica el binding ESS del certificado de firma, y comprueba el messageImprint SHA-256, SHA-384 o SHA-512 contra los octetos reales de la firma usando el algoritmo que porte el TSTInfo
RequireRevocation carga el fichero CRL explícito y habilita las comprobaciones de revocación de certificados verificadas por issuer; la evidencia ausente, caducada o revocada falla en lugar de producir un resultado confiable
Los tokens existentes pueden verificarse offline sin el nonce original de la petición; la verificación de respuestas frescas comprueba además el nonce original de la petición y el estado de la respuesta
Callbacks que ya aportan una huella
Las funciones ForImprint aceptan un digest precalculado SHA256, SHA384 o SHA512 y su valor THPDFHeadlessTimestampDigest, y preservan esos bytes exactos del digest en la petición RFC3161 sin hashearlos de nuevo
Usa estas funciones cuando un callback de firma ya suministre el messageImprint, incluido el THPDFCMSTimestampCallback de Windows; los helpers de peticiones de firma cruda siguen usando SHA256, mientras que la verificación offline de tokens hashea los octetos de la firma original con el algoritmo TSTInfo realmente soportado
Token := HPDFRequestHeadlessTimestampForImprint(MessageImprint,
htdSHA384, TimestampOptions);
La longitud de la huella debe ser de 32, 48 o 64 bytes para el digest seleccionado; la verificación ligada a la petición comprueba además el nonce fresco original, el OID del digest, la firma CMS, el binding del certificado TSA, las raíces de confianza explícitas, el EKU y la evidencia de revocación configurada
Consulta la creación de peticiones, la verificación de respuestas, la verificación offline de tokens, el transporte y los valores de digest
La validez de certificados y CRLs confiables se evalúa en el momento de la verificación, así que un token archivado cuyo certificado TSA haya caducado necesita una política de validación de archivado y evidencia, en lugar de saltarse las comprobaciones de confianza actuales
Los tokens mal formados, los atributos de timestamp duplicados, las huellas no coincidentes, las raíces desconocidas, los EKUs inválidos, los certificados TSA caducados, los certificados TSA revocados, las CRLs caducadas, los presupuestos de respuesta y la cancelación están cubiertos por tests de aceptación nativos e independientes
Los informes de verificación de timestamps son independientes de la confianza en el certificado del signer del documento; un timestamp de firma no autentica revisiones PDF posteriores sin firmar
Las funciones de timestamp cargan sus símbolos de timestamp de OpenSSL solo cuando se usan; establece HOTPDF_OPENSSL_LIBRARY a una shared library OpenSSL 3 explícita de arquitectura coincidente cuando haga falta