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 implementeert AES in Galois/Counter Mode bovenop de blokprimitieven in FPdfAes. Het produceert ciphertext en een 16-byte authenticatietag en accepteert additionele geauthenticeerde data (AAD) die door de tag wordt gedekt maar niet wordt versleuteld
De ontsleutelfuncties geven False terug wanneer de tag niet geverifieerd kan worden, zodat aanroepers gemanipuleerde ciphertext kunnen afwijzen zonder exceptie. Deze modus wordt gebruikt door constructies die geauthenticeerde versleuteling vereisen boven de PDF AES-256-CBC-securityhandler
| Function | Description |
|---|---|
Aes256GcmEncrypt | Versleutelt Plain met een 256-bits sleutel, IV en AAD en geeft ciphertext en een 16-byte tag terug |
Aes256GcmDecrypt | Ontsleutelt Cipher met een 256-bits sleutel, IV en AAD en verifieert de tag; geeft False terug bij een tag-mismatch |
Aes128GcmEncrypt | Versleutelt Plain met een 128-bits sleutel, IV en AAD en geeft ciphertext en een 16-byte tag terug |
Aes128GcmDecrypt | Ontsleutelt Cipher met een 128-bits sleutel, IV en AAD en verifieert de tag; geeft False terug bij een tag-mismatch |
| Type | Description |
|---|---|
TAesGcmTag | 16-byte authenticatietag die door GCM wordt geproduceerd en geverifieerd |
TGHashBlock | Alias voor TAesBlock, gebruikt door het GHASH-bouwblok |