HPDFVerifyHeadlessDocumentTimestamp
function HPDFVerifyHeadlessDocumentTimestamp(Source: TStream;
const ByteRange: array of Int64; const TokenDER: SysUtils.TBytes;
const Options: THPDFHeadlessCMSOptions): THPDFHeadlessCMSResult;
Autentica un timestamp de documento RFC3161 encapsulado genuino y vincula su imprint de mensaje firmado a los bytes exactos del source cubierto
La integridad siempre exige un firmante TSA real, la firma CMS criptográfica y el digest del contenido firmado, el binding de certificado ESS autenticado, el EKU timeStamping crítico exclusivo, un key usage compatible, TSTInfo versión 1 y cualquier nombre de firmante TSA incluido
El algoritmo del imprint se lee del TSTInfo autenticado y soporta SHA256, SHA384 y SHA512 con parámetros de algoritmo ausentes o NULL
TokenDER puede incluir solo bytes cero después de su token DER completo; MaxCMSBytes limita la entrada completa, incluido el padding de reserva
Las opciones por defecto evalúan la integridad real sin una declaración de trust de certificados; TimestampValid describe el imprint del timestamp autenticado y no implica trust de certificados
Un Timestamp.TrustedCAFile, RequireTimestamp o Timestamp.RequireRevocation suministrado invoca la verificación explícita de cadena de certificados RFC 3161 y de revocación configurada; el TrustedCAFile ordinario queda reservado para firmas de aprobación
UseAdobeRevocationInfo además exige que el firmante CMS de la TSA lleve un atributo de información de revocación de Adobe firmado genuino, con RevocationValidation.TrustedCAFile autenticando explícitamente su evidencia CRL u OCSP embebida y la cobertura completa de la cadena del firmante
Este requerimiento asigna RevocationInfoEvaluated y RevocationInfoValid en caso de éxito y lanza EHPDFHeadlessCMSError ante evidencia faltante, malformada, revocada, expirada, incompleta o no confiable; la verificación CRL ordinaria de la TSA no sustituye al atributo firmado requerido
El token RFC 3161 encapsulado en sí satisface el requerimiento de timestamp al validar su evidencia embebida, sin exigir un atributo adicional de timestamp de firma sin firmar
La verificación offline histórica no afirma que un nonce de solicitud se haya generado recientemente; la creación comprueba la respuesta real contra su solicitud fresca
La posición del source se restaura, las lecturas se acotan a 64 KiB, MaxSignedBytes limita los bytes cubiertos, y la cancelación sigue siendo observable durante el hashing
SignedRevisionLength y UnsignedTrailingBytes identifican la revisión cubierta y los bytes posteriores; BytesRead reporta la entrada real de hash cubierta
El wrapper del documento además valida los tipos de diccionario DocTimeStamp/ETSI.RFC3161, las entradas prohibidas y la cadena Contents exacta hexadecimal o literal excluida