THotPDF.ValidatePDFMACChain Method

Validerar varje PDF MAC-revision från den äldsta korsreferenssektionen till den aktiva revisionen och returnerar revisionsspecifik integritetsdiagnostik

Deklaration

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;

Valideringsmodell

Resultatposter

THPDFPDFMACChainValidationInfo rapporterar RevisionCount, FirstMACRevisionIndex, ValidatedRevisionCount, FailureRevisionIndex, FailureXRefOffset, behörighetstäckning, saltstabilitet, digestmonotoni och en THPDFPDFMACRevisionValidation-post per revision

THPDFPDFMACChainFailure skiljer på fel vid revisionsgränser, saknade MAC:er, ogiltiga eller ersatta MAC:er, ändrad KDFSalt, digestnedgradering och autentiserad behörighetsnedgradering

Implementationen går igenom revisionskedjan en gång och uppdaterar ett kumulativt korsreferenstillstånd, vilket undviker temporära PDF-kopior och upprepad objektindexering samtidigt som varje skyddad revision fortfarande verifieras kryptografiskt oberoende

Delphi-exempel

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;

Preflight

CreatePreflightReport exponerar samma resultat som PDFMACRevisionChain, så att automatiserade workflows kan skilja giltigheten för den aktiva revisionen från giltigheten för hela revisionskedjan

Se ValidatePDFMAC när bara den aktiva revisionen behöver kontrolleras, eller PDF MAC Algorithm Agility and Policy Profiles för semantiken kring digestpolicy