javascriptcryptographyethereumwebcrypto-apiend-to-end-encryption

Generate Mnemonic Phrase from window.crpyto.subtle.generateKey


I am developing and web based end to end encrypted chat website. For that I am generating private keys using the window.crypto.subtle.generateKey function provided in the web crypto api.

I want the user to remember or store a mnemonic phrase like we use in ethereum wallets instead of an encryption key.

Is there a way to generate the mnemonic phrase from the private key that is generated by the window.crypto.subtle.generateKey function or is there any other way I should go to implement this?

Thanks in advance


Solution

  • Is there a way to generate the mnemonic phrase from the private key

    It's the other way around. A set of private keys can be determined from each mnemonic phrase - but you can't determine a mnemonic from a private key.


    A widely-used standard is BIP-39. Even though it was first introduced as a Bitcoin Improvement Protocol, many Ethereum wallets use it too. You can find its JS implementation in this package for example.

    Note: You're looking for functions mnemonicToSeed() and mnemonicToSeedSync(). Even though it might seem at the first look that entropyToMnemonic() translates private key to the phrase, it's not true - the entropy numbers are just positions of the words in the wordlist, not the private key bytes.