import type { AeadEncryptionContext, AeadInterface } from "@hpke/common"; import { AeadId, NativeAlgorithm } from "@hpke/common"; export declare class AesGcmContext extends NativeAlgorithm implements AeadEncryptionContext { private _rawKey; private _key; constructor(key: ArrayBufferLike | ArrayBufferView); seal(iv: ArrayBufferLike | ArrayBufferView, data: ArrayBufferLike | ArrayBufferView, aad: ArrayBufferLike | ArrayBufferView): Promise; open(iv: ArrayBufferLike | ArrayBufferView, data: ArrayBufferLike | ArrayBufferView, aad: ArrayBufferLike | ArrayBufferView): Promise; protected _setupKey(): Promise; private _importKey; } /** * The AES-128-GCM for HPKE AEAD implementing {@link AeadInterface}. * * When using `@hpke/core`, the instance of this class must be specified * to the `aead` parameter of {@link CipherSuiteParams} instead of `AeadId.Aes128Gcm`. * * @example * * ```ts * import { * Aes128Gcm, * CipherSuite, * DhkemP256HkdfSha256, * HkdfSha256, * } from "@hpke/core"; * * const suite = new CipherSuite({ * kem: new DhkemP256HkdfSha256(), * kdf: new HkdfSha256(), * aead: new Aes128Gcm(), * }); * ``` */ export declare class Aes128Gcm implements AeadInterface { /** AeadId.Aes128Gcm (0x0001) */ readonly id: AeadId; /** 16 */ readonly keySize: number; /** 12 */ readonly nonceSize: number; /** 16 */ readonly tagSize: number; createEncryptionContext(key: ArrayBufferLike | ArrayBufferView): AeadEncryptionContext; } /** * The AES-256-GCM for HPKE AEAD implementing {@link AeadInterface}. * * When using `@hpke/core`, the instance of this class must be specified * to the `aead` parameter of {@link CipherSuiteParams} instead of `AeadId.Aes256Gcm` * as follows: * * @example * * ```ts * import { * Aes256Gcm, * CipherSuite, * DhkemP256HkdfSha256, * HkdfSha256, * } from "@hpke/core"; * * const suite = new CipherSuite({ * kem: new DhkemP256HkdfSha256(), * kdf: new HkdfSha256(), * aead: new Aes256Gcm(), * }); * ``` */ export declare class Aes256Gcm extends Aes128Gcm { /** AeadId.Aes256Gcm (0x0002) */ id: AeadId; /** 32 */ keySize: number; /** 12 */ nonceSize: number; /** 16 */ tagSize: number; } //# sourceMappingURL=aesGcm.d.ts.map