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
| Factory | Generatie | Validatie | Versleuteling |
|---|---|---|---|
Compatibility | SHA-256 | Alle zes ondersteunde digests | AES-256 of AES-256-GCM |
Modern | SHA-384 | SHA-384, SHA-512, SHA3-384 of SHA3-512 | AES-256 of AES-256-GCM |
HighAssurance | SHA3-512 | Alleen SHA3-512 | AES-256-GCM vereist |
Custom | Door aanroeper geselecteerd | Allowlist van de aanroeper | Door 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