THotPDF.ValidatePDFMACChain Method

Valida cada revisão PDF MAC da seção de referência cruzada mais antiga até a revisão ativa e retorna diagnósticos de integridade específicos da revisão

Declaração

function ValidatePDFMACChain(const FileName: TFileName; const Password: AnsiString; out ValidationInfo: THPDFPDFMACChainValidationInfo): boolean; overload;
function ValidatePDFMACChain(const FileName: TFileName; const Password: AnsiString; const Options: THPDFPDFMACOptions; out ValidationInfo: THPDFPDFMACChainValidationInfo): boolean; overload;

Modelo de validação

Registros de resultado

THPDFPDFMACChainValidationInfo relata RevisionCount, FirstMACRevisionIndex, ValidatedRevisionCount, FailureRevisionIndex, FailureXRefOffset, cobertura de permissão, estabilidade de sal, monotonicidade de digest e um registro THPDFPDFMACRevisionValidation por revisão

THPDFPDFMACChainFailure distingue erros de limite de revisão, MACs ausentes, MACs inválidos ou substituídos, KDFSalt alterado, rebaixamento de digest e rebaixamento de permissão autenticada

A implementação enumera a cadeia de revisões uma vez e atualiza um único estado de referência cruzada cumulativo, evitando cópias temporárias de PDF e indexação repetida de objetos, preservando a verificação criptográfica independente para cada revisão protegida

Exemplo Delphi

var
  ChainInfo: THPDFPDFMACChainValidationInfo;
begin
  if not PDF.ValidatePDFMACChain('authenticated.pdf', 'user-password',
    ChainInfo) then
    raise Exception.CreateFmt('Revision %d at xref %d failed: %s',
      [ChainInfo.FailureRevisionIndex, ChainInfo.FailureXRefOffset,
       ChainInfo.Message]);
end;

Pré-verificação

CreatePreflightReport expõe o mesmo resultado que PDFMACRevisionChain, permitindo que fluxos de trabalho automatizados distingam validade da revisão ativa de validade completa da cadeia de revisões

Veja ValidatePDFMAC quando apenas a revisão ativa deve ser verificada, ou Agilidade de algoritmo PDF MAC e perfis de política para semântica de política de digest