diff options
| author | Conrad Ludgate <conrad.ludgate@truelayer.com> | 2022-04-22 19:24:38 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-22 19:24:38 +0100 |
| commit | 02c70deecba955c1b01f661ed7a709038e90addc (patch) | |
| tree | fc6881b607120cdb97991e17142b2e3159bff759 /atuin-server/src/handlers/user.rs | |
| parent | Added docker-compose.yml (#325) (diff) | |
| download | atuin-02c70deecba955c1b01f661ed7a709038e90addc.zip | |
refactor (#327)
Diffstat (limited to 'atuin-server/src/handlers/user.rs')
| -rw-r--r-- | atuin-server/src/handlers/user.rs | 17 |
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() +} |
