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 implementiert AES im Galois/Counter-Modus auf Basis der Block-Primitive aus FPdfAes. Es erzeugt Geheimtext und ein 16-Byte-Authentifizierungs-Tag und akzeptiert zusätzliche authentifizierte Daten (AAD), die vom Tag abgedeckt, aber nicht verschlüsselt werden
Die Entschlüsselungsfunktionen geben False zurück, wenn das Tag nicht verifiziert werden kann, sodass Aufrufer manipulierten Geheimtext ablehnen können, ohne eine Exception auszulösen. Dieser Modus wird von Strukturen verwendet, die authentifizierte Verschlüsselung jenseits des PDF-AES-256-CBC-Sicherheits-Handlers erfordern
| Funktion | Beschreibung |
|---|---|
Aes256GcmEncrypt | Verschlüsselt Plain mit einem 256-Bit-Schlüssel, IV und AAD und liefert Geheimtext und ein 16-Byte-Tag |
Aes256GcmDecrypt | Entschlüsselt Cipher mit einem 256-Bit-Schlüssel, IV und AAD und verifiziert das Tag; gibt bei Tag-Konflikt False zurück |
Aes128GcmEncrypt | Verschlüsselt Plain mit einem 128-Bit-Schlüssel, IV und AAD und liefert Geheimtext und ein 16-Byte-Tag |
Aes128GcmDecrypt | Entschlüsselt Cipher mit einem 128-Bit-Schlüssel, IV und AAD und verifiziert das Tag; gibt bei Tag-Konflikt False zurück |
| Typ | Beschreibung |
|---|---|
TAesGcmTag | 16-Byte-Authentifizierungs-Tag, das von GCM erzeugt und verifiziert wird |
TGHashBlock | Alias für TAesBlock, verwendet vom GHASH-Baustein |