HPDFVerifyHeadlessDocumentTimestamp
function HPDFVerifyHeadlessDocumentTimestamp(Source: TStream;
const ByteRange: array of Int64; const TokenDER: SysUtils.TBytes;
const Options: THPDFHeadlessCMSOptions): THPDFHeadlessCMSResult;
Autentica um document timestamp RFC3161 encapsulado genuíno e vincula seu message imprint assinado aos bytes exatos cobertos da origem
A integridade sempre exige um signer real do TSA, a assinatura criptográfica do CMS e o digest do conteúdo assinado, o binding autenticado de certificados ESS, o EKU crítico exclusivo timeStamping, key usage compatível, TSTInfo version 1 e qualquer nome de signer do TSA incluído
O algoritmo do imprint é lido do TSTInfo autenticado e suporta SHA256, SHA384 e SHA512 com algorithm parameters ausentes ou NULL
TokenDER pode conter apenas bytes zero após seu token DER completo; MaxCMSBytes delimita a entrada completa, incluindo padding de reserva
As opções default avaliam a integridade real sem alegação de confiança em certificados; TimestampValid descreve o imprint autenticado do timestamp e não implica confiança em certificado
Um Timestamp.TrustedCAFile, RequireTimestamp ou Timestamp.RequireRevocation fornecido invoca a verificação explícita da cadeia de certificados RFC 3161 e da revogação configurada; o TrustedCAFile comum fica reservado para assinaturas de aprovação
UseAdobeRevocationInfo exige adicionalmente que o signer CMS do TSA carregue um atributo real assinado de informações de revogação Adobe, com RevocationValidation.TrustedCAFile autenticando explicitamente suas evidências embutidas de CRL ou OCSP e a cobertura completa da cadeia do signer
Esse requisito define RevocationInfoEvaluated e RevocationInfoValid em sucesso e dispara EHPDFHeadlessCMSError para evidências ausentes, malformadas, revogadas, expiradas, incompletas ou não confiáveis; a verificação comum de CRL do TSA não substitui o atributo assinado obrigatório
O próprio token RFC 3161 encapsulado satisfaz o requisito de timestamp ao validar suas evidências embutidas, sem exigir um atributo adicional não assinado de timestamp de assinatura
A verificação histórica offline não afirma que um nonce de requisição foi gerado fresco; a criação checa a resposta real contra a requisição fresca dela
A posição da origem é restaurada, as leituras são delimitadas a 64 KiB, MaxSignedBytes delimita os bytes cobertos, e o cancelamento permanece observável durante o hashing
SignedRevisionLength e UnsignedTrailingBytes identificam a revisão coberta e os bytes subsequentes; BytesRead reporta a entrada real de hash coberta
O wrapper do documento valida adicionalmente os tipos de dicionário DocTimeStamp/ETSI.RFC3161, as entradas proibidas e a string exata excluída de Contents hexadecimal ou literal