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;
Byggaren härleder en AES-256-nyckelkrypteringsnyckel från den 32 byte stora filkrypteringsnyckeln och /KDFSalt med HKDF-SHA256 och UTF-8-infovärdet PDFMAC
En slumpmässig 256-bitars MAC-nyckel omsluts med RFC 3394 AES-256 Key Wrap och emitteras i den enda PasswordRecipientInfo som ISO/TS 32004 kräver
Token bäddar in en PdfMacIntegrityInfo version noll, de obligatoriska autentiserade attributen, CMSAlgorithmProtection och ett HMAC-SHA256-värde över den kanoniska DER SET-kodningen av attributen
Anroparen äger PDF-serialiseringen och tillhandahåller SHA-256-digesten av de exakta /ByteRange-segmenten; applikationskod använder normalt TPdfEncryptOptions.EnableIntegrityProtection och TPdf.ValidatePdfMac
Bifogade token binder datadigesten till en signaturdigest samt signaturobjektets nummer och generation innan samma autentiserade tokenformat byggs eller verifieras
| Function | Description |
|---|---|
BuildStandalonePdfMacToken | Bygger en fristående AuthenticatedData-token från 32 byte stora värden för filkrypteringsnyckel, KDF-salt och datadigest |
VerifyStandalonePdfMacToken | Validerar kanonisk DER, algoritmer, attribut, omsluten nyckel, förväntad datadigest och HMAC med konstant tid där hemliga värden jämförs |
BuildAttachedPdfMacToken | Bygger en bifogad token genom att hasha datadigesten, signaturdigesten, signaturobjektets nummer och signaturgenerationen till den bundna integritetsdigesten |
VerifyAttachedPdfMacToken | Bygger om den bundna digesten från den förväntade signaturkontexten och verifierar den resulterande token |
Implementeringen stöder fristående och signaturbifogade autentiseringskoder, SHA-256-digestar för data och signatur, HMAC-SHA256, AES-256 Key Wrap och 32 byte stora filnycklar för Standard Security Handler
Säkerhetshanterare för publika nycklar och alternativa digestalgoritmer genereras inte