|
|
@@ -0,0 +1,18 @@
|
|
|
+use argon2::{
|
|
|
+ Argon2,
|
|
|
+ password_hash::{
|
|
|
+ SaltString,
|
|
|
+ PasswordHasher,
|
|
|
+ rand_core::OsRng
|
|
|
+ }
|
|
|
+};
|
|
|
+use crate::app_error::AppError;
|
|
|
+
|
|
|
+pub fn hash_password(pass: &String) -> Result<String, AppError> {
|
|
|
+ let salt = SaltString::generate(&mut OsRng);
|
|
|
+ let argon2 = Argon2::default();
|
|
|
+ match argon2.hash_password(pass.as_bytes(), &salt) {
|
|
|
+ Ok(h) => Ok(h.to_string()),
|
|
|
+ Err(e) => Err(AppError::InternalError(e.to_string()))
|
|
|
+ }
|
|
|
+}
|