mega_security_rs/
utils.rs1use crate::PBKDF2_ITER_NUM;
2
3use pbkdf2::pbkdf2_hmac;
4use sha2::{Digest, Sha256, Sha512};
5
6pub fn _compute_derived_key(salt_hash: &[u8], password: &str) -> Vec<u8> {
7 let mut derived_key = [0u8; 32];
8 pbkdf2_hmac::<Sha512>(password.as_bytes(), &salt_hash, PBKDF2_ITER_NUM, &mut derived_key);
9 derived_key.to_vec()
10}
11
12pub fn _salt(id: &str, random_value: &[u8]) -> Vec<u8> {
13 let mut hasher = Sha256::new();
14 let mut padding = vec!['P' as u8; 200 - id.len()];
15
16 let mut salt: Vec<u8> = Vec::new();
17 salt.append(&mut id.as_bytes().to_vec());
18 salt.append(&mut padding);
19 salt.append(&mut random_value.to_vec());
20
21 hasher.update(&salt);
22
23 hasher.finalize().to_vec()
24}