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

FactoryGenerationValidationEncryption
CompatibilitySHA-256All six supported digestsAES-256 or AES-256-GCM
ModernSHA-384SHA-384, SHA-512, SHA3-384, or SHA3-512AES-256 or AES-256-GCM
HighAssuranceSHA3-512SHA3-512 onlyAES-256-GCM required
CustomCaller selectedCaller allowlistCaller 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