From 467f4feaddfce84e7d9221576af583da40947535 Mon Sep 17 00:00:00 2001 From: Donovan Date: Wed, 17 Dec 2025 08:37:25 -0600 Subject: [PATCH] refactor files --- src/app/mod.rs | 2 -- src/{app/client.rs => client/app.rs} | 8 ++++---- src/client/mod.rs | 2 ++ src/{opaque/client.rs => client/opaque.rs} | 3 +-- src/lib.rs | 7 +++---- src/opaque/mod.rs | 2 -- src/{app/server.rs => server/app.rs} | 0 src/server/mod.rs | 3 +++ src/{opaque/server.rs => server/opaque.rs} | 20 +++++++++---------- src/{ => server}/repository/mod.rs | 0 .../opaque/in_memory/in_memory_auth_repo.rs | 4 ++-- .../in_memory/in_memory_auth_session.rs | 6 +++--- .../opaque/in_memory/in_memory_transport.rs | 10 +++++----- .../repository/opaque/in_memory/mod.rs | 0 src/{ => server}/repository/opaque/mod.rs | 0 src/{ => server}/repository/opaque/repos.rs | 4 ++-- src/shared/mod.rs | 1 + src/{ => shared}/models/app.rs | 4 ++-- src/{ => shared}/models/email.rs | 0 src/{ => shared}/models/mod.rs | 0 src/{ => shared}/models/opaque.rs | 0 tests/in_memory_test.rs | 6 +++--- 22 files changed, 41 insertions(+), 41 deletions(-) delete mode 100644 src/app/mod.rs rename src/{app/client.rs => client/app.rs} (96%) create mode 100644 src/client/mod.rs rename src/{opaque/client.rs => client/opaque.rs} (96%) delete mode 100644 src/opaque/mod.rs rename src/{app/server.rs => server/app.rs} (100%) create mode 100644 src/server/mod.rs rename src/{opaque/server.rs => server/opaque.rs} (81%) rename src/{ => server}/repository/mod.rs (100%) rename src/{ => server}/repository/opaque/in_memory/in_memory_auth_repo.rs (94%) rename src/{ => server}/repository/opaque/in_memory/in_memory_auth_session.rs (94%) rename src/{ => server}/repository/opaque/in_memory/in_memory_transport.rs (91%) rename src/{ => server}/repository/opaque/in_memory/mod.rs (100%) rename src/{ => server}/repository/opaque/mod.rs (100%) rename src/{ => server}/repository/opaque/repos.rs (91%) create mode 100644 src/shared/mod.rs rename src/{ => shared}/models/app.rs (95%) rename src/{ => shared}/models/email.rs (100%) rename src/{ => shared}/models/mod.rs (100%) rename src/{ => shared}/models/opaque.rs (100%) diff --git a/src/app/mod.rs b/src/app/mod.rs deleted file mode 100644 index 0b72313..0000000 --- a/src/app/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -mod client; -mod server; \ No newline at end of file diff --git a/src/app/client.rs b/src/client/app.rs similarity index 96% rename from src/app/client.rs rename to src/client/app.rs index df89cfb..1971c32 100644 --- a/src/app/client.rs +++ b/src/client/app.rs @@ -1,15 +1,15 @@ use std::marker::PhantomData; use nkode_rs::nkode_core::keypad::Keypad; -use crate::models::app::{OpaqueAPI, AuthAPI, CodeLoginData, CodeLoginSession, Icon, IconID, KeyLoginSession, ICON_ID_SIZE, LoginSession}; -use crate::models::email::Email; -use crate::models::opaque::{OpaqueLoginSession, UserSecretKey}; +use crate::shared::models::app::{OpaqueAPI, AuthAPI, CodeLoginData, CodeLoginSession, Icon, IconID, KeyLoginSession, ICON_ID_SIZE, LoginSession}; +use crate::shared::models::email::Email; +use crate::shared::models::opaque::{OpaqueLoginSession, UserSecretKey}; use anyhow::Result; use nkode_rs::nkode_core::nkode_cipher::NKodeCipher; use nkode_rs::from_bytes::FromBytes; use nkode_rs::nkode_core::chacha20prng::Nonce; use async_trait::async_trait; use nkode_rs::nkode_core::policy::{NKodePolicy, DEFAULT_POLICY}; -use crate::opaque::client::{AuthenticationData, OpaqueAuthLogin, OpaqueAuthRegister, ServerConnectionLogin, ServerConnectionRegister}; +use crate::client::opaque::{AuthenticationData, OpaqueAuthLogin, OpaqueAuthRegister, ServerConnectionLogin, ServerConnectionRegister}; pub struct Login; pub struct Register; diff --git a/src/client/mod.rs b/src/client/mod.rs new file mode 100644 index 0000000..08c9146 --- /dev/null +++ b/src/client/mod.rs @@ -0,0 +1,2 @@ +mod app; +pub mod opaque; \ No newline at end of file diff --git a/src/opaque/client.rs b/src/client/opaque.rs similarity index 96% rename from src/opaque/client.rs rename to src/client/opaque.rs index 2b406ab..a144dee 100644 --- a/src/opaque/client.rs +++ b/src/client/opaque.rs @@ -9,8 +9,7 @@ use opaque_ke::{ CredentialFinalization, CredentialRequest, RegistrationRequest, }; -use crate::models::app::KeyLoginSession; -use crate::models::opaque::{OpaqueRegisterSession, OpaqueLoginSession, NKodeCipherSuite, PasswordFile, OpaqueSessionKey}; +use crate::shared::models::opaque::{OpaqueRegisterSession, OpaqueLoginSession, NKodeCipherSuite, PasswordFile, OpaqueSessionKey}; #[derive(Debug)] pub enum ClientAuthError { diff --git a/src/lib.rs b/src/lib.rs index c17262b..c178f8f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,3 @@ -pub mod opaque; -pub mod app; -pub mod repository; -pub mod models; \ No newline at end of file +pub mod client; +pub mod server; +pub mod shared; \ No newline at end of file diff --git a/src/opaque/mod.rs b/src/opaque/mod.rs deleted file mode 100644 index ef578be..0000000 --- a/src/opaque/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod server; -pub mod client; \ No newline at end of file diff --git a/src/app/server.rs b/src/server/app.rs similarity index 100% rename from src/app/server.rs rename to src/server/app.rs diff --git a/src/server/mod.rs b/src/server/mod.rs new file mode 100644 index 0000000..ecbe7bb --- /dev/null +++ b/src/server/mod.rs @@ -0,0 +1,3 @@ +pub mod app; +pub mod repository; +pub mod opaque; \ No newline at end of file diff --git a/src/opaque/server.rs b/src/server/opaque.rs similarity index 81% rename from src/opaque/server.rs rename to src/server/opaque.rs index 6f0d4a7..27d7b83 100644 --- a/src/opaque/server.rs +++ b/src/server/opaque.rs @@ -5,8 +5,8 @@ use opaque_ke::{ ServerRegistration, }; use uuid::Uuid; -use crate::models::opaque::{OpaqueLoginSession, NKodeCipherSuite, NKodeServerSetup, OpaqueSessionKey, PasswordFile, OpaqueRegisterSession}; -use crate::repository::opaque::repos::{OpaqueDatabaseRepo, AuthRepoError, OpaqueSessionRepo}; +use crate::shared::models::opaque::{OpaqueLoginSession, NKodeCipherSuite, NKodeServerSetup, OpaqueSessionKey, PasswordFile, OpaqueRegisterSession}; +use crate::server::repository::opaque::repos::{OpaqueDatabaseRepo, AuthRepoError, OpaqueSessionRepo}; pub struct RegCache { pub session_id: Uuid, @@ -21,8 +21,8 @@ pub struct LoginCache { pub trait CredKind { fn has(repo: &R, id: &[u8]) -> bool; - fn get_pf(repo: &R, id: &[u8]) -> Result; - fn put_pf(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError>; + fn get_password_file(repo: &R, id: &[u8]) -> Result; + fn set_password_file(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError>; fn prereq_for_register(_repo: &R, _id: &[u8]) -> Result<(), AuthRepoError> { Ok(()) } @@ -37,10 +37,10 @@ impl CredKind for Key { fn has(repo: &R, id: &[u8]) -> bool { repo.has_key(id) } - fn get_pf(repo: &R, id: &[u8]) -> Result { + fn get_password_file(repo: &R, id: &[u8]) -> Result { repo.get_key_passcode_file(id) } - fn put_pf(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError> { + fn set_password_file(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError> { repo.new_key(id, pf) } } @@ -49,10 +49,10 @@ impl CredKind for Code { fn has(repo: &R, id: &[u8]) -> bool { repo.has_code(id) } - fn get_pf(repo: &R, id: &[u8]) -> Result { + fn get_password_file(repo: &R, id: &[u8]) -> Result { repo.get_code_passcode_file(id) } - fn put_pf(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError> { + fn set_password_file(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError> { repo.new_code(id, pf) } fn prereq_for_register(repo: &R, id: &[u8]) -> Result<(), AuthRepoError> { @@ -104,7 +104,7 @@ impl OpaqueAuth { .map_err(|e| format!("get reg session: {e}"))?; K::prereq_for_register(&self.user_repo, sess.identifier.as_slice()) .map_err(|e| format!("registration prereq failed: {e:?}"))?; - K::put_pf(&mut self.user_repo, sess.identifier.as_slice(), password_file) + K::set_password_file(&mut self.user_repo, sess.identifier.as_slice(), password_file) .map_err(|e| format!("repo write: {e:?}"))?; self.session .clear_reg_session(session_id) @@ -116,7 +116,7 @@ impl OpaqueAuth { identifier: &[u8], request: CredentialRequest, ) -> Result { - let password_file = K::get_pf(&self.user_repo, identifier) + let password_file = K::get_password_file(&self.user_repo, identifier) .map_err(|e| format!("repo read: {e:?}"))?; let password_file = diff --git a/src/repository/mod.rs b/src/server/repository/mod.rs similarity index 100% rename from src/repository/mod.rs rename to src/server/repository/mod.rs diff --git a/src/repository/opaque/in_memory/in_memory_auth_repo.rs b/src/server/repository/opaque/in_memory/in_memory_auth_repo.rs similarity index 94% rename from src/repository/opaque/in_memory/in_memory_auth_repo.rs rename to src/server/repository/opaque/in_memory/in_memory_auth_repo.rs index 94a834a..4d7266d 100644 --- a/src/repository/opaque/in_memory/in_memory_auth_repo.rs +++ b/src/server/repository/opaque/in_memory/in_memory_auth_repo.rs @@ -1,6 +1,6 @@ use std::collections::HashMap; -use crate::models::opaque::PasswordFile; -use crate::repository::opaque::repos::{OpaqueDatabaseRepo, AuthRepoError}; +use crate::shared::models::opaque::PasswordFile; +use crate::server::repository::opaque::repos::{OpaqueDatabaseRepo, AuthRepoError}; #[derive(Debug, Default)] pub struct InMemoryAuthRepo { diff --git a/src/repository/opaque/in_memory/in_memory_auth_session.rs b/src/server/repository/opaque/in_memory/in_memory_auth_session.rs similarity index 94% rename from src/repository/opaque/in_memory/in_memory_auth_session.rs rename to src/server/repository/opaque/in_memory/in_memory_auth_session.rs index 694152b..fa9db67 100644 --- a/src/repository/opaque/in_memory/in_memory_auth_session.rs +++ b/src/server/repository/opaque/in_memory/in_memory_auth_session.rs @@ -1,9 +1,9 @@ use std::collections::HashMap; -use crate::opaque::server::{LoginCache, RegCache}; +use crate::server::opaque::{LoginCache, RegCache}; use opaque_ke::ServerLogin; use uuid::Uuid; -use crate::models::opaque::NKodeCipherSuite; -use crate::repository::opaque::repos::OpaqueSessionRepo; +use crate::shared::models::opaque::NKodeCipherSuite; +use crate::server::repository::opaque::repos::OpaqueSessionRepo; #[derive(Default)] pub struct InMemoryAuthSession { diff --git a/src/repository/opaque/in_memory/in_memory_transport.rs b/src/server/repository/opaque/in_memory/in_memory_transport.rs similarity index 91% rename from src/repository/opaque/in_memory/in_memory_transport.rs rename to src/server/repository/opaque/in_memory/in_memory_transport.rs index b171525..2245e70 100644 --- a/src/repository/opaque/in_memory/in_memory_transport.rs +++ b/src/server/repository/opaque/in_memory/in_memory_transport.rs @@ -4,11 +4,11 @@ use tokio::sync::Mutex; use std::sync::Arc; use uuid::Uuid; use opaque_ke::{CredentialFinalization, CredentialRequest, RegistrationRequest}; -use crate::models::opaque::{OpaqueLoginSession, NKodeCipherSuite, NKodeServerSetup, OpaqueSessionKey, PasswordFile, OpaqueRegisterSession}; -use crate::opaque::client::{ClientAuthError, ServerConnectionLogin, ServerConnectionRegister}; -use crate::opaque::server::{OpaqueAuth, CredKind, Key, Code}; -use crate::repository::opaque::in_memory::in_memory_auth_repo::InMemoryAuthRepo; -use crate::repository::opaque::in_memory::in_memory_auth_session::InMemoryAuthSession; +use crate::shared::models::opaque::{OpaqueLoginSession, NKodeCipherSuite, NKodeServerSetup, OpaqueSessionKey, PasswordFile, OpaqueRegisterSession}; +use crate::client::opaque::{ClientAuthError, ServerConnectionLogin, ServerConnectionRegister}; +use crate::server::opaque::{OpaqueAuth, CredKind, Key, Code}; +use crate::server::repository::opaque::in_memory::in_memory_auth_repo::InMemoryAuthRepo; +use crate::server::repository::opaque::in_memory::in_memory_auth_session::InMemoryAuthSession; #[derive(Clone)] pub struct InMemoryServer { diff --git a/src/repository/opaque/in_memory/mod.rs b/src/server/repository/opaque/in_memory/mod.rs similarity index 100% rename from src/repository/opaque/in_memory/mod.rs rename to src/server/repository/opaque/in_memory/mod.rs diff --git a/src/repository/opaque/mod.rs b/src/server/repository/opaque/mod.rs similarity index 100% rename from src/repository/opaque/mod.rs rename to src/server/repository/opaque/mod.rs diff --git a/src/repository/opaque/repos.rs b/src/server/repository/opaque/repos.rs similarity index 91% rename from src/repository/opaque/repos.rs rename to src/server/repository/opaque/repos.rs index 866d456..ac1910c 100644 --- a/src/repository/opaque/repos.rs +++ b/src/server/repository/opaque/repos.rs @@ -1,7 +1,7 @@ use uuid::Uuid; use opaque_ke::ServerLogin; -use crate::models::opaque::{NKodeCipherSuite, PasswordFile}; -use crate::opaque::server::{LoginCache, RegCache}; +use crate::shared::models::opaque::{NKodeCipherSuite, PasswordFile}; +use crate::server::opaque::{LoginCache, RegCache}; #[derive(Debug)] pub enum AuthRepoError { diff --git a/src/shared/mod.rs b/src/shared/mod.rs new file mode 100644 index 0000000..ff92946 --- /dev/null +++ b/src/shared/mod.rs @@ -0,0 +1 @@ +pub mod models; \ No newline at end of file diff --git a/src/models/app.rs b/src/shared/models/app.rs similarity index 95% rename from src/models/app.rs rename to src/shared/models/app.rs index 0eb2504..ee06c5f 100644 --- a/src/models/app.rs +++ b/src/shared/models/app.rs @@ -4,8 +4,8 @@ use serde::{Deserialize, Serialize}; use getset::Getters; use nkode_rs::from_bytes::FromBytes; use nkode_rs::nkode_core::policy::NKodePolicy; -use crate::models::email::Email; -use crate::models::opaque::{OpaqueSessionKey, UserSecretKey}; +use crate::shared::models::email::Email; +use crate::shared::models::opaque::{OpaqueSessionKey, UserSecretKey}; pub struct LoginSession { pub(crate) email: Email, pub(crate) session_key: OpaqueSessionKey, diff --git a/src/models/email.rs b/src/shared/models/email.rs similarity index 100% rename from src/models/email.rs rename to src/shared/models/email.rs diff --git a/src/models/mod.rs b/src/shared/models/mod.rs similarity index 100% rename from src/models/mod.rs rename to src/shared/models/mod.rs diff --git a/src/models/opaque.rs b/src/shared/models/opaque.rs similarity index 100% rename from src/models/opaque.rs rename to src/shared/models/opaque.rs diff --git a/tests/in_memory_test.rs b/tests/in_memory_test.rs index 8c47952..d54048f 100644 --- a/tests/in_memory_test.rs +++ b/tests/in_memory_test.rs @@ -1,7 +1,7 @@ use opaque_ke::rand::rngs::OsRng; -use nkode_protocol::opaque::client::{AuthenticationData, ClientAuthError, OpaqueAuthLogin, OpaqueAuthRegister}; -use nkode_protocol::models::opaque::NKodeServerSetup; -use nkode_protocol::repository::opaque::in_memory::in_memory_transport::{InMemoryCodeServer, InMemoryKeyServer}; +use nkode_protocol::client::opaque::{AuthenticationData, ClientAuthError, OpaqueAuthLogin, OpaqueAuthRegister}; +use nkode_protocol::shared::models::opaque::NKodeServerSetup; +use nkode_protocol::server::repository::opaque::in_memory::in_memory_transport::{InMemoryCodeServer, InMemoryKeyServer}; #[tokio::test] async fn opaque_key_registration_and_login_roundtrip() {