From 40267ea224b8b969f264b08cd1f5ede39c12833d Mon Sep 17 00:00:00 2001 From: Sosthene00 <674694@protonmail.ch> Date: Mon, 25 Mar 2024 11:13:36 +0100 Subject: [PATCH] target --- crates/sp_client/src/api.rs | 36 ++++++++++------------------------ crates/sp_client/src/crypto.rs | 9 +++++++++ 2 files changed, 19 insertions(+), 26 deletions(-) create mode 100644 crates/sp_client/src/crypto.rs diff --git a/crates/sp_client/src/api.rs b/crates/sp_client/src/api.rs index 8f14e6f..5674539 100644 --- a/crates/sp_client/src/api.rs +++ b/crates/sp_client/src/api.rs @@ -2,8 +2,8 @@ use rand::Rng; use anyhow::Error as AnyhowError; use serde_json::Error as SerdeJsonError; -use sp_backend::silentpayments::Error as SpError; use sp_backend::bitcoin::secp256k1::SecretKey; +use sp_backend::silentpayments::Error as SpError; use serde::{Deserialize, Serialize}; use sp_backend::silentpayments::sending::SilentPaymentAddress; @@ -59,9 +59,9 @@ impl Into for ApiError { #[derive(Tsify, Serialize, Deserialize)] #[tsify(into_wasm_abi)] #[allow(non_camel_case_types)] -pub struct generate_sp_wallet_return { - pub sp_client_json: String, - pub sp_outputs_json: String, +pub struct generate_create_user_return { + pub user: User, + pub output_list: OutputList } #[wasm_bindgen] @@ -69,7 +69,6 @@ pub fn setup() { wasm_logger::init(wasm_logger::Config::default()); } -#[wasm_bindgen] pub fn generate_sp_wallet( label: Option, birthday: u32, @@ -117,32 +116,17 @@ pub fn get_receiving_address(sp_client: String) -> String { #[wasm_bindgen] pub fn create_user( - recover_wallet: String, - revoke_wallet: String, password: JsString, image_to_recover: &[u8], image_to_revoke: &[u8], + label: Option, + birthday: u32, ) -> ApiResult { - let recover_sp_client: SpClient = serde_json::from_str(&recover_wallet)?; - let revoke_sp_client: SpClient = serde_json::from_str(&revoke_wallet)?; - let recover_spend_key: SecretKey = match recover_sp_client.get_spend_key() { - SpendKey::Secret(sk) => sk, - SpendKey::Public(_) => { - return Err(ApiError { - message: "Can't create user from a watch-only sp_client".to_owned(), - }) - } - }; - let revoke_spend_key: SecretKey = match revoke_sp_client.get_spend_key() { - SpendKey::Secret(sk) => sk, - SpendKey::Public(_) => { - return Err(ApiError { - message: "Can't create user from a watch-only sp_client".to_owned(), - }) - } - }; - let revoke_scan_key = revoke_sp_client.get_scan_key(); + // todo: struct with sp_client{revoke, recover, main} + let sp_client_recover = generate_sp_wallet(label, birthday, true)?; + let sp_client_revoke = generate_sp_wallet(label, birthday, true)?; + let sp_client_main = generate_sp_wallet(label, birthday, false)?; let user = User::new( recover_spend_key, diff --git a/crates/sp_client/src/crypto.rs b/crates/sp_client/src/crypto.rs new file mode 100644 index 0000000..0372315 --- /dev/null +++ b/crates/sp_client/src/crypto.rs @@ -0,0 +1,9 @@ +use aes_gcm; + +pub enum KeyType { + Aes256GcmIv96BitKey([u8;32]) +} + +pub struct EncryptionKey { + sk: KeyType +}