PDFium Delphi Component Docs

Unidad FPdfAesGcm

Unidad: FPdfAesGcm
Cifrado autenticado AES-GCM en Pascal puro para claves AES-128 y AES-256, que produce el texto cifrado junto con una etiqueta de autenticación de 16 bytes

Sintaxis

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;

Descripción

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

Funciones

FunciónDescripción
Aes256GcmEncryptCifra Plain con una clave de 256 bits, IV y AAD, devolviendo el texto cifrado y una etiqueta de 16 bytes
Aes256GcmDecryptDescifra Cipher con una clave de 256 bits, IV y AAD, verificando la etiqueta; devuelve False si la etiqueta no coincide
Aes128GcmEncryptCifra Plain con una clave de 128 bits, IV y AAD, devolviendo el texto cifrado y una etiqueta de 16 bytes
Aes128GcmDecryptDescifra Cipher con una clave de 128 bits, IV y AAD, verificando la etiqueta; devuelve False si la etiqueta no coincide

Tipos

TipoDescripción
TAesGcmTagEtiqueta de autenticación de 16 bytes producida y verificada por GCM
TGHashBlockAlias de TAesBlock utilizado por el bloque constitutivo GHASH

Observaciones

Véase también

FPdfAes