zkl-kds/key-derivation.service.js
2024-08-21 17:11:06 +03:00

28 lines
667 B
JavaScript

import {
generateMnemonic as generateMnemonic_bip39,
mnemonicToSeed,
} from "web-bip39";
import wordlist from "web-bip39/wordlists/english";
import elliptic from "elliptic";
const MNEMONIC_STRENGTH = 192;
const CURVE = "curve25519"
export async function generateKeyPair(mnemonic) {
const seed = (await mnemonicToSeed(mnemonic)).toString("hex");
const ec = new elliptic.ec(CURVE);
const keyPair = ec.genKeyPair({
entropy: seed.slice(0, 32),
});
return {
publicKey: keyPair.getPublic("hex"),
privateKey: keyPair.getPrivate("hex"),
}
}
export function generateMnemonic() {
return generateMnemonic_bip39(wordlist, MNEMONIC_STRENGTH);
}