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;
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
| Funktion | Beschreibung |
|---|---|
BuildStandalonePdfMacToken | Erstellt ein eigenständiges AuthenticatedData-Token aus 32-Byte-Werten für Dateiverschlüsselungsschlüssel, KDF-Salt und Datendigest |
VerifyStandalonePdfMacToken | Validiert kanonisches DER, Algorithmen, Attribute, den verschlüsselten Schlüssel, den erwarteten Datendigest und HMAC in konstanter Zeit, wo Geheimwerte verglichen werden |
BuildAttachedPdfMacToken | Erstellt ein angehängtes Token, indem Datendigest, Signaturdigest, Signatur-Objektnummer und Signatur-Generation in den gebundenen Integritäts-Digest gehasht werden |
VerifyAttachedPdfMacToken | Baut den gebundenen Digest der Anhangsbindung aus dem erwarteten Signaturkontext neu auf und verifiziert das resultierende Token |
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