#![cfg(feature = "simple")]
use hex_literal::hex;
use pbkdf2::{
Algorithm, Params, Pbkdf2,
password_hash::{PasswordHasher, Salt},
};
const PASSWORD: &str = "password";
const SALT_B64: &str = "c2FsdA";
#[test]
fn hash_with_default_algorithm() {
let salt = Salt::from_b64(SALT_B64).unwrap();
let params = Params {
rounds: 4096,
output_length: 32,
};
let hash = Pbkdf2
.hash_password_customized(PASSWORD.as_bytes(), None, None, params, salt)
.unwrap();
assert_eq!(hash.algorithm, Algorithm::Pbkdf2Sha256.ident());
assert_eq!(hash.salt.unwrap().as_str(), SALT_B64);
assert_eq!(Params::try_from(&hash).unwrap(), params);
let expected_output = hex!("c5e478d59288c841aa530db6845c4c8d962893a001ce4e11a4963873aa98134a");
assert_eq!(hash.hash.unwrap().as_ref(), expected_output);
}