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 implémente AES en mode Galois/Counter par-dessus les primitives par bloc de FPdfAes. Il produit un texte chiffré et une étiquette d’authentification de 16 octets, et accepte des données authentifiées supplémentaires (AAD) couvertes par l’étiquette mais non chiffrées
Les fonctions de déchiffrement renvoient False lorsque l’étiquette ne se vérifie pas, afin que les appelants puissent rejeter un texte chiffré altéré sans lever d’exception. Ce mode est utilisé par les structures qui nécessitent un chiffrement authentifié au-delà du gestionnaire de sécurité PDF AES-256-CBC
| Function | Description |
|---|---|
Aes256GcmEncrypt | Chiffre Plain avec une clé de 256 bits, un IV et des AAD, et renvoie le texte chiffré ainsi qu’une étiquette de 16 octets |
Aes256GcmDecrypt | Déchiffre Cipher avec une clé de 256 bits, un IV et des AAD, en vérifiant l’étiquette ; renvoie False en cas d’inadéquation de l’étiquette |
Aes128GcmEncrypt | Chiffre Plain avec une clé de 128 bits, un IV et des AAD, et renvoie le texte chiffré ainsi qu’une étiquette de 16 octets |
Aes128GcmDecrypt | Déchiffre Cipher avec une clé de 128 bits, un IV et des AAD, en vérifiant l’étiquette ; renvoie False en cas d’inadéquation de l’étiquette |
| Type | Description |
|---|---|
TAesGcmTag | Étiquette d’authentification de 16 octets produite et vérifiée par GCM |
TGHashBlock | Alias de TAesBlock utilisé par la brique GHASH |