From 8dac55ab0ecde5eaeed12c45ad05fa993ab3a4d2 Mon Sep 17 00:00:00 2001 From: CounterFire2023 <136581895+CounterFire2023@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:37:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9wasm=E4=B8=8B=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E6=96=B9=E6=B3=95=E7=9A=84=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib.rs | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 95c73c9..2ec589f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -47,7 +47,10 @@ macro_rules! console_log { } #[wasm_bindgen] -pub fn get_public_key(msg_key: String, master_key: String, second_key: String) -> String { +pub fn get_public_key(id: String, openid: String, master_key: String, salt: String, pass: String) -> String { + let second_key = wallet_impl::generate_client_key(&pass, &openid, &salt); + let msg_str = format!("{}{}{}", id, openid, salt); + let msg_key = keccak256_hash(msg_str); let rwallet = Wallet { msg_key, master_key, @@ -57,7 +60,10 @@ pub fn get_public_key(msg_key: String, master_key: String, second_key: String) - } #[wasm_bindgen] -pub fn generate_sec_key(msg_key: String, master_key: String, second_key: String) -> String { +pub fn generate_sec_key(id: String, openid: String, master_key: String, salt: String, pass: String) -> String { + let second_key = wallet_impl::generate_client_key(&pass, &openid, &salt); + let msg_str = format!("{}{}{}", id, openid, salt); + let msg_key = keccak256_hash(msg_str); let rwallet = Wallet { msg_key, master_key, @@ -67,7 +73,10 @@ pub fn generate_sec_key(msg_key: String, master_key: String, second_key: String) } #[wasm_bindgen] -pub fn sign(msg_key: String, master_key: String, second_key: String, msg: String) -> String { +pub fn sign(id: String, openid: String, master_key: String, salt: String, pass: String, msg: String) -> String { + let second_key = wallet_impl::generate_client_key(&pass, &openid, &salt); + let msg_str = format!("{}{}{}", id, openid, salt); + let msg_key = keccak256_hash(msg_str); let rwallet = Wallet { msg_key, master_key, @@ -82,12 +91,10 @@ pub fn sign(msg_key: String, master_key: String, second_key: String, msg: String } #[wasm_bindgen] -pub fn sign_for_tran( - msg_key: String, - master_key: String, - second_key: String, - msg: String, -) -> String { +pub fn sign_for_tran(id: String, openid: String, master_key: String, salt: String, pass: String, msg: String) -> String { + let second_key = wallet_impl::generate_client_key(&pass, &openid, &salt); + let msg_str = format!("{}{}{}", id, openid, salt); + let msg_key = keccak256_hash(msg_str); let rwallet = Wallet { msg_key, master_key, @@ -103,11 +110,6 @@ pub fn sign_for_tran( result } -#[wasm_bindgen] -pub fn wgenerate_client_key(password: String, openid: String, salt: String) -> String { - wallet_impl::generate_client_key(&password, &openid, &salt) -} - #[wasm_bindgen] pub fn keccak256_hash(content: String) -> String { let msg_hex = utils::crypto_utils::keccak256_hash(&content); @@ -115,8 +117,10 @@ pub fn keccak256_hash(content: String) -> String { } #[wasm_bindgen] -pub fn wget_address(msg_key: String, master_key: String, second_key: String) -> String { - // console_log!("wget_address: {}, {}!", msg_key, master_key); +pub fn wget_address(id: String, openid: String, master_key: String, salt: String, pass: String) -> String { + let second_key = wallet_impl::generate_client_key(&pass, &openid, &salt); + let msg_str = format!("{}{}{}", id, openid, salt); + let msg_key = keccak256_hash(msg_str); let rwallet = Wallet { msg_key, master_key, @@ -129,7 +133,10 @@ pub fn wget_address(msg_key: String, master_key: String, second_key: String) -> } #[wasm_bindgen] -pub fn wencrypt(msg_key: String, master_key: String, second_key: String, msg: String) -> String { +pub fn wencrypt(id: String, openid: String, master_key: String, salt: String, pass: String,msg: String) -> String { + let second_key = wallet_impl::generate_client_key(&pass, &openid, &salt); + let msg_str = format!("{}{}{}", id, openid, salt); + let msg_key = keccak256_hash(msg_str); let rwallet = Wallet { msg_key, master_key, @@ -143,7 +150,10 @@ pub fn wencrypt(msg_key: String, master_key: String, second_key: String, msg: St r } #[wasm_bindgen] -pub fn wdecrypt(msg_key: String, master_key: String, second_key: String, msg: String) -> String { +pub fn wdecrypt(id: String, openid: String, master_key: String, salt: String, pass: String, msg: String) -> String { + let second_key = wallet_impl::generate_client_key(&pass, &openid, &salt); + let msg_str = format!("{}{}{}", id, openid, salt); + let msg_key = keccak256_hash(msg_str); let rwallet = Wallet { msg_key, master_key,