solana_seed_phrase/lib.rs
1//! Functions for generating keypairs from seed phrases.
2use hmac::Hmac;
3
4pub fn generate_seed_from_seed_phrase_and_passphrase(
5 seed_phrase: &str,
6 passphrase: &str,
7) -> Vec<u8> {
8 const PBKDF2_ROUNDS: u32 = 2048;
9 const PBKDF2_BYTES: usize = 64;
10
11 let salt = format!("mnemonic{passphrase}");
12
13 let mut seed = vec![0u8; PBKDF2_BYTES];
14 pbkdf2::pbkdf2::<Hmac<sha2::Sha512>>(
15 seed_phrase.as_bytes(),
16 salt.as_bytes(),
17 PBKDF2_ROUNDS,
18 &mut seed,
19 );
20 seed
21}