bitwarden_core/mobile/kdf.rs
1use bitwarden_crypto::{CryptoError, HashPurpose, Kdf, MasterKey};
2use bitwarden_encoding::B64;
3
4pub(super) async fn hash_password(
5 email: String,
6 password: String,
7 kdf_params: Kdf,
8 purpose: HashPurpose,
9) -> Result<B64, CryptoError> {
10 let master_key = MasterKey::derive(&password, &email, &kdf_params)?;
11
12 Ok(master_key.derive_master_key_hash(password.as_bytes(), purpose))
13}