THPDFHeadlessDocument.TimestampToFile
function TimestampToFile(FieldIndex: Integer; const FileName: string;
const Options: THPDFHeadlessCMSOptions;
ReservedTimestampBytes: Integer = 16384): THPDFHeadlessCMSResult;
Cria um document timestamp real num campo de assinatura existente não assinado e publica atomicamente uma saída PDF incremental independente
FieldIndex é o índice de campo de formulário com base zero retornado por FindFormField; ele difere do índice de assinatura preenchida aceito por VerifySignature
O dicionário de saída usa Type DocTimeStamp e SubFilter ETSI.RFC3161, com um token DER genuíno de timestamp na reserva Contents não criptografada dele
DigestMethod seleciona SHA256, SHA384 ou SHA512 para o ByteRange exato coberto do PDF; o writer aplica patches nas faixas numéricas antes de solicitar o token
Timestamp.Transport precisa retornar uma resposta real RFC 3161, e Timestamp.TrustedCAFile precisa identificar explicitamente roots confiáveis do TSA; TrustedCRLFile e RequireRevocation opcionais validam CRLs atuais assinadas por issuers
A resposta precisa vincular o message imprint exato e o nonce fresco da requisição, usar um certificado TSA apropriado e binding ESS, e passar suas checagens imediatas de assinatura, propósito, cadeia e revogação configuradas antes da publicação
Nenhuma chave de assinatura da aplicação nem certificado de signer é necessário; constraints obrigatórias de certificados de assinatura avaliam o certificado TSA realmente autenticado e a cadeia de certificados embutida
Handler obrigatório de signature seeds, SubFilter RFC3161, digest, razão, URL de timestamp, subject e issuer de certificados, e constraints atuais de aparências nomeadas permanecem efetivos
Checagens autenticadas de DocMDP e FieldMDP permitem apenas as mudanças necessárias para inserir um document timestamp genuíno, incluindo inserção num campo de assinatura existente não assinado sob P1 ou um field lock; esta exceção padrão não permite assinatura de aprovação comum nem mudanças de formulários proibidas pela política original
Checagens posteriores de modificação autenticam o timestamp, vinculam o campo e a assinatura à revisão com timestamp dele, e continuam protegendo o grafo original certificado de objetos e os campos travados
Para uma origem anterior ao PDF 2.0, a saída adiciona a declaração de extensão ESIC com BaseVersion 1.7 e ExtensionLevel 1 quando necessário, preserva perfis de extensão existentes e promove uma versão efetiva antiga do PDF através do Catalog Version 1.7 sem alterar o header original
Campos read-only, aliases da origem e permissões AES de form-fill permanecem aplicados; certificação de aprovação incompatível, LegalAttestation, perfis Adobe de revogação assinada e referências de transforms FieldMDP de timestamps são rejeitados
ReservedTimestampBytes é uma capacidade positiva de token dentro do orçamento de objetos do documento; o token completo precisa caber na reserva hexadecimal fixa
A criação preserva os bytes originais da origem e a segurança AES, mantém Contents de assinaturas não criptografado, criptografa os demais metadados sob a política original, e deixa o grafo de campos carregado inalterado
Falhas, cancelamento, respostas inválidas e orçamentos insuficientes preservam qualquer destino existente e removem arquivos de staging não publicados
Os tokens de cancelamento do documento, do CMS e do timestamp precisam concordar quando não nil; os dados cobertos são lidos em chunks de no máximo 64 KiB
Use AddSignatureField e SetSignatureFieldAppearance para preparar um novo widget de timestamp, e VerifySignature para autenticar o document timestamp resultante
TimestampCount é um e TimestampValid é true após a criação bem-sucedida; CertificateTrusted e TimestampTrustEvaluated refletem a passada explícita validada de confiança no TSA
O perfil de extensão segue a ETSI EN 319 142-1, cláusula 5.6; as mudanças necessárias de timestamp seguem o esclarecimento MDP da ISO 32000-2