PDF-MAC-algoritme-agiliteit en -beleidsprofielen

HotPDF kan ISO/TS 32004 standalone- en handtekening-gekoppelde PDF-MAC-waarden produceren en valideren met zes documentdigest-algoritmen en faal-gesloten beleidshandhaving

Ondersteunde documentdigests

THPDFPDFMACDigestAlgorithm levert pmdaSHA256, pmdaSHA384, pmdaSHA512, pmdaSHA3_256, pmdaSHA3_384 en pmdaSHA3_512

De geselecteerde digest beschermt de volledige PDF-ByteRange, de ingekapselde integriteitsinformatie, het CMS-digest-algoritme en het kenmerk CMSAlgorithmProtection

HMAC-SHA-256-authenticatie, HKDF-SHA-256-sleutelafleiding en AES-256-sleutelomhulling blijven vast per het PDF-MAC-formaat en worden niet gewijzigd door de selectie van de documentdigest

Ingebouwde profielen

De vereisten van de ingebouwde profielen zijn vast en kunnen niet worden verzwakt door recordvelden te wijzigen; gebruik pmppCustom wanneer een applicatie een ander generatiealgoritme, andere allowlist of andere versleutelingsvereiste nodig heeft

FactoryGeneratieValidatieVersleuteling
CompatibilitySHA-256Alle zes ondersteunde digestsAES-256 of AES-256-GCM
ModernSHA-384SHA-384, SHA-512, SHA3-384 of SHA3-512AES-256 of AES-256-GCM
HighAssuranceSHA3-512Alleen SHA3-512AES-256-GCM vereist
CustomDoor aanroeper geselecteerdAllowlist van de aanroeperDoor aanroeper geselecteerd

Delphi-voorbeeld

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;

Validatiebeslissingen

Validatie ontdekt de gecodeerde digest vóór het streamen van de beschermde bereiken, wijst algoritmen buiten AllowedDigestAlgorithms af en dwingt RequireAESGCM af na geverifieerd herstel van de bestandssleutel

THPDFPDFMACValidationInfo meldt DigestAlgorithm, PolicyProfile, PolicyAccepted en UsedAESGCM; pmsPolicyRejected is verschillend van ongeldig gevormde invoer of een mislukt authenticatielabel

Voor /AttachedToSig beschermt de geselecteerde digest ook de ruwe CMS-handtekeningwaarde via PdfMacIntegrityInfo.signatureDigest, terwijl ValidatePDFMAC de actieve directe AuthCode, indirecte SigObjRef, handtekeningveld-binding en volledige ondertekende revisie verifieert

ValidatePDFMACChain past het geselecteerde beleid toe op elke beschermde incrementele revisie, wijst digest-sterkte-degradering af, vereist een stabiel KDFSalt na de eerste MAC en meldt de exacte mislukte revisie en xref-offset

Zie SignPDFWithPFXAndAttachedPDFMAC voor de atomair werkstroom voor PFX-ondertekening