THPDFHeadlessDocument.TimestampToFile
function TimestampToFile(FieldIndex: Integer; const FileName: string;
const Options: THPDFHeadlessCMSOptions;
ReservedTimestampBytes: Integer = 16384): THPDFHeadlessCMSResult;
Crea un timestamp real de documento en un campo de firma existente sin firmar y publica atómicamente una salida PDF incremental independiente
FieldIndex es el índice de campos de formulario en base cero devuelto por FindFormField; difiere del índice de firmas pobladas aceptado por VerifySignature
El diccionario de salida usa Type DocTimeStamp y SubFilter ETSI.RFC3161, con un token DER genuino de timestamp en su reserva de Contents sin cifrar
DigestMethod selecciona SHA256, SHA384 o SHA512 para el ByteRange PDF exacto cubierto; el writer corrige los rangos numéricos antes de solicitar el token
Timestamp.Transport debe devolver una respuesta RFC 3161 real, y Timestamp.TrustedCAFile debe identificar explícitamente las raíces confiables del TSA; el TrustedCRLFile y RequireRevocation opcionales validan las CRLs actuales firmadas por el issuer
La respuesta debe vincular el message imprint exacto y un nonce fresco de la solicitud, usar un certificado de TSA apropiado y un binding ESS, y pasar sus verificaciones inmediatas de firma, propósito, cadena y revocación configurada antes de la publicación
No se necesita clave de firma de aplicación ni certificado de signer; las restricciones requeridas de certificados de firma evalúan el certificado TSA realmente autenticado y la cadena de certificados embebida
Las restricciones requeridas de handler de seeds de firmas, SubFilter RFC3161, digest, reason, URL de timestamp, subject e issuer de certificados y apariencias con nombre actuales siguen vigentes
Las verificaciones autenticadas de DocMDP y FieldMDP permiten solo los cambios necesarios para insertar un timestamp genuino de documento, incluida la inserción en un campo de firma existente sin firmar bajo P1 o un lock de campo; esta excepción estándar no permite la firma ordinaria de aprobación ni los cambios de formulario que la política original prohíbe
Las verificaciones de modificación posteriores autentican el timestamp, vinculan el campo y la firma a su revisión con timestamp, y continúan protegiendo el grafo original certificado de objetos y los campos bloqueados
Para un origen anterior a PDF 2.0, la salida agrega la declaración de extensión ESIC con BaseVersion 1.7 y ExtensionLevel 1 cuando se necesita, preserva los perfiles de extensión existentes y promueve una versión efectiva anterior del PDF a través de Catalog Version 1.7 sin alterar el header original
Los campos de solo lectura, los aliases de origen y los permisos AES de llenado de formularios siguen aplicándose; la certificación de aprobación incompatible, LegalAttestation, los perfiles Adobe de revocación firmada y las referencias de transformación FieldMDP de timestamps se rechazan
ReservedTimestampBytes es una capacidad positiva de token dentro del presupuesto de objetos del documento; el token completo debe caber en la reserva hexagonal fija
La creación preserva los bytes originales de la fuente y la seguridad AES, mantiene los Contents de firmas sin cifrar, cifra los demás metadatos bajo la política original y deja el grafo cargado de campos sin cambios
Los fallos, la cancelación, las respuestas inválidas y los presupuestos insuficientes preservan cualquier destino existente y eliminan los archivos privados de staging no publicados
Los tokens de cancelación de documento, CMS y timestamp deben coincidir cuando no son nil; los datos cubiertos se leen en chunks de como máximo 64 KiB
Usa AddSignatureField y SetSignatureFieldAppearance para preparar un nuevo widget de timestamp, y VerifySignature para autenticar el timestamp de documento resultante
TimestampCount es uno y TimestampValid es true tras una creación exitosa; CertificateTrusted y TimestampTrustEvaluated reflejan la pasada explícita validada de trust del TSA
El perfil de extensión sigue ETSI EN 319 142-1, cláusula 5.6; los cambios necesarios de timestamp siguen la clarificación MDP de ISO 32000-2