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 implementa AES en modo Galois/Counter sobre las primitivas de bloque de FPdfAes. Produce el texto cifrado y una etiqueta de autenticación de 16 bytes, y admite datos autenticados adicionales (AAD) que la etiqueta cubre pero que no se cifran
Las funciones de descifrado devuelven False cuando la etiqueta no se verifica, de modo que los llamadores pueden rechazar un texto cifrado manipulado sin lanzar una excepción. Este modo lo emplean estructuras que requieren cifrado autenticado más allá del manejador de seguridad AES-256-CBC de PDF
| Función | Descripción |
|---|---|
Aes256GcmEncrypt | Cifra Plain con una clave de 256 bits, IV y AAD, devolviendo el texto cifrado y una etiqueta de 16 bytes |
Aes256GcmDecrypt | Descifra Cipher con una clave de 256 bits, IV y AAD, verificando la etiqueta; devuelve False si la etiqueta no coincide |
Aes128GcmEncrypt | Cifra Plain con una clave de 128 bits, IV y AAD, devolviendo el texto cifrado y una etiqueta de 16 bytes |
Aes128GcmDecrypt | Descifra Cipher con una clave de 128 bits, IV y AAD, verificando la etiqueta; devuelve False si la etiqueta no coincide |
| Tipo | Descripción |
|---|---|
TAesGcmTag | Etiqueta de autenticación de 16 bytes producida y verificada por GCM |
TGHashBlock | Alias de TAesBlock utilizado por el bloque constitutivo GHASH |