refactor files
This commit is contained in:
@@ -1,2 +0,0 @@
|
||||
mod client;
|
||||
mod server;
|
||||
@@ -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
2
src/client/mod.rs
Normal file
@@ -0,0 +1,2 @@
|
||||
mod app;
|
||||
pub mod opaque;
|
||||
@@ -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 {
|
||||
@@ -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;
|
||||
@@ -1,2 +0,0 @@
|
||||
pub mod server;
|
||||
pub mod client;
|
||||
3
src/server/mod.rs
Normal file
3
src/server/mod.rs
Normal file
@@ -0,0 +1,3 @@
|
||||
pub mod app;
|
||||
pub mod repository;
|
||||
pub mod opaque;
|
||||
@@ -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 =
|
||||
@@ -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 {
|
||||
@@ -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 {
|
||||
@@ -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> {
|
||||
@@ -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
1
src/shared/mod.rs
Normal file
@@ -0,0 +1 @@
|
||||
pub mod models;
|
||||
@@ -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,
|
||||
Reference in New Issue
Block a user