PDF-MAC-Algorithmusagilität und Richtlinienprofile

HotPDF kann eigenständige PDF-MAC-Werte nach ISO/TS 32004 mit sechs Dokument-Digest-Algorithmen und fehlersicherer Richtliniendurchsetzung erzeugen und validieren

Unterstützte Dokument-Digests

THPDFPDFMACDigestAlgorithm bietet pmdaSHA256, pmdaSHA384, pmdaSHA512, pmdaSHA3_256, pmdaSHA3_384 und pmdaSHA3_512

Der ausgewählte Digest schützt den vollständigen PDF-ByteRange, die eingebetteten Integritätsinformationen, den CMS-Digest-Algorithmus und das Attribut CMSAlgorithmProtection

Die HMAC-SHA-256-Authentifizierung, die HKDF-SHA-256-Schlüsselableitung und die AES-256-Schlüsselverpackung bleiben durch das PDF-MAC-Format festgelegt und ändern sich nicht mit der Auswahl des Dokument-Digests

Eingebaute Profile

Die Anforderungen integrierter Profile sind fest und können nicht durch Änderungen an Datensatzfeldern abgeschwächt werden; verwenden Sie pmppCustom, wenn eine Anwendung einen anderen Erzeugungsalgorithmus, eine andere Zulassungsliste oder eine andere Verschlüsselungsanforderung benötigt

FactoryGenerierungValidierungVerschlüsselung
CompatibilitySHA-256Alle sechs unterstützten DigestsAES-256 oder AES-256-GCM
ModernSHA-384SHA-384, SHA-512, SHA3-384 oder SHA3-512AES-256 oder AES-256-GCM
HighAssuranceSHA3-512Nur SHA3-512AES-256-GCM erforderlich
CustomVom Aufrufer gewähltAllowlist des AufrufersVom Aufrufer gewählt

Delphi-Beispiel

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;

Validierungsentscheidungen

Die Validierung ermittelt den codierten Digest vor dem Streamen der geschützten Bereiche, weist Algorithmen außerhalb von AllowedDigestAlgorithms zurück und erzwingt RequireAESGCM nach der authentifizierten Wiederherstellung des Dateischlüssels

THPDFPDFMACValidationInfo meldet DigestAlgorithm, PolicyProfile, PolicyAccepted und UsedAESGCM; pmsPolicyRejected ist von fehlerhafter Eingabe oder einem fehlgeschlagenen Authentifizierungs-Tag getrennt

Bei /AttachedToSig schützt der gewählte Digest auch den rohen CMS-Signaturwert über PdfMacIntegrityInfo.signatureDigest, während ValidatePDFMAC den aktiven direkten AuthCode, den indirekten SigObjRef, die Signaturfeld-Bindung und die vollständige signierte Revision prüft

ValidatePDFMACChain wendet die gewählte Policy auf jede geschützte inkrementelle Revision an, weist eine Absenkung der Digest-Stärke zurück, verlangt nach dem ersten MAC ein stabiles KDFSalt und meldet die exakt fehlschlagende Revision und den xref-Offset

Siehe SignPDFWithPFXAndAttachedPDFMAC für den atomaren PFX-Signier-Workflow