refactor files

This commit is contained in:
2025-12-17 08:37:25 -06:00
parent 16c8f2d6aa
commit 467f4feadd
22 changed files with 41 additions and 41 deletions

View File

@@ -1,2 +0,0 @@
mod client;
mod server;

View File

@@ -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;

2
src/client/mod.rs Normal file
View File

@@ -0,0 +1,2 @@
mod app;
pub mod opaque;

View File

@@ -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 {

View File

@@ -1,4 +1,3 @@
pub mod opaque;
pub mod app;
pub mod repository;
pub mod models;
pub mod client;
pub mod server;
pub mod shared;

View File

@@ -1,2 +0,0 @@
pub mod server;
pub mod client;

3
src/server/mod.rs Normal file
View File

@@ -0,0 +1,3 @@
pub mod app;
pub mod repository;
pub mod opaque;

View File

@@ -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<R: OpaqueDatabaseRepo>(repo: &R, id: &[u8]) -> bool;
fn get_pf<R: OpaqueDatabaseRepo>(repo: &R, id: &[u8]) -> Result<PasswordFile, AuthRepoError>;
fn put_pf<R: OpaqueDatabaseRepo>(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError>;
fn get_password_file<R: OpaqueDatabaseRepo>(repo: &R, id: &[u8]) -> Result<PasswordFile, AuthRepoError>;
fn set_password_file<R: OpaqueDatabaseRepo>(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError>;
fn prereq_for_register<R: OpaqueDatabaseRepo>(_repo: &R, _id: &[u8]) -> Result<(), AuthRepoError> {
Ok(())
}
@@ -37,10 +37,10 @@ impl CredKind for Key {
fn has<R: OpaqueDatabaseRepo>(repo: &R, id: &[u8]) -> bool {
repo.has_key(id)
}
fn get_pf<R: OpaqueDatabaseRepo>(repo: &R, id: &[u8]) -> Result<PasswordFile, AuthRepoError> {
fn get_password_file<R: OpaqueDatabaseRepo>(repo: &R, id: &[u8]) -> Result<PasswordFile, AuthRepoError> {
repo.get_key_passcode_file(id)
}
fn put_pf<R: OpaqueDatabaseRepo>(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError> {
fn set_password_file<R: OpaqueDatabaseRepo>(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError> {
repo.new_key(id, pf)
}
}
@@ -49,10 +49,10 @@ impl CredKind for Code {
fn has<R: OpaqueDatabaseRepo>(repo: &R, id: &[u8]) -> bool {
repo.has_code(id)
}
fn get_pf<R: OpaqueDatabaseRepo>(repo: &R, id: &[u8]) -> Result<PasswordFile, AuthRepoError> {
fn get_password_file<R: OpaqueDatabaseRepo>(repo: &R, id: &[u8]) -> Result<PasswordFile, AuthRepoError> {
repo.get_code_passcode_file(id)
}
fn put_pf<R: OpaqueDatabaseRepo>(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError> {
fn set_password_file<R: OpaqueDatabaseRepo>(repo: &mut R, id: &[u8], pf: PasswordFile) -> Result<(), AuthRepoError> {
repo.new_code(id, pf)
}
fn prereq_for_register<R: OpaqueDatabaseRepo>(repo: &R, id: &[u8]) -> Result<(), AuthRepoError> {
@@ -104,7 +104,7 @@ impl<R: OpaqueDatabaseRepo, S: OpaqueSessionRepo> OpaqueAuth<R, S> {
.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<R: OpaqueDatabaseRepo, S: OpaqueSessionRepo> OpaqueAuth<R, S> {
identifier: &[u8],
request: CredentialRequest<NKodeCipherSuite>,
) -> Result<OpaqueLoginSession, String> {
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 =

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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<K: CredKind> {

View File

@@ -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 {

1
src/shared/mod.rs Normal file
View File

@@ -0,0 +1 @@
pub mod models;

View File

@@ -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,