react-native-quick-crypto
Version:
A fast implementation of Node's `crypto` module written in C/C++ JSI
30 lines • 1.62 kB
TypeScript
import type { MlKemKeyPair } from './specs/mlKemKeyPair.nitro';
import { CryptoKey, KeyObject } from './keys';
import type { CryptoKeyPair, KeyUsage, EncapsulateResult, BinaryLike } from './utils';
export type MlKemVariant = 'ML-KEM-512' | 'ML-KEM-768' | 'ML-KEM-1024';
type KeyInput = BinaryLike | KeyObject | CryptoKey | KeyInputObject;
export interface KeyInputObject {
key: BinaryLike | KeyObject | CryptoKey;
format?: 'pem' | 'der';
type?: 'pkcs1' | 'pkcs8' | 'spki' | 'sec1';
}
export declare class MlKem {
variant: MlKemVariant;
native: MlKemKeyPair;
constructor(variant: MlKemVariant);
generateKeyPair(): Promise<void>;
generateKeyPairSync(): void;
getPublicKey(): ArrayBuffer;
getPrivateKey(): ArrayBuffer;
setPublicKey(keyData: ArrayBuffer, format: number, type: number): void;
setPrivateKey(keyData: ArrayBuffer, format: number, type: number): void;
encapsulate(): Promise<EncapsulateResult>;
encapsulateSync(): EncapsulateResult;
decapsulate(ciphertext: ArrayBuffer): Promise<ArrayBuffer>;
decapsulateSync(ciphertext: ArrayBuffer): ArrayBuffer;
}
export declare function encapsulate(key: KeyInput, callback?: (err: Error | null, result?: EncapsulateResult) => void): EncapsulateResult | void;
export declare function decapsulate(key: KeyInput, ciphertext: BinaryLike, callback?: (err: Error | null, result?: ArrayBuffer) => void): ArrayBuffer | void;
export declare function mlkem_generateKeyPairWebCrypto(variant: MlKemVariant, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair>;
export {};
//# sourceMappingURL=mlkem.d.ts.map