public class MnemonicUtils
extends java.lang.Object
| Constructor and Description |
|---|
MnemonicUtils() |
| Modifier and Type | Method and Description |
|---|---|
static byte[] |
generateEntropy(java.lang.String mnemonic)
Create entropy from the mnemonic.
|
static java.lang.String |
generateMnemonic(byte[] initialEntropy)
The mnemonic must encode entropy in a multiple of 32 bits.
|
static byte[] |
generateSeed(java.lang.String mnemonic,
java.lang.String passphrase)
To create a binary seed from the mnemonic, we use the PBKDF2 function with a
mnemonic sentence (in UTF-8 NFKD) used as the password and the string "mnemonic"
+ passphrase (again in UTF-8 NFKD) used as the salt.
|
static boolean |
validateMnemonic(java.lang.String mnemonic) |
public static java.lang.String generateMnemonic(byte[] initialEntropy)
The mnemonic must encode entropy in a multiple of 32 bits. With more entropy security is improved but the sentence length increases. We refer to the initial entropy length as ENT. The allowed size of ENT is 128-256 bits.
Given a randomly generated initial entropy of size ENT, first a checksum is generated by
taking the first ENT / 32 bits of its SHA256 hash. This checksum is appended to
the end of the initial entropy. Next, these concatenated bits are split into groups of
11 bits, each encoding a number from 0-2047, serving as an index into a wordlist. Finally,
we convert these numbers into words and use the joined words as a mnemonic sentence.
initialEntropy - The initial entropy to generate mnemonic fromjava.lang.IllegalArgumentException - If the given entropy is invalidjava.lang.IllegalStateException - If the word list has not been loadedpublic static byte[] generateEntropy(java.lang.String mnemonic)
mnemonic - The input mnemonic which should be 128-160 bits in length containing
only valid wordspublic static byte[] generateSeed(java.lang.String mnemonic,
java.lang.String passphrase)
mnemonic - The input mnemonic which should be 128-160 bits in length containing
only valid wordspassphrase - The passphrase which will be used as part of salt for PBKDF2
functionpublic static boolean validateMnemonic(java.lang.String mnemonic)