Agilité des algorithmes PDF MAC et profils de politique

HotPDF peut produire et valider des valeurs PDF MAC autonomes ISO/TS 32004 avec six algorithmes de condensé de document et une application de politique fermée sur échec

Condensés de document pris en charge

THPDFPDFMACDigestAlgorithm fournit pmdaSHA256, pmdaSHA384, pmdaSHA512, pmdaSHA3_256, pmdaSHA3_384 et pmdaSHA3_512

Le condensé sélectionné protège la ByteRange PDF complète, les informations d'intégrité encapsulées, l'algorithme de condensé CMS et l'attribut CMSAlgorithmProtection

L'authentification HMAC-SHA-256, la dérivation de clé HKDF-SHA-256 et l'enveloppe de clé AES-256 restent fixées par le format PDF MAC et ne sont pas modifiées par la sélection du condensé de document

Profils intégrés

Les exigences des profils intégrés sont fixes et ne peuvent pas être affaiblies en modifiant les champs d'enregistrement ; utilisez pmppCustom lorsqu'une application a besoin d'un algorithme de génération, d'une liste autorisée ou d'une exigence de chiffrement différents

FabriqueGénérationValidationChiffrement
CompatibilitySHA-256Les six condensés pris en chargeAES-256 ou AES-256-GCM
ModernSHA-384SHA-384, SHA-512, SHA3-384 ou SHA3-512AES-256 ou AES-256-GCM
HighAssuranceSHA3-512SHA3-512 uniquementAES-256-GCM requis
CustomChoisi par l'appelantListe autorisée de l'appelantChoisi par l'appelant

Exemple Delphi

uses HPDFDoc, HPDFPDFMAC;

var
  Options: THPDFPDFMACOptions;
  Info: THPDFPDFMACValidationInfo;
begin
  Options := THPDFPDFMACOptions.HighAssurance;
  if not PDF.AddStandalonePDFMAC('encrypted.pdf', 'authenticated.pdf',
    'user-password', Options) then
    raise Exception.Create('PDF MAC creation failed');

  if not PDF.ValidatePDFMAC('authenticated.pdf', 'user-password',
    Options, Info) then
    raise Exception.Create(Info.Message);
end;

Décisions de validation

La validation découvre le condensé encodé avant de diffuser les plages protégées, rejette les algorithmes hors de AllowedDigestAlgorithms et applique RequireAESGCM après la récupération authentifiée de la clé de fichier

THPDFPDFMACValidationInfo signale DigestAlgorithm, PolicyProfile, PolicyAccepted et UsedAESGCM ; pmsPolicyRejected est distinct d'une entrée malformée ou d'un tag d'authentification en échec

Pour /AttachedToSig, le condensé sélectionné protège également la valeur de signature CMS brute via PdfMacIntegrityInfo.signatureDigest, tandis que ValidatePDFMAC vérifie l’AuthCode direct actif, le SigObjRef indirect, la liaison au champ de signature et la révision signée complète

ValidatePDFMACChain applique la politique choisie à chaque révision incrémentale protégée, rejette la rétrogradation de force de condensé, exige un KDFSalt stable après le premier MAC, et rapporte la révision et l’offset xref exacts de l’échec

Voir SignPDFWithPFXAndAttachedPDFMAC pour le flux de signature PFX atomique