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 реализует AES в режиме Galois/Counter Mode поверх блочных примитивов из FPdfAes. Он возвращает шифртекст и 16-байтовый тег аутентичности, а также принимает дополнительные аутентифицированные данные (AAD), которые защищаются тегом, но не шифруются
Функции расшифровки возвращают False, когда тег не проходит проверку, поэтому вызывающий код может отклонить изменённый шифртекст без возбуждения исключения. Этот режим используется структурами, которым требуется аутентифицированное шифрование сверх обработчика безопасности PDF AES-256-CBC
| Function | Description |
|---|---|
Aes256GcmEncrypt | Шифрует Plain 256-битным ключом, IV и AAD, возвращая шифртекст и 16-байтовый тег |
Aes256GcmDecrypt | Расшифровывает Cipher 256-битным ключом, IV и AAD с проверкой тега; возвращает False при несовпадении тега |
Aes128GcmEncrypt | Шифрует Plain 128-битным ключом, IV и AAD, возвращая шифртекст и 16-байтовый тег |
Aes128GcmDecrypt | Расшифровывает Cipher 128-битным ключом, IV и AAD с проверкой тега; возвращает False при несовпадении тега |
| Type | Description |
|---|---|
TAesGcmTag | 16-байтовый тег аутентичности, создаваемый и проверяемый в GCM |
TGHashBlock | Псевдоним TAesBlock, используемый строительным блоком GHASH |