UNPKG

wowok

Version:

Wowok Blockchain TypeScript API

39 lines (38 loc) 1.55 kB
import type { X25519KeyPair, MLKEMKeyPair, PQPreKeyBundle, PQXDHResult } from "./types.js"; export interface PQXDHInitiateResult { result: PQXDHResult; initialMessage: { ephemeralPublicKey: Uint8Array; mlkemCiphertext: Uint8Array; identityKey: Uint8Array; }; } export declare function pqxdhInitiate(ourIdentityKeyPair: X25519KeyPair, peerBundle: PQPreKeyBundle): PQXDHInitiateResult; export declare function pqxdhReceive(ourIdentityKeyPair: X25519KeyPair, ourSignedPreKeyPair: X25519KeyPair, ourOneTimePreKeyPair: X25519KeyPair | null, ourPQPreKeyPair: MLKEMKeyPair, peerEphemeralPublicKey: Uint8Array, peerIdentityKey: Uint8Array, mlkemCiphertext: Uint8Array): PQXDHResult; export interface GeneratedPreKeyBundle { identityKeyPair: X25519KeyPair; falcon512KeyPair: { publicKey: Uint8Array; privateKey: Uint8Array; }; registrationId: number; signedPreKey: { keyId: number; keyPair: X25519KeyPair; signature: Uint8Array; }; oneTimePreKeys: Array<{ keyId: number; keyPair: X25519KeyPair; }>; pqPreKey: { keyId: number; keyPair: MLKEMKeyPair; signature: Uint8Array; }; } export declare function generatePreKeyBundle(identityKeyPair: X25519KeyPair, falcon512KeyPair: { publicKey: Uint8Array; privateKey: Uint8Array; }, signedPreKeyId: number, pqPreKeyId: number, oneTimePreKeyCount: number): GeneratedPreKeyBundle; export declare function verifyPreKeyBundle(bundle: PQPreKeyBundle): boolean;