From fd57699e6af88dbaa0e2316ad115712afe154a71 Mon Sep 17 00:00:00 2001 From: Santos Rosati Date: Sat, 15 Jun 2024 18:12:22 -0300 Subject: [PATCH] fix: dependencies + auto fill works better --- api/Cargo.lock | 4 +- cli/Cargo.lock | 4 +- common/Cargo.lock | 4 +- common/Cargo.toml | 2 +- common/src/crypto/mod.rs | 3 +- common/src/crypto/symmetric.rs | 79 -------------------------- extension/Cargo.lock | 64 ++++++++++++--------- extension/background-script/Cargo.toml | 10 ++-- extension/foreground-script/index.js | 11 +++- extension/messages/Cargo.toml | 2 +- 10 files changed, 60 insertions(+), 123 deletions(-) delete mode 100644 common/src/crypto/symmetric.rs diff --git a/api/Cargo.lock b/api/Cargo.lock index 60fbf33..03267b6 100644 --- a/api/Cargo.lock +++ b/api/Cargo.lock @@ -1147,9 +1147,9 @@ checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "js-sys" -version = "0.3.63" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] diff --git a/cli/Cargo.lock b/cli/Cargo.lock index f5787d2..a743542 100644 --- a/cli/Cargo.lock +++ b/cli/Cargo.lock @@ -1021,9 +1021,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "js-sys" -version = "0.3.63" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] diff --git a/common/Cargo.lock b/common/Cargo.lock index ddda154..e08679e 100644 --- a/common/Cargo.lock +++ b/common/Cargo.lock @@ -741,9 +741,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] diff --git a/common/Cargo.toml b/common/Cargo.toml index e20b66a..158d2b9 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -21,7 +21,7 @@ rand = "0.8.5" anyhow = "1.0.71" reqwest = { version = "0.12.4", features = ["json"] } wasm-bindgen = "0.2.92" -js-sys = "0.3.60" +js-sys = "0.3.69" rsa = { version = "0.9.6", features = ["pem"] } pkcs8 = { version = "0.10.2", features = ["encryption", "pem"] } rand_chacha = { version = "0.3.1" } diff --git a/common/src/crypto/mod.rs b/common/src/crypto/mod.rs index 87dda89..923566a 100644 --- a/common/src/crypto/mod.rs +++ b/common/src/crypto/mod.rs @@ -1,3 +1,2 @@ pub mod asymmetric; -pub mod common; -pub mod symmetric; +pub mod common; \ No newline at end of file diff --git a/common/src/crypto/symmetric.rs b/common/src/crypto/symmetric.rs deleted file mode 100644 index fe0eb4b..0000000 --- a/common/src/crypto/symmetric.rs +++ /dev/null @@ -1,79 +0,0 @@ -use aes::cipher::generic_array::GenericArray; -use aes::cipher::{BlockDecrypt, BlockEncrypt, BlockSizeUser}; -use aes::Aes256; -use anyhow::format_err; -use argon2::{self, verify_raw, Config}; -use crypto_box::aead::KeyInit; - -use base64::{engine::general_purpose::URL_SAFE, Engine}; -use rand_core::{OsRng, RngCore}; - -pub fn verify_password(password: &str, hash: &str, salt: &str) -> anyhow::Result<()> { - let hash = URL_SAFE.decode(hash)?; - - let salt = URL_SAFE.decode(salt)?; - - let config = Config::default(); - let valid = verify_raw( - password.as_bytes(), - salt.as_slice(), - hash.as_slice(), - &config, - )?; - - if valid { - Ok(()) - } else { - Err(format_err!("Invalid password")) - } -} - -const SALT_BYTES: usize = 16; -pub fn generate_salt() -> anyhow::Result { - let mut salt: [u8; SALT_BYTES] = [0; SALT_BYTES]; - OsRng.fill_bytes(&mut salt); - Ok(URL_SAFE.encode(salt.as_slice())) -} - -pub fn encrypt_data(key: &str, data: &[u8]) -> anyhow::Result> { - let key = URL_SAFE.decode(key)?; - let aes = match Aes256::new_from_slice(key.as_slice()) { - Ok(aes) => aes, - Err(_) => return Err(format_err!("Invalid key")), - }; - - let block_size = Aes256::block_size(); - let data = data.to_vec(); - - let mut enc: Vec = Vec::new(); - - data.chunks_exact(block_size) - .for_each(|chunk| { - let mut chunk = *GenericArray::from_slice(chunk); - aes.encrypt_block(&mut chunk); - enc.append(&mut chunk.as_slice().to_vec()); - }); - - Ok(enc) -} - -pub fn decrypt_data(key: &str, enc: Vec) -> anyhow::Result> { - let key = URL_SAFE.decode(key)?; - let aes = match Aes256::new_from_slice(key.as_slice()) { - Ok(aes) => aes, - Err(_) => return Err(format_err!("Invalid key")), - }; - - let block_size = Aes256::block_size(); - - let mut dec: Vec = Vec::new(); - - enc.chunks_exact(block_size) - .for_each(|chunk| { - let mut chunk = *GenericArray::from_slice(chunk); - aes.decrypt_block(&mut chunk); - dec.append(&mut chunk.as_slice().to_vec()); - }); - - Ok(dec) -} diff --git a/extension/Cargo.lock b/extension/Cargo.lock index ab07842..6186289 100644 --- a/extension/Cargo.lock +++ b/extension/Cargo.lock @@ -79,9 +79,9 @@ name = "background-script" version = "0.1.0" dependencies = [ "anyhow", - "gloo-console 0.2.3", - "gloo-timers", - "gloo-utils 0.1.7", + "gloo-console 0.3.0", + "gloo-timers 0.3.0", + "gloo-utils 0.2.0", "hex", "js-sys", "messages", @@ -585,7 +585,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.66", ] [[package]] @@ -662,7 +662,7 @@ dependencies = [ "gloo-net", "gloo-render", "gloo-storage", - "gloo-timers", + "gloo-timers 0.2.6", "gloo-utils 0.1.7", "gloo-worker", ] @@ -792,6 +792,16 @@ name = "gloo-timers" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" dependencies = [ "futures-channel", "futures-core", @@ -1075,9 +1085,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -1285,7 +1295,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.66", ] [[package]] @@ -1370,7 +1380,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.66", ] [[package]] @@ -1507,9 +1517,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" dependencies = [ "unicode-ident", ] @@ -1533,9 +1543,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -1791,9 +1801,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.182" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb30a74471f5b7a1fa299f40b4bf1be93af61116df95465b2b5fc419331e430" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" dependencies = [ "serde_derive", ] @@ -1811,13 +1821,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.182" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f4c2c6ea4bc09b5c419012eafcdb0fcef1d9119d626c8f3a0708a5b92d38a70" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.66", ] [[package]] @@ -1934,9 +1944,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.28" +version = "2.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" dependencies = [ "proc-macro2", "quote", @@ -2000,7 +2010,7 @@ checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.66", ] [[package]] @@ -2116,7 +2126,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.66", ] [[package]] @@ -2230,15 +2240,15 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.66", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.37" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -2264,7 +2274,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.66", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2548,5 +2558,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.66", ] diff --git a/extension/background-script/Cargo.toml b/extension/background-script/Cargo.toml index 00f6778..63b38a0 100644 --- a/extension/background-script/Cargo.toml +++ b/extension/background-script/Cargo.toml @@ -8,15 +8,15 @@ publish = false crate-type = ["cdylib"] [dependencies] -gloo-console = "0.2.3" -gloo-timers = { version = "0.2.4", features = ["futures"] } -gloo-utils = "0.1.5" +gloo-console = "0.3.0" +gloo-timers = { version = "0.3.0", features = ["futures"] } +gloo-utils = "0.2.0" js-sys = "0.3.60" messages = "=0.1.0" serde = { version = "1.0.147", features = ["derive"] } thiserror = "1.0.37" -wasm-bindgen = "0.2.83" -wasm-bindgen-futures = "0.4.33" +wasm-bindgen = "0.2.92" +wasm-bindgen-futures = "0.4.42" web-extensions-sys = "0.4.1" passphrasex_common = { version = "0.2.0", path = "../../common" } hex = "0.4.3" diff --git a/extension/foreground-script/index.js b/extension/foreground-script/index.js index c870b78..78823de 100644 --- a/extension/foreground-script/index.js +++ b/extension/foreground-script/index.js @@ -33,11 +33,11 @@ function start() { const { username, password } = msg.payload.Credential; if (username_input) { - username_input.value = username; + typeValue(username_input, username); } if (password_input) { - password_input.value = password; + typeValue(password_input, password); } } }); @@ -95,6 +95,13 @@ function connect() { return chrome.runtime.connect(null, connect_info); } +function typeValue(input, value) { + input.focus(); + input.value = value; + input.dispatchEvent(new Event("input", { bubbles: true })); + input.dispatchEvent(new Event("change", { bubbles: true })); +} + function getCredential(port, site) { console.debug("Getting credential"); const payload = { diff --git a/extension/messages/Cargo.toml b/extension/messages/Cargo.toml index 34c6535..832d66e 100644 --- a/extension/messages/Cargo.toml +++ b/extension/messages/Cargo.toml @@ -5,4 +5,4 @@ edition = "2021" publish = false [dependencies] -serde = { version = "1.0.147", features = ["derive"] } +serde = { version = "1.0.203", features = ["derive"] }