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 は、FPdfAes のブロックプリミティブの上にガロア/カウンタモード (GCM) の AES を実装します。暗号文と 16 バイトの認証タグを生成し、タグで保護されるものの暗号化はされない追加認証データ (AAD) を受け付けます
復号関数はタグが検証できない場合に False を返すため、呼び出し側は例外を発生させずに改ざんされた暗号文を拒否できます。このモードは、PDF AES-256-CBC セキュリティハンドラを超えて認証付き暗号化を必要とする構造体で使用されます
| 関数 | 説明 |
|---|---|
Aes256GcmEncrypt | 256 ビットキー、IV、AAD を用いて Plain を暗号化し、暗号文と 16 バイトのタグを返します |
Aes256GcmDecrypt | 256 ビットキー、IV、AAD を用いて Cipher を復号しタグを検証します。タグ不一致時は False を返します |
Aes128GcmEncrypt | 128 ビットキー、IV、AAD を用いて Plain を暗号化し、暗号文と 16 バイトのタグを返します |
Aes128GcmDecrypt | 128 ビットキー、IV、AAD を用いて Cipher を復号しタグを検証します。タグ不一致時は False を返します |
| 型 | 説明 |
|---|---|
TAesGcmTag | GCM が生成および検証する 16 バイトの認証タグです |
TGHashBlock | GHASH 構成要素が使用する TAesBlock の別名です |