THotPDF.ValidatePDFMACChain Method

Valide chaque révision PDF MAC depuis la plus ancienne section de références croisées jusqu’à la révision active et renvoie des diagnostics d’intégrité spécifiques à chaque révision

Déclaration

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;

Modèle de validation

Enregistrements de résultat

THPDFPDFMACChainValidationInfo rapporte RevisionCount, FirstMACRevisionIndex, ValidatedRevisionCount, FailureRevisionIndex, FailureXRefOffset, la couverture des permissions, la stabilité du sel, la monotonie du condensat et un record THPDFPDFMACRevisionValidation par révision

THPDFPDFMACChainFailure distingue les erreurs de frontière de révision, les MAC manquants, les MAC invalides ou remplacés, le changement de KDFSalt, la régression de condensat et la régression de permissions authentifiées

L’implémentation énumère la chaîne de révisions une seule fois et met à jour un seul état cumulé de références croisées, évitant les copies temporaires du PDF et l’indexation répétée des objets tout en préservant une vérification cryptographique indépendante pour chaque révision protégée

Exemple 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éflight

CreatePreflightReport expose le même résultat que PDFMACRevisionChain, ce qui permet aux workflows automatisés de distinguer la validité de la révision active de la validité de la chaîne complète de révisions

Voir ValidatePDFMAC lorsque seule la révision active doit être contrôlée, ou PDF MAC Algorithm Agility and Policy Profiles pour la sémantique des politiques de condensat