crystals-kyber-js
Version:
An ML-KEM/CRYSTALS-KYBER implementation written in TypeScript for various JavaScript runtimes
80 lines • 2.62 kB
TypeScript
import { MlKemBase } from "./mlKemBase.js";
/**
* Represents the MlKem768 class, which extends the MlKemBase class.
*
* This class extends the MlKemBase class and provides specific implementation for MlKem768.
*
* @deprecated Use {@link createMlKem768} instead. This async class-based API will be removed in a future release.
*
* @remarks
*
* MlKem768 is a specific implementation of the ML-KEM key encapsulation mechanism.
*
* @example
*
* ```ts
* // Using jsr:
* import { createMlKem768 } from "@dajiaji/mlkem";
* // Using npm:
* // import { createMlKem768 } from "mlkem"; // or "crystals-kyber-js"
*
* const recipient = await createMlKem768();
* const [pkR, skR] = recipient.generateKeyPair();
*
* const sender = await createMlKem768();
* const [ct, ssS] = sender.encap(pkR);
*
* const ssR = recipient.decap(ct, skR);
* // ssS === ssR
* ```
*/
export declare class MlKem768 extends MlKemBase {
_k: number;
_du: number;
_dv: number;
_eta1: number;
_eta2: number;
constructor();
/**
* Generates a keypair [publicKey, privateKey].
*
* If an error occurred, throws {@link MlKemError}.
*
* @returns A kaypair [publicKey, privateKey].
* @throws {@link MlKemError}
*/
generateKeyPair(): Promise<[Uint8Array, Uint8Array]>;
/**
* Derives a keypair [publicKey, privateKey] deterministically from a 64-octet seed.
*
* If an error occurred, throws {@link MlKemError}.
*
* @param seed A 64-octet seed for the deterministic key generation.
* @returns A kaypair [publicKey, privateKey].
* @throws {@link MlKemError}
*/
deriveKeyPair(seed: Uint8Array): Promise<[Uint8Array, Uint8Array]>;
/**
* Generates a shared secret from the encapsulated ciphertext and the private key.
*
* If an error occurred, throws {@link MlKemError}.
*
* @param pk A public key.
* @param seed An optional 32-octet seed for the deterministic shared secret generation.
* @returns A ciphertext (encapsulated public key) and a shared secret.
* @throws {@link MlKemError}
*/
encap(pk: Uint8Array, seed?: Uint8Array): Promise<[Uint8Array, Uint8Array]>;
/**
* Generates a ciphertext for the public key and a shared secret.
*
* If an error occurred, throws {@link MlKemError}.
*
* @param ct A ciphertext generated by {@link encap}.
* @param sk A private key.
* @returns A shared secret.
* @throws {@link MlKemError}
*/
decap(ct: Uint8Array, sk: Uint8Array): Promise<Uint8Array>;
}
//# sourceMappingURL=mlKem768.d.ts.map