aboutsummaryrefslogtreecommitdiffstats
path: root/atuin-server/src/handlers/user.rs
diff options
context:
space:
mode:
authorConrad Ludgate <conrad.ludgate@truelayer.com>2022-04-22 19:24:38 +0100
committerGitHub <noreply@github.com>2022-04-22 19:24:38 +0100
commit02c70deecba955c1b01f661ed7a709038e90addc (patch)
treefc6881b607120cdb97991e17142b2e3159bff759 /atuin-server/src/handlers/user.rs
parentAdded docker-compose.yml (#325) (diff)
downloadatuin-02c70deecba955c1b01f661ed7a709038e90addc.zip
refactor (#327)
Diffstat (limited to 'atuin-server/src/handlers/user.rs')
-rw-r--r--atuin-server/src/handlers/user.rs17
1 files changed, 16 insertions, 1 deletions
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()
+}