Agilidad de algoritmos PDF MAC y perfiles de política
HotPDF puede producir y validar valores PDF MAC de ISO/TS 32004 standalone y adjuntos a firma, con seis algoritmos de digest de documento y una aplicación de política fail-closed
Digests de documento soportados
THPDFPDFMACDigestAlgorithm proporciona pmdaSHA256, pmdaSHA384, pmdaSHA512, pmdaSHA3_256, pmdaSHA3_384 y pmdaSHA3_512
El digest seleccionado protege el ByteRange completo del PDF, la información de integridad encapsulada, el algoritmo de digest CMS y el atributo CMSAlgorithmProtection
La autenticación HMAC-SHA-256, la derivación de claves HKDF-SHA-256 y el key wrap AES-256 quedan fijos por el formato PDF MAC y no cambian con la selección del digest de documento
Perfiles integrados
Los requisitos de los perfiles integrados son fijos y no pueden debilitarse cambiando los campos del record; use pmppCustom cuando la aplicación necesite un algoritmo de generación, un allowlist o un requisito de cifrado diferente
| Factory | Generación | Validación | Cifrado |
|---|---|---|---|
Compatibility | SHA-256 | Los seis digests soportados | AES-256 o AES-256-GCM |
Modern | SHA-384 | SHA-384, SHA-512, SHA3-384 o SHA3-512 | AES-256 o AES-256-GCM |
HighAssurance | SHA3-512 | Solo SHA3-512 | AES-256-GCM requerido |
Custom | Seleccionado por el llamador | Allowlist del llamador | Seleccionado por el llamador |
Ejemplo en 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;
Decisiones de validación
La validación descubre el digest codificado antes de transmitir en streaming los rangos protegidos, rechaza los algoritmos fuera de AllowedDigestAlgorithms y hace cumplir RequireAESGCM después de la recuperación autenticada de la file key
THPDFPDFMACValidationInfo reporta DigestAlgorithm, PolicyProfile, PolicyAccepted y UsedAESGCM; pmsPolicyRejected es distinto de una entrada malformada o de un authentication tag fallido
Para /AttachedToSig, el digest seleccionado también protege el valor crudo de la firma CMS mediante PdfMacIntegrityInfo.signatureDigest, mientras que ValidatePDFMAC verifica el AuthCode directo activo, el SigObjRef indirecto, el binding del signature field y la revisión firmada completa
ValidatePDFMACChain aplica la política seleccionada a cada revisión incremental protegida, rechaza el downgrade de fortaleza de digest, exige un KDFSalt estable después del primer MAC y reporta la revisión y el offset xref exactos del fallo
Consulte SignPDFWithPFXAndAttachedPDFMAC para el workflow de firma atómico con PFX