TAesGcmTag = array[0..15] of Byte;
TGHashBlock = TAesBlock;
procedure Aes256GcmEncrypt(const Key: TAes256Key; const IV, Plain, AAD: TBytes;
out Cipher: TBytes; out Tag: TAesGcmTag);
function Aes256GcmDecrypt(const Key: TAes256Key; const IV, Cipher, AAD: TBytes;
const Tag: TAesGcmTag; out Plain: TBytes): Boolean;
procedure Aes128GcmEncrypt(const Key: TAes128Key; const IV, Plain, AAD: TBytes;
out Cipher: TBytes; out Tag: TAesGcmTag);
function Aes128GcmDecrypt(const Key: TAes128Key; const IV, Cipher, AAD: TBytes;
const Tag: TAesGcmTag; out Plain: TBytes): Boolean;
FPdfAesGcm implementuje AES w trybie Galois/Counter Mode na prymitywach blokowych z FPdfAes. Wytwarza szyfrogram i 16-bajtowy znacznik uwierzytelnienia oraz przyjmuje dodatkowe dane uwierzytelniane (AAD), które są objęte znacznikiem, ale nie są szyfrowane
Funkcje deszyfrujące zwracają False, gdy znacznik nie przejdzie weryfikacji, dzięki czemu wywołujący mogą odrzucić zmodyfikowany szyfrogram bez zgłaszania wyjątku. Tryb ten jest wykorzystywany przez struktury wymagające uwierzytelnionego szyfrowania wykraczającego poza procedurę obsługi bezpieczeństwa PDF AES-256-CBC
| Function | Description |
|---|---|
Aes256GcmEncrypt | Szyfruje Plain kluczem 256-bitowym, IV i AAD, zwracając szyfrogram oraz 16-bajtowy znacznik |
Aes256GcmDecrypt | Deszyfruje Cipher kluczem 256-bitowym, IV i AAD, weryfikując znacznik; zwraca False przy niezgodności znacznika |
Aes128GcmEncrypt | Szyfruje Plain kluczem 128-bitowym, IV i AAD, zwracając szyfrogram oraz 16-bajtowy znacznik |
Aes128GcmDecrypt | Deszyfruje Cipher kluczem 128-bitowym, IV i AAD, weryfikując znacznik; zwraca False przy niezgodności znacznika |
| Type | Description |
|---|---|
TAesGcmTag | 16-bajtowy znacznik uwierzytelnienia wytwarzany i weryfikowany przez GCM |
TGHashBlock | Alias typu TAesBlock używany przez element budulcowy GHASH |