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}