#![allow(clippy::unwrap_used, clippy::expect_used)]
use hsh::algorithms::pbkdf2::{Pbkdf2Params, Prf};
use hsh::policy::{Policy, PolicyBuilder, PrimaryAlgorithm};
fn main() {
let preset = Policy::owasp_minimum_2025();
println!("Preset primary : {:?}", preset.primary());
let overridden =
PolicyBuilder::from_preset(&Policy::owasp_minimum_2025())
.primary(PrimaryAlgorithm::Pbkdf2)
.pbkdf2(Pbkdf2Params {
prf: Prf::Sha512,
iterations: 210_000,
dk_len: 32,
})
.build()
.unwrap();
println!(
"Overridden primary: {:?}, iters: {}",
overridden.primary(),
overridden.pbkdf2_params().iterations,
);
let scratch = PolicyBuilder::new()
.primary(PrimaryAlgorithm::Scrypt)
.build()
.unwrap();
println!("Scratch primary : {:?}", scratch.primary());
let err = PolicyBuilder::new().build().unwrap_err();
println!("Missing primary : {err}");
}