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;
Le constructeur dérive une clé de chiffrement de clé AES-256 depuis la clé de chiffrement de fichier de 32 octets et /KDFSalt avec HKDF-SHA256 et la valeur info UTF-8 PDFMAC
Une clé MAC aléatoire de 256 bits est enveloppée avec AES-256 Key Wrap RFC 3394 et émise dans l’unique PasswordRecipientInfo requise par ISO/TS 32004
Le jeton incorpore un PdfMacIntegrityInfo de version zéro, les attributs authentifiés requis, CMSAlgorithmProtection, et une valeur HMAC-SHA256 sur l’encodage DER SET canonique des attributs
L’appelant possède la sérialisation PDF et fournit le condensé SHA-256 des segments /ByteRange exacts ; le code d’application utilise normalement TPdfEncryptOptions.EnableIntegrityProtection et TPdf.ValidatePdfMac
Les jetons attachés lient le condensé de données à un condensé de signature et au numéro et à la génération de l’objet de signature avant de construire ou de vérifier le même format de jeton authentifié
| Function | Description |
|---|---|
BuildStandalonePdfMacToken | Construit un jeton AuthenticatedData autonome à partir d’une clé de chiffrement de fichier de 32 octets, d’un sel KDF et de valeurs de condensé de données |
VerifyStandalonePdfMacToken | Valide le DER canonique, les algorithmes, les attributs, la clé enveloppée, le condensé de données attendu et le HMAC en temps constant lorsque des valeurs secrètes sont comparées |
BuildAttachedPdfMacToken | Construit un jeton attaché en hachant le condensé de données, le condensé de signature, le numéro d’objet de signature et la génération de signature dans le condensé d’intégrité lié |
VerifyAttachedPdfMacToken | Reconstruit le condensé de liaison attaché depuis le contexte de signature attendu et vérifie le jeton résultant |
L’implémentation prend en charge les codes d’authentification autonomes et attachés à une signature, les condensés de données et de signature SHA-256, HMAC-SHA256, AES-256 Key Wrap et les clés de fichier de 32 octets du gestionnaire de sécurité standard
Les gestionnaires de sécurité à clé publique et les algorithmes de condensé alternatifs ne sont pas générés