PDFium Delphi Component Docs

FPdfMac Unit

Unit: FPdfMac
Erstellt und verifiziert CMS-AuthenticatedData-Tokens für eigenständige und an Signaturen angehängte PDF-Authentifizierungscodes nach ISO/TS 32004

Syntax

function BuildStandalonePdfMacToken(const FileEncryptionKey, KdfSalt,
  DataDigest: TBytes): TBytes;
function VerifyStandalonePdfMacToken(const Token, FileEncryptionKey,
  KdfSalt, ExpectedDataDigest: TBytes;
  out ErrorText: string): Boolean;
function BuildAttachedPdfMacToken(const FileEncryptionKey, KdfSalt,
  DataDigest, SignatureDigest: TBytes; SignatureObjectNumber,
  SignatureGeneration: Integer): TBytes;
function VerifyAttachedPdfMacToken(const Token, FileEncryptionKey, KdfSalt,
  ExpectedDataDigest, ExpectedSignatureDigest: TBytes;
  SignatureObjectNumber, SignatureGeneration: Integer;
  out ErrorText: string): Boolean;

Description

Der Builder leitet einen AES-256-Schlüsselverschlüsselungsschlüssel aus dem 32-Byte-Dateiverschlüsselungsschlüssel und /KDFSalt mit HKDF-SHA256 und dem UTF-8-Infowert PDFMAC ab

Ein zufälliger 256-Bit-MAC-Schlüssel wird mit RFC 3394 AES-256 Key Wrap verschlüsselt und in dem einzigen von ISO/TS 32004 geforderten PasswordRecipientInfo ausgegeben

Das Token bettet eine PdfMacIntegrityInfo der Version null, die geforderten authentifizierten Attribute, CMSAlgorithmProtection und einen HMAC-SHA256-Wert über die kanonische DER-SET-Kodierung der Attribute ein

Der Aufrufer ist für die PDF-Serialisierung verantwortlich und liefert den SHA-256-Digest der exakten /ByteRange-Segmente; Anwendungscode verwendet normalerweise TPdfEncryptOptions.EnableIntegrityProtection und TPdf.ValidatePdfMac

Angehängte Tokens binden den Datendigest an einen Signaturdigest sowie die Objektnummer und Generation der Signatur, bevor dasselbe authentifizierte Token-Format erzeugt oder verifiziert wird

Funktionen

FunktionBeschreibung
BuildStandalonePdfMacTokenErstellt ein eigenständiges AuthenticatedData-Token aus 32-Byte-Werten für Dateiverschlüsselungsschlüssel, KDF-Salt und Datendigest
VerifyStandalonePdfMacTokenValidiert kanonisches DER, Algorithmen, Attribute, den verschlüsselten Schlüssel, den erwarteten Datendigest und HMAC in konstanter Zeit, wo Geheimwerte verglichen werden
BuildAttachedPdfMacTokenErstellt ein angehängtes Token, indem Datendigest, Signaturdigest, Signatur-Objektnummer und Signatur-Generation in den gebundenen Integritäts-Digest gehasht werden
VerifyAttachedPdfMacTokenBaut den gebundenen Digest der Anhangsbindung aus dem erwarteten Signaturkontext neu auf und verifiziert das resultierende Token

Aktueller Umfang

Die Implementierung unterstützt eigenständige und an Signaturen angehängte Authentifizierungscodes, SHA-256-Daten- und Signaturdigeste, HMAC-SHA256, AES-256 Key Wrap und 32-Byte-Dateischlüssel des Standard Security Handler

Public-Key-Security-Handler und alternative Digest-Algorithmen werden nicht erzeugt

See Also

FPdfHmac, FPdfAes, FPdfEncrypt, TPdf.ValidatePdfMac