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;
Il builder deriva una chiave di crittografia AES-256 dalla chiave di crittografia del file a 32 byte e da /KDFSalt con HKDF-SHA256 e il valore info UTF-8 PDFMAC
Una chiave MAC casuale a 256 bit viene avvolta con AES-256 Key Wrap RFC 3394 ed emessa nell'unico PasswordRecipientInfo richiesto da ISO/TS 32004
Il token incorpora un PdfMacIntegrityInfo versione zero, gli attributi autenticati richiesti, CMSAlgorithmProtection e un valore HMAC-SHA256 sull'encoding DER SET canonico degli attributi
Il chiamante possiede la serializzazione PDF e fornisce il digest SHA-256 dei segmenti /ByteRange esatti; il codice applicativo usa normalmente TPdfEncryptOptions.EnableIntegrityProtection e TPdf.ValidatePdfMac
I token collegati alla firma associano il digest dei dati a un digest della firma e al numero e alla generazione dell'oggetto firma prima di costruire o verificare lo stesso formato di token autenticato
| Funzione | Descrizione |
|---|---|
BuildStandalonePdfMacToken | Costruisce un token AuthenticatedData autonomo da una chiave di crittografia del file di 32 byte, un sale KDF e valori di digest dei dati |
VerifyStandalonePdfMacToken | Valida DER canonico, algoritmi, attributi, chiave avvolta, digest dei dati atteso e HMAC in tempo costante dove vengono confrontati valori segreti |
BuildAttachedPdfMacToken | Costruisce un token collegato eseguendo l'hash del digest dei dati, del digest della firma, del numero e della generazione dell'oggetto firma nel digest di integrità associato |
VerifyAttachedPdfMacToken | Ricostruisce il digest di associazione collegato dal contesto della firma atteso e verifica il token risultante |
L'implementazione supporta codici di autenticazione autonomi e collegati alla firma, digest di dati e di firma SHA-256, HMAC-SHA256, AES-256 Key Wrap e chiavi di file del gestore di sicurezza standard a 32 byte
I gestori di sicurezza a chiave pubblica e gli algoritmi di digest alternativi non vengono generati