-use std::{string::String};
+use std::string::String;
use argon2::{
- password_hash::{
- rand_core::OsRng,
- PasswordHash, PasswordHasher, PasswordVerifier, SaltString
- },
- Argon2
+ password_hash::{rand_core::OsRng, PasswordHash, PasswordHasher, PasswordVerifier, SaltString},
+ Argon2,
};
pub fn hash(password: &str) -> Result<String, Box<dyn std::error::Error>> {
let salt = SaltString::generate(&mut OsRng);
let argon2 = Argon2::default();
- argon2.hash_password(password.as_bytes(), &salt).map(|h| h.to_string()).map_err(|e| e.into())
+ argon2
+ .hash_password(password.as_bytes(), &salt)
+ .map(|h| h.to_string())
+ .map_err(|e| e.into())
}
-pub fn verify_password(password: &str, hashed_password: &str) -> Result<bool, Box<dyn std::error::Error>> {
+pub fn verify_password(
+ password: &str,
+ hashed_password: &str,
+) -> Result<bool, Box<dyn std::error::Error>> {
let argon2 = Argon2::default();
let parsed_hash = PasswordHash::new(hashed_password)?;
- Ok(argon2.verify_password(password.as_bytes(), &parsed_hash).is_ok())
+ Ok(argon2
+ .verify_password(password.as_bytes(), &parsed_hash)
+ .is_ok())
}
#[cfg(test)]
assert!(verify_password(password, &hash)?);
Ok(())
}
-}
\ No newline at end of file
+}