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

FactoryGeneraciónValidaciónCifrado
CompatibilitySHA-256Los seis digests soportadosAES-256 o AES-256-GCM
ModernSHA-384SHA-384, SHA-512, SHA3-384 o SHA3-512AES-256 o AES-256-GCM
HighAssuranceSHA3-512Solo SHA3-512AES-256-GCM requerido
CustomSeleccionado por el llamadorAllowlist del llamadorSeleccionado 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