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
| Factory | Generierung | Validierung | Verschlüsselung |
|---|---|---|---|
Compatibility | SHA-256 | Alle sechs unterstützten Digests | AES-256 oder AES-256-GCM |
Modern | SHA-384 | SHA-384, SHA-512, SHA3-384 oder SHA3-512 | AES-256 oder AES-256-GCM |
HighAssurance | SHA3-512 | Nur SHA3-512 | AES-256-GCM erforderlich |
Custom | Vom Aufrufer gewählt | Allowlist des Aufrufers | Vom 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