diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/invite/app.rs | 3 | ||||
| -rw-r--r-- | src/invite/handlers/accept/mod.rs | 3 | ||||
| -rw-r--r-- | src/lib.rs | 1 | ||||
| -rw-r--r-- | src/password.rs (renamed from src/user/password.rs) | 8 | ||||
| -rw-r--r-- | src/setup/app.rs | 3 | ||||
| -rw-r--r-- | src/setup/handlers/setup/mod.rs | 9 | ||||
| -rw-r--r-- | src/test/fixtures/cookie.rs | 2 | ||||
| -rw-r--r-- | src/test/fixtures/identity.rs | 2 | ||||
| -rw-r--r-- | src/test/fixtures/user.rs | 3 | ||||
| -rw-r--r-- | src/token/app.rs | 3 | ||||
| -rw-r--r-- | src/token/repo/auth.rs | 3 | ||||
| -rw-r--r-- | src/user/app.rs | 4 | ||||
| -rw-r--r-- | src/user/create.rs | 3 | ||||
| -rw-r--r-- | src/user/handlers/login/mod.rs | 3 | ||||
| -rw-r--r-- | src/user/handlers/password/mod.rs | 3 | ||||
| -rw-r--r-- | src/user/mod.rs | 3 | ||||
| -rw-r--r-- | src/user/repo.rs | 3 |
17 files changed, 33 insertions, 26 deletions
diff --git a/src/invite/app.rs b/src/invite/app.rs index e7bd5c6..a286a8f 100644 --- a/src/invite/app.rs +++ b/src/invite/app.rs @@ -7,9 +7,10 @@ use crate::{ db::{Duplicate as _, NotFound as _}, event::Broadcaster, name::Name, + password::Password, token::{Secret, repo::Provider as _}, user::{ - Password, User, + User, create::{self, Create}, }, }; diff --git a/src/invite/handlers/accept/mod.rs b/src/invite/handlers/accept/mod.rs index 0d5f08a..9fa4d6a 100644 --- a/src/invite/handlers/accept/mod.rs +++ b/src/invite/handlers/accept/mod.rs @@ -10,8 +10,9 @@ use crate::{ error::{Internal, NotFound}, invite::{app, handlers::PathInfo}, name::Name, + password::Password, token::extract::IdentityCookie, - user::{Password, User}, + user::User, }; #[cfg(test)] @@ -17,6 +17,7 @@ mod invite; mod message; mod name; mod normalize; +mod password; mod routes; mod setup; #[cfg(test)] diff --git a/src/user/password.rs b/src/password.rs index e1d164e..6c189fc 100644 --- a/src/user/password.rs +++ b/src/password.rs @@ -6,15 +6,17 @@ use rand_core::OsRng; use crate::normalize::nfc; -#[derive(sqlx::Type)] +#[derive(Clone, Eq, PartialEq, sqlx::Type)] #[sqlx(transparent)] pub struct StoredHash(String); impl StoredHash { - pub fn verify(&self, password: &Password) -> Result<bool, password_hash::Error> { + pub fn verify(&self, candidate: &Password) -> Result<bool, password_hash::Error> { let hash = PasswordHash::new(&self.0)?; + let candidate = candidate.as_bytes(); + let algorithm = Argon2::default(); - match Argon2::default().verify_password(password.as_bytes(), &hash) { + match algorithm.verify_password(candidate, &hash) { // Successful authentication, not an error Ok(()) => Ok(true), // Unsuccessful authentication, also not an error diff --git a/src/setup/app.rs b/src/setup/app.rs index 26eed7a..1210175 100644 --- a/src/setup/app.rs +++ b/src/setup/app.rs @@ -5,9 +5,10 @@ use crate::{ clock::DateTime, event::Broadcaster, name::Name, + password::Password, token::{Secret, repo::Provider as _}, user::{ - Password, User, + User, create::{self, Create}, }, }; diff --git a/src/setup/handlers/setup/mod.rs b/src/setup/handlers/setup/mod.rs index cbb3072..9e31282 100644 --- a/src/setup/handlers/setup/mod.rs +++ b/src/setup/handlers/setup/mod.rs @@ -5,13 +5,8 @@ use axum::{ }; use crate::{ - app::App, - clock::RequestedAt, - error::Internal, - name::Name, - setup::app, - token::extract::IdentityCookie, - user::{Password, User}, + app::App, clock::RequestedAt, error::Internal, name::Name, password::Password, setup::app, + token::extract::IdentityCookie, user::User, }; #[cfg(test)] diff --git a/src/test/fixtures/cookie.rs b/src/test/fixtures/cookie.rs index bba53b8..41779db 100644 --- a/src/test/fixtures/cookie.rs +++ b/src/test/fixtures/cookie.rs @@ -4,8 +4,8 @@ use crate::{ app::App, clock::RequestedAt, name::Name, + password::Password, token::{Secret, extract::IdentityCookie}, - user::Password, }; pub fn not_logged_in() -> IdentityCookie { diff --git a/src/test/fixtures/identity.rs b/src/test/fixtures/identity.rs index cb325d8..84e1cf6 100644 --- a/src/test/fixtures/identity.rs +++ b/src/test/fixtures/identity.rs @@ -2,12 +2,12 @@ use crate::{ app::App, clock::RequestedAt, name::Name, + password::Password, test::fixtures, token::{ self, extract::{Identity, IdentityCookie}, }, - user::Password, }; pub async fn create(app: &App, created_at: &RequestedAt) -> Identity { diff --git a/src/test/fixtures/user.rs b/src/test/fixtures/user.rs index 6448f64..086f866 100644 --- a/src/test/fixtures/user.rs +++ b/src/test/fixtures/user.rs @@ -5,7 +5,8 @@ use crate::{ app::App, clock::RequestedAt, name::Name, - user::{self, Password, User}, + password::Password, + user::{self, User}, }; pub async fn create_with_password(app: &App, created_at: &RequestedAt) -> (Name, Password) { diff --git a/src/token/app.rs b/src/token/app.rs index 46b2d73..49f9a45 100644 --- a/src/token/app.rs +++ b/src/token/app.rs @@ -13,7 +13,8 @@ use crate::{ clock::DateTime, db::NotFound as _, name::{self, Name}, - user::{Password, User, repo::Provider as _}, + password::Password, + user::{User, repo::Provider as _}, }; pub struct Tokens<'a> { diff --git a/src/token/repo/auth.rs b/src/token/repo/auth.rs index 5976d4a..600855d 100644 --- a/src/token/repo/auth.rs +++ b/src/token/repo/auth.rs @@ -5,7 +5,8 @@ use crate::{ db::NotFound, event::{Instant, Sequence}, name::{self, Name}, - user::{self, History, User, password::StoredHash}, + password::StoredHash, + user::{self, History, User}, }; pub trait Provider { diff --git a/src/user/app.rs b/src/user/app.rs index 2ab356f..5f58981 100644 --- a/src/user/app.rs +++ b/src/user/app.rs @@ -1,10 +1,10 @@ use sqlx::sqlite::SqlitePool; use super::{ - Password, User, + User, create::{self, Create}, }; -use crate::{clock::DateTime, event::Broadcaster, name::Name}; +use crate::{clock::DateTime, event::Broadcaster, name::Name, password::Password}; pub struct Users<'a> { db: &'a SqlitePool, diff --git a/src/user/create.rs b/src/user/create.rs index da94685..0e7a118 100644 --- a/src/user/create.rs +++ b/src/user/create.rs @@ -1,10 +1,11 @@ use sqlx::{Transaction, sqlite::Sqlite}; -use super::{History, Password, password::StoredHash, repo::Provider as _, validate}; +use super::{History, repo::Provider as _, validate}; use crate::{ clock::DateTime, event::{Broadcaster, Event, repo::Provider as _}, name::Name, + password::{Password, StoredHash}, }; #[must_use = "dropping a user creation attempt is likely a mistake"] diff --git a/src/user/handlers/login/mod.rs b/src/user/handlers/login/mod.rs index e80377e..da88885 100644 --- a/src/user/handlers/login/mod.rs +++ b/src/user/handlers/login/mod.rs @@ -9,8 +9,9 @@ use crate::{ clock::RequestedAt, error::Internal, name::Name, + password::Password, token::{app, extract::IdentityCookie}, - user::{Password, User}, + user::User, }; #[cfg(test)] diff --git a/src/user/handlers/password/mod.rs b/src/user/handlers/password/mod.rs index 9158325..c327e87 100644 --- a/src/user/handlers/password/mod.rs +++ b/src/user/handlers/password/mod.rs @@ -8,11 +8,12 @@ use crate::{ app::App, clock::RequestedAt, error::Internal, + password::Password, token::{ app, extract::{Identity, IdentityCookie}, }, - user::{Password, User}, + user::User, }; #[cfg(test)] diff --git a/src/user/mod.rs b/src/user/mod.rs index 44e1633..60ec209 100644 --- a/src/user/mod.rs +++ b/src/user/mod.rs @@ -5,9 +5,8 @@ pub mod event; pub mod handlers; mod history; mod id; -pub mod password; pub mod repo; mod snapshot; mod validate; -pub use self::{event::Event, history::History, id::Id, password::Password, snapshot::User}; +pub use self::{event::Event, history::History, id::Id, snapshot::User}; diff --git a/src/user/repo.rs b/src/user/repo.rs index 83a1471..0f67e9a 100644 --- a/src/user/repo.rs +++ b/src/user/repo.rs @@ -5,7 +5,8 @@ use crate::{ clock::DateTime, event::{Instant, Sequence}, name::{self, Name}, - user::{History, Id, User, password::StoredHash}, + password::StoredHash, + user::{History, Id, User}, }; pub trait Provider { |
