From 02c70deecba955c1b01f661ed7a709038e90addc Mon Sep 17 00:00:00 2001 From: Conrad Ludgate Date: Fri, 22 Apr 2022 19:24:38 +0100 Subject: refactor (#327) --- atuin-server/src/handlers/user.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'atuin-server/src/handlers/user.rs') diff --git a/atuin-server/src/handlers/user.rs b/atuin-server/src/handlers/user.rs index a9a48fdc..862f228c 100644 --- a/atuin-server/src/handlers/user.rs +++ b/atuin-server/src/handlers/user.rs @@ -1,7 +1,6 @@ use std::borrow::Borrow; use atuin_common::api::*; -use atuin_common::utils::hash_secret; use axum::extract::Path; use axum::{Extension, Json}; use http::StatusCode; @@ -13,6 +12,8 @@ use crate::database::{Database, Postgres}; use crate::models::{NewSession, NewUser}; use crate::settings::Settings; +use super::{ErrorResponse, ErrorResponseStatus}; + pub fn verify_str(secret: &str, verify: &str) -> bool { sodiumoxide::init().unwrap(); @@ -139,3 +140,17 @@ pub async fn login( session: session.token, })) } + +fn hash_secret(secret: &str) -> String { + sodiumoxide::init().unwrap(); + let hash = argon2id13::pwhash( + secret.as_bytes(), + argon2id13::OPSLIMIT_INTERACTIVE, + argon2id13::MEMLIMIT_INTERACTIVE, + ) + .unwrap(); + let texthash = std::str::from_utf8(&hash.0).unwrap().to_string(); + + // postgres hates null chars. don't do that to postgres + texthash.trim_end_matches('\u{0}').to_string() +} -- cgit v1.3.1