Timestamps RFC3161 nativos
HPDFHeadlessTimestamp ofrece creación nativa de solicitudes 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 sin firmar signatureTimeStampToken
Configura THPDFHeadlessCMSOptions.Timestamp.TrustedCAFile y Transport antes de firmar, y pon 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 deadlines y la cancelación durante la I/O de red
Las solicitudes contienen nonces criptográficos frescos y piden los certificados del TSA; las respuestas deben coincidir tanto con el nonce de la solicitud como con el valor de firma suministrado
La verificación autentica el token CMS completo, comprueba la ruta del certificado del TSA y el EKU crítico de timestamp, verifica el binding ESS del certificado de firma, y coteja el messageImprint SHA-256, SHA-384 o SHA-512 contra los octetos reales de la firma usando el algoritmo que porta el TSTInfo
RequireRevocation carga el archivo explícito de CRLs y habilita las verificaciones de revocación de certificados verificadas por issuer; la evidencia ausente, vencida o revocada falla en lugar de producir un resultado confiable
Los tokens existentes pueden verificarse offline sin el nonce de la solicitud original; la verificación de respuestas frescas comprueba adicionalmente el nonce original de la solicitud y el estado de la respuesta
Callbacks que ya proveen un imprint
Las funciones ForImprint aceptan un digest precalculado SHA256, SHA384 o SHA512 y su valor THPDFHeadlessTimestampDigest, y luego preservan esos bytes exactos de digest en la solicitud RFC3161 sin hashearlos de nuevo
Usa estas funciones cuando un callback de firma ya suministra el messageImprint, incluido el THPDFCMSTimestampCallback de Windows; los helpers de solicitud de firma cruda siguen usando SHA256, mientras que la verificación offline de tokens hashea los octetos originales de la firma con el algoritmo realmente soportado del TSTInfo
Token := HPDFRequestHeadlessTimestampForImprint(MessageImprint,
htdSHA384, TimestampOptions);
La longitud del imprint debe ser de 32, 48 o 64 bytes para el digest seleccionado; la verificación vinculada a la solicitud comprueba además el nonce fresco original, el OID del digest, la firma CMS, el binding del certificado del TSA, las raíces de trust explícitas, el EKU y la evidencia de revocación configurada
Consulta la creación de solicitudes, 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 del TSA haya vencido necesita una política de validación de archivo y evidencia, en lugar de saltarse las verificaciones actuales de trust
Los tokens malformados, los atributos de timestamp duplicados, los imprints que no coinciden, las raíces desconocidas, los EKUs inválidos, los certificados del TSA vencidos o revocados, las CRLs vencidas, los presupuestos de respuesta y la cancelación están cubiertos por tests nativos e independientes de aceptación
Los reportes de verificación de timestamps son separados del trust del certificado del signer del documento; un timestamp de firma no autentica revisiones posteriores sin firmar del PDF
Las funciones de timestamp cargan sus símbolos de timestamp de OpenSSL solo cuando se usan; pon HOTPDF_OPENSSL_LIBRARY en una librería compartida explícita de OpenSSL 3 de arquitectura coincidente cuando sea necesario