PDF MAC Algorithm Agility and Policy Profiles
HotPDF kan producere og validere ISO/TS 32004 selvstændige og signaturtilknyttede PDF MAC-værdier med seks dokument-digest-algoritmer og fail-closed-politik-håndhævelse
Supported document digests
THPDFPDFMACDigestAlgorithm provides pmdaSHA256, pmdaSHA384, pmdaSHA512, pmdaSHA3_256, pmdaSHA3_384, and pmdaSHA3_512
The selected digest protects the complete PDF ByteRange, den indkapslede integritetsinformation, CMS digest-algoritmen og CMSAlgorithmProtection attribute
HMAC-SHA-256-godkendelse, HKDF-SHA-256-nøglederivation og AES-256 key wrap forbliver fastlagt af PDF MAC-formatet og ændres ikke af dokument-digest-valget
Built-in profiles
Indbyggede profilkrav er faste og kan ikke svækkes ved at ændre record-felter; brug pmppCustom når en applikation har brug for en anden genereringsalgoritme, allowlist eller krypteringskrav
| Factory | Generation | Validation | Encryption |
|---|---|---|---|
Compatibility | SHA-256 | All six supported digests | AES-256 or AES-256-GCM |
Modern | SHA-384 | SHA-384, SHA-512, SHA3-384, or SHA3-512 | AES-256 or AES-256-GCM |
HighAssurance | SHA3-512 | SHA3-512 only | AES-256-GCM required |
Custom | Caller selected | Caller allowlist | Caller selected |
Delphi example
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;
Validation decisions
Validering opdager den kodede digest, før de beskyttede intervaller streams, afviser algoritmer uden for AllowedDigestAlgorithms, og håndhæver RequireAESGCM efter autentificeret filnøgle-gendannelse
THPDFPDFMACValidationInfo rapporterer DigestAlgorithm, PolicyProfile, PolicyAccepted og UsedAESGCM; pmsPolicyRejected er adskilt fra fejlbehæftet input eller et mislykket autentificeringstag
For /AttachedToSig, beskytter den valgte digest også den rå CMS-signaturværdi gennem PdfMacIntegrityInfo.signatureDigest, while ValidatePDFMAC verifies the active direct AuthCode, indirect SigObjRef, signaturfelt-binding og komplet signeret revision
ValidatePDFMACChain anvender den valgte politik på hver beskyttede inkrementelle revision, afviser nedgradering af digest-styrke, kræver en stabil KDFSalt efter den første MAC og rapporterer den præcise fejlende revision og xref-offset
Se SignPDFWithPFXAndAttachedPDFMAC for den atomare workflow til PFX-signering