PDFium Delphi Component Docs

FPdfMac Unité

Module: FPdfMac
Construit et vérifie les jetons CMS AuthenticatedData des codes d’authentification PDF ISO/TS 32004 autonomes et attachés à une signature

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

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é

Functions

FunctionDescription
BuildStandalonePdfMacTokenConstruit 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
VerifyStandalonePdfMacTokenValide 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
BuildAttachedPdfMacTokenConstruit 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é
VerifyAttachedPdfMacTokenReconstruit le condensé de liaison attaché depuis le contexte de signature attendu et vérifie le jeton résultant

Current scope

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

See Also

FPdfHmac, FPdfAes, FPdfEncrypt, TPdf.ValidatePdfMac