@hpke/core
Version:
A Hybrid Public Key Encryption (HPKE) core module for various JavaScript runtimes
80 lines • 2.18 kB
TypeScript
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: ArrayBuffer);
seal(iv: ArrayBuffer, data: ArrayBuffer, aad: ArrayBuffer): Promise<ArrayBuffer>;
open(iv: ArrayBuffer, data: ArrayBuffer, aad: ArrayBuffer): Promise<ArrayBuffer>;
protected _setupKey(): Promise<void>;
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: ArrayBuffer): 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