summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/invite/app.rs3
-rw-r--r--src/invite/handlers/accept/mod.rs3
-rw-r--r--src/lib.rs1
-rw-r--r--src/password.rs (renamed from src/user/password.rs)8
-rw-r--r--src/setup/app.rs3
-rw-r--r--src/setup/handlers/setup/mod.rs9
-rw-r--r--src/test/fixtures/cookie.rs2
-rw-r--r--src/test/fixtures/identity.rs2
-rw-r--r--src/test/fixtures/user.rs3
-rw-r--r--src/token/app.rs3
-rw-r--r--src/token/repo/auth.rs3
-rw-r--r--src/user/app.rs4
-rw-r--r--src/user/create.rs3
-rw-r--r--src/user/handlers/login/mod.rs3
-rw-r--r--src/user/handlers/password/mod.rs3
-rw-r--r--src/user/mod.rs3
-rw-r--r--src/user/repo.rs3
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)]
diff --git a/src/lib.rs b/src/lib.rs
index 48572d3..2d385cc 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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 {