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;
Kreator wyprowadza klucz szyfrowania kluczy AES-256 z 32-bajtowego klucza szyfrowania pliku i /KDFSalt przy użyciu HKDF-SHA256 oraz wartości info w UTF-8 PDFMAC
Losowy 256-bitowy klucz MAC jest opakowany algorytmem RFC 3394 AES-256 Key Wrap i emitowany w pojedynczym PasswordRecipientInfo wymaganym przez ISO/TS 32004
Token osadza PdfMacIntegrityInfo w wersji zero, wymagane atrybuty uwierzytelnione, CMSAlgorithmProtection oraz wartość HMAC-SHA256 nad kanonicznym kodowaniem DER SET atrybutów
Wywołujący odpowiada za serializację PDF i dostarcza skrót SHA-256 dokładnych segmentów /ByteRange; kod aplikacji używa zwykle TPdfEncryptOptions.EnableIntegrityProtection i TPdf.ValidatePdfMac
Tokeny dołączone wiążą skrót danych ze skrótem podpisu oraz numerem obiektu podpisu i generacją przed zbudowaniem lub zweryfikowaniem tego samego formatu tokena uwierzytelnionego
| Function | Description |
|---|---|
BuildStandalonePdfMacToken | Buduje samodzielny token AuthenticatedData z 32-bajtowego klucza szyfrowania pliku, soli KDF i wartości skrótu danych |
VerifyStandalonePdfMacToken | Waliduje kanoniczny DER, algorytmy, atrybuty, opakowany klucz, oczekiwany skrót danych i HMAC w czasie stałym tam, gdzie porównywane są wartości tajne |
BuildAttachedPdfMacToken | Buduje token dołączony, mieszając skrót danych, skrót podpisu, numer obiektu podpisu i generację podpisu w powiązany skrót integralności |
VerifyAttachedPdfMacToken | Odbudowuje powiązany skrót dołączenia z oczekiwanego kontekstu podpisu i weryfikuje wynikowy token |
Implementacja obsługuje samodzielne i dołączone do podpisu kody uwierzytelnienia, skróty danych i podpisów SHA-256, HMAC-SHA256, AES-256 Key Wrap oraz 32-bajtowe klucze plików Standard Security Handler
Procedury obsługi bezpieczeństwa klucza publicznego i alternatywne algorytmy skrótu nie są generowane