THotPDF.ValidatePDFMACChain Method

Validerer hver PDF MAC-revision fra den ældste krydsreferencesektion til den aktive revision og returnerer 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;

Valideringsmodel

Resultatposter

THPDFPDFMACChainValidationInfo rapporterer RevisionCount, FirstMACRevisionIndex, ValidatedRevisionCount, FailureRevisionIndex, FailureXRefOffset, tilladelsesdækning, saltstabilitet, digest-monotonicitet og én THPDFPDFMACRevisionValidation-post pr. revision

THPDFPDFMACChainFailure skelner mellem revisionsgrænsefejl, manglende MAC'er, ugyldige eller udskiftede MAC'er, ændret KDFSalt, digest-nedgradering og autentificeret tilladelsesnedgradering

Implementeringen optæller revisionskæden én gang og opdaterer én kumulativ krydsreferencetilstand, hvilket undgår midlertidige PDF-kopier og gentagen objektindeksering, samtidig med at uafhængig kryptografisk verificering bevares for hver beskyttet revision

Delphi-eksempel

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 eksponerer det samme resultat som PDFMACRevisionChain, hvilket lader automatiserede workflows skelne aktive-revisions gyldighed fra komplet kædegyldighed

Se ValidatePDFMAC, når kun den aktive revision skal tjekkes, eller PDF MAC-algoritmeagilitet og politikprofiler for digest-politik-semantik