implement most of client app

This commit is contained in:
2025-12-18 19:11:08 -06:00
parent 88656fefac
commit 05ba550a18
11 changed files with 120 additions and 68 deletions

View File

@@ -3,6 +3,7 @@ use crate::shared::email::Email;
use crate::shared::opaque::UserSecretKey;
use anyhow::Result;
use async_trait::async_trait;
use nkode_rs::nkode_core::keypad::Keypad;
use nkode_rs::nkode_core::policy::{NKodePolicy, DEFAULT_POLICY};
use crate::client::opaque::{OpaqueAuthData, OpaqueAuth, ServerConnectionLogin, ServerConnectionRegister};
use crate::shared::signed_session_data::SignedSessionData;
@@ -48,8 +49,14 @@ where
Ok(KeyLoggedInSession(session))
}
async fn login_code(&self, email: &Email, passcode: &[u64]) -> Result<CodeLoggedInSession, String> {
async fn login_code(&self, email: &Email, passcode: &[u64], key_login_session: &KeyLoggedInSession, keypad: Keypad) -> Result<CodeLoggedInSession, String> {
let auth_data = OpaqueAuthData::from_code(email.as_str(), passcode);
let signed_session = SignedSessionData::new(
key_login_session.0.session_id,
keypad,
&key_login_session.0.session_key
).map_err(|e| format!("error: {e:?}"))?;
self.user_api.update_keypad(signed_session).await?;
let session = self.opaque_code_login.login(&auth_data).await.map_err(|e| format!("error: {}", e))?;
Ok(CodeLoggedInSession(session))
}