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
| Fabrique | Génération | Validation | Chiffrement |
|---|---|---|---|
Compatibility | SHA-256 | Les six condensés pris en charge | AES-256 ou AES-256-GCM |
Modern | SHA-384 | SHA-384, SHA-512, SHA3-384 ou SHA3-512 | AES-256 ou AES-256-GCM |
HighAssurance | SHA3-512 | SHA3-512 uniquement | AES-256-GCM requis |
Custom | Choisi par l'appelant | Liste autorisée de l'appelant | Choisi 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