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