wowok
Version:
Wowok Blockchain TypeScript API
39 lines (38 loc) • 1.55 kB
TypeScript
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;