From 3b218411d01d6ceedd93cb269211802cdeac2a31 Mon Sep 17 00:00:00 2001 From: Alex Emmet <111742636+Alex-Emmet@users.noreply.github.com> Date: Tue, 14 Apr 2026 21:37:51 +0200 Subject: [PATCH 1/2] [Add] App storage --- Cargo.lock | 92 +++++----- iota-storage/src/users/user_manager.rs | 20 ++ iota-storage/src/users/user_profile.rs | 20 +- omikron-connector/src/omikron_connection.rs | 191 ++++++++++++++++++++ 4 files changed, 279 insertions(+), 44 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9ee4537..7fec03a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rand 0.9.2", + "rand 0.9.4", "sha1", "smallvec", "tokio", @@ -552,9 +552,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.59" +version = "1.2.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7a4d3ec6524d28a329fc53654bbadc9bdd7b0431f5d65f1a56ffb28a1ee5283" +checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" dependencies = [ "find-msvc-tools", "jobserver", @@ -1344,6 +1344,12 @@ dependencies = [ "foldhash 0.2.0", ] +[[package]] +name = "hashbrown" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" + [[package]] name = "hashlink" version = "0.11.0" @@ -1493,15 +1499,14 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "c2b52f86d1d4bc0d6b4e6826d960b1b333217e07d36b882dca570a5e1c48895b" dependencies = [ "http 1.4.0", "hyper", "hyper-util", "rustls", - "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", @@ -1679,12 +1684,12 @@ checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" [[package]] name = "indexmap" -version = "2.13.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "serde", "serde_core", ] @@ -2028,9 +2033,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.94" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" +checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" dependencies = [ "cfg-if", "futures-util", @@ -2087,9 +2092,9 @@ checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" [[package]] name = "libc" -version = "0.2.184" +version = "0.2.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" +checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" [[package]] name = "libsqlite3-sys" @@ -2449,9 +2454,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.76" +version = "0.10.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "951c002c75e16ea2c65b8c7e4d3d51d5530d8dfa7d060b4776828c88cfb18ecf" +checksum = "bfe4646e360ec77dff7dde40ed3d6c5fee52d156ef4a62f53973d38294dad87f" dependencies = [ "bitflags 2.11.0", "cfg-if", @@ -2481,9 +2486,9 @@ checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "openssl-sys" -version = "0.9.112" +version = "0.9.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb" +checksum = "ad2f2c0eba47118757e4c6d2bff2838f3e0523380021356e7875e858372ce644" dependencies = [ "cc", "libc", @@ -2678,9 +2683,9 @@ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" [[package]] name = "pnet" @@ -2870,7 +2875,7 @@ dependencies = [ "bytes", "getrandom 0.3.4", "lru-slab", - "rand 0.9.2", + "rand 0.9.4", "ring", "rustc-hash", "rustls", @@ -2930,9 +2935,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.5", @@ -3240,9 +3245,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.37" +version = "0.23.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" +checksum = "69f9466fb2c14ea04357e91413efb882e2a6d4a406e625449bc0a5d360d53a21" dependencies = [ "aws-lc-rs", "log", @@ -3314,9 +3319,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.10" +version = "0.103.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" +checksum = "20a6af516fea4b20eccceaf166e8aa666ac996208e8a644ce3ef5aa783bc7cd4" dependencies = [ "aws-lc-rs", "ring", @@ -3892,9 +3897,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.51.0" +version = "1.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bd1c4c0fc4a7ab90fc15ef6daaa3ec3b893f004f915f2392557ed23237820cd" +checksum = "f66bf9585cda4b724d3e78ab34b73fb2bbaba9011b9bfdf69dc836382ea13b8c" dependencies = [ "bytes", "libc", @@ -4051,11 +4056,12 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "ttp-core" version = "0.1.0" -source = "git+https://git.methanium.net/Tensamin/TTP.git#2322bdced8183e970405d5017cd87ba805309a4c" +source = "git+https://git.methanium.net/Tensamin/TTP.git#ac3c0e1cf9e1957b554f0b19f0b0d7cf9cca46c1" dependencies = [ "base64", "byteorder", "rand 0.8.5", + "serde_json", "strum 0.28.0", "strum_macros 0.28.0", ] @@ -4063,7 +4069,7 @@ dependencies = [ [[package]] name = "ttp-native" version = "0.1.0" -source = "git+https://git.methanium.net/Tensamin/TTP.git#2322bdced8183e970405d5017cd87ba805309a4c" +source = "git+https://git.methanium.net/Tensamin/TTP.git#ac3c0e1cf9e1957b554f0b19f0b0d7cf9cca46c1" dependencies = [ "quinn", "rustls", @@ -4086,7 +4092,7 @@ dependencies = [ "httparse", "log", "native-tls", - "rand 0.9.2", + "rand 0.9.4", "sha1", "thiserror 2.0.18", ] @@ -4295,9 +4301,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.117" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" +checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" dependencies = [ "cfg-if", "once_cell", @@ -4308,9 +4314,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.67" +version = "0.4.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e" +checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" dependencies = [ "js-sys", "wasm-bindgen", @@ -4318,9 +4324,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.117" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" +checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4328,9 +4334,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.117" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" +checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" dependencies = [ "bumpalo", "proc-macro2", @@ -4341,9 +4347,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.117" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" +checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" dependencies = [ "unicode-ident", ] @@ -4392,9 +4398,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.94" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" +checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/iota-storage/src/users/user_manager.rs b/iota-storage/src/users/user_manager.rs index 99cbaf5..9d0fbf1 100644 --- a/iota-storage/src/users/user_manager.rs +++ b/iota-storage/src/users/user_manager.rs @@ -42,6 +42,14 @@ pub async fn load_from_tu(username: &str) -> Result<(), ()> { pub fn add_user(user: UserProfile) { USERS.lock().unwrap().push(user); } + +pub fn update_user(user: UserProfile) { + let mut users = USERS.lock().unwrap(); + if let Some(pos) = users.iter().position(|u| u.user_id == user.user_id) { + users[pos] = user; + } + *UNIQUE.lock().unwrap() = true; +} pub fn get_user_by_username(username: &str) -> Option { USERS .lock() @@ -111,3 +119,15 @@ pub async fn load_users() -> io::Result<()> { pub fn set_unique(val: bool) { *UNIQUE.lock().unwrap() = val; } + +pub fn save_app_data(user_id: i64, app_identifier: &str, data: &str) { + let path = format!("users/{}/apps", user_id); + let name = format!("{}.json", app_identifier); + save_file(&path, &name, data); +} + +pub fn load_app_data(user_id: i64, app_identifier: &str) -> String { + let path = format!("users/{}/apps", user_id); + let name = format!("{}.json", app_identifier); + load_file(&path, &name) +} diff --git a/iota-storage/src/users/user_profile.rs b/iota-storage/src/users/user_profile.rs index 573320a..c0ae20e 100644 --- a/iota-storage/src/users/user_profile.rs +++ b/iota-storage/src/users/user_profile.rs @@ -16,6 +16,7 @@ pub struct UserProfile { pub reset_token: String, pub created_at: i64, pub display_name: Option, + pub trusted_apps: std::collections::HashMap, } impl UserProfile { @@ -38,17 +39,24 @@ impl UserProfile { .unwrap() .as_millis() as i64, reset_token, + trusted_apps: std::collections::HashMap::new(), } } pub fn to_json(&self) -> JsonValue { + let mut trusted_apps_obj = json::JsonValue::new_object(); + for (k, v) in &self.trusted_apps { + trusted_apps_obj[k] = v.clone().into(); + } + let mut obj = object! { "uuid" => self.user_id, "username" => self.username.clone(), "public_key" => self.public_key.clone(), "private_key_hash" => self.private_key_hash.clone(), "created_at" => self.created_at, - "reset_token" => self.reset_token.clone() + "reset_token" => self.reset_token.clone(), + "trusted_apps" => trusted_apps_obj, }; if let Some(d) = &self.display_name { obj["display_name"] = d.clone().into(); @@ -82,6 +90,15 @@ impl UserProfile { let created_at = j["created_at"].as_i64()?; let display_name = j["display_name"].as_str().map(|s| s.to_string()); + let mut trusted_apps = std::collections::HashMap::new(); + if j["trusted_apps"].is_object() { + for (key, value) in j["trusted_apps"].entries() { + if let Some(s) = value.as_str() { + trusted_apps.insert(key.to_string(), s.to_string()); + } + } + } + let up = UserProfile { user_id, username, @@ -90,6 +107,7 @@ impl UserProfile { private_key_hash, created_at, reset_token, + trusted_apps, }; // TODO: Migrate to Omikron / Wss diff --git a/omikron-connector/src/omikron_connection.rs b/omikron-connector/src/omikron_connection.rs index d6b0ff4..3b08e15 100755 --- a/omikron-connector/src/omikron_connection.rs +++ b/omikron-connector/src/omikron_connection.rs @@ -91,6 +91,8 @@ pub struct OmikronConnection { pub connection_id: Uuid, shutdown_tx: Arc>>>, reconnect_on_close: Arc>, + pub app_challenges: Arc>>, + pub app_sessions: Arc>>, } impl OmikronConnection { @@ -113,6 +115,8 @@ impl OmikronConnection { connection_id: Uuid::new_v4(), shutdown_tx: Arc::new(Mutex::new(Some(shutdown_tx))), reconnect_on_close: Arc::new(RwLock::new(true)), + app_challenges: Arc::new(RwLock::new(HashMap::new())), + app_sessions: Arc::new(RwLock::new(HashMap::new())), } } @@ -424,6 +428,193 @@ impl OmikronConnection { return; } + if cv.is_type(CommunicationType::app_identification) { + let sender_id = cv.get_sender(); + let app_identifier = cv + .get_data(DataTypes::app_identifier) + .as_str() + .unwrap_or("") + .to_string(); + let app_public_key = cv + .get_data(DataTypes::app_public_key) + .as_str() + .unwrap_or("") + .to_string(); + let user_id = cv.get_data(DataTypes::user_id).as_number().unwrap_or(0) as i64; + + let mut trusted = false; + if let Some(user) = iota_storage::users::user_manager::get_user(user_id) { + if let Some(pub_k) = user.trusted_apps.get(&app_identifier) { + if pub_k == &app_public_key { + trusted = true; + } + } + } + + if trusted { + use iota_util::crypto_util::{DataFormat, SecurePayload}; + + let challenge = Uuid::new_v4().to_string(); + + self.app_challenges + .write() + .await + .insert(sender_id, challenge.clone()); + self.app_sessions + .write() + .await + .insert(sender_id, (user_id, app_identifier.clone())); + + if let Some(pub_key) = iota_util::crypto_helper::load_public_key(&app_public_key) { + let conf = CONFIG.read().await; + let priv_k_str = conf.get_private_key().unwrap_or_default(); + let pub_k_str = conf.get_public_key().unwrap_or_default(); + drop(conf); + + if let Some(priv_key) = iota_util::crypto_helper::load_secret_key(&priv_k_str) { + let encrypted_challenge = + SecurePayload::new(challenge.as_bytes(), DataFormat::Raw, priv_key) + .unwrap() + .encrypt_x448(pub_key) + .unwrap() + .export(DataFormat::Base64); + + let res = CommunicationValue::new(CommunicationType::app_challange) + .with_id(cv.get_id()) + .with_receiver(sender_id) + .add_data(DataTypes::public_key, DataValue::Str(pub_k_str)) + .add_data(DataTypes::challenge, DataValue::Str(encrypted_challenge)); + + self.send_message(&res).await; + return; + } + } + } + + let res = CommunicationValue::new(CommunicationType::error) + .with_id(cv.get_id()) + .with_receiver(sender_id); + self.send_message(&res).await; + return; + } + + if cv.is_type(CommunicationType::app_challange_response) { + let sender_id = cv.get_sender(); + let mut challenges = self.app_challenges.write().await; + if let Some(expected) = challenges.remove(&sender_id) { + if let DataValue::Str(response) = cv.get_data(DataTypes::challenge) { + if expected == *response { + let res = + CommunicationValue::new(CommunicationType::app_identification_response) + .with_id(cv.get_id()) + .with_receiver(sender_id); + self.send_message(&res).await; + return; + } + } + } + let res = CommunicationValue::new(CommunicationType::error) + .with_id(cv.get_id()) + .with_receiver(sender_id); + self.send_message(&res).await; + return; + } + + if cv.is_type(CommunicationType::save_app_data) { + let sender_id = cv.get_sender(); + let app_data = cv + .get_data(DataTypes::app_data) + .as_str() + .unwrap_or("") + .to_string(); + + let sessions = self.app_sessions.read().await; + if let Some((user_id, app_identifier)) = sessions.get(&sender_id) { + iota_storage::users::user_manager::save_app_data( + *user_id, + app_identifier, + &app_data, + ); + } + + let res = CommunicationValue::new(CommunicationType::save_app_data) + .with_id(cv.get_id()) + .with_receiver(sender_id); + self.send_message(&res).await; + return; + } + + if cv.is_type(CommunicationType::load_app_data) { + let sender_id = cv.get_sender(); + let mut app_data = String::new(); + + let sessions = self.app_sessions.read().await; + if let Some((user_id, app_identifier)) = sessions.get(&sender_id) { + app_data = + iota_storage::users::user_manager::load_app_data(*user_id, app_identifier); + } + + let res = CommunicationValue::new(CommunicationType::load_app_data) + .with_id(cv.get_id()) + .with_receiver(sender_id) + .add_data(DataTypes::app_data, DataValue::Str(app_data)); + self.send_message(&res).await; + return; + } + + if cv.is_type(CommunicationType::create_app) { + let sender_id = cv.get_sender() as i64; + let app_identifier = cv + .get_data(DataTypes::app_identifier) + .as_str() + .unwrap_or("") + .to_string(); + let app_public_key = cv + .get_data(DataTypes::app_public_key) + .as_str() + .unwrap_or("") + .to_string(); + + if !app_identifier.is_empty() && !app_public_key.is_empty() { + if let Some(mut user) = iota_storage::users::user_manager::get_user(sender_id) { + if !user.trusted_apps.contains_key(&app_identifier) { + user.trusted_apps.insert(app_identifier, app_public_key); + iota_storage::users::user_manager::update_user(user); + } + } + } + + let res = CommunicationValue::new(CommunicationType::create_app) + .with_id(cv.get_id()) + .with_receiver(sender_id as u64); + self.send_message(&res).await; + return; + } + + if cv.is_type(CommunicationType::delete_app) { + let sender_id = cv.get_sender() as i64; + let app_identifier = cv + .get_data(DataTypes::app_identifier) + .as_str() + .unwrap_or("") + .to_string(); + + if !app_identifier.is_empty() { + if let Some(mut user) = iota_storage::users::user_manager::get_user(sender_id) { + if user.trusted_apps.contains_key(&app_identifier) { + user.trusted_apps.remove(&app_identifier); + iota_storage::users::user_manager::update_user(user); + } + } + } + + let res = CommunicationValue::new(CommunicationType::delete_app) + .with_id(cv.get_id()) + .with_receiver(sender_id as u64); + self.send_message(&res).await; + return; + } + if cv.is_type(CommunicationType::client_connected) { let user_id = cv.get_data(DataTypes::user_id).as_number().unwrap_or(0) as i64; let session_id = cv.get_data(DataTypes::session_id).as_number().unwrap_or(0) as i64; From 401d4890dc5c9fcfc333ff7d7d869ab3ba6c8601 Mon Sep 17 00:00:00 2001 From: Alex Emmet <111742636+Alex-Emmet@users.noreply.github.com> Date: Wed, 29 Apr 2026 21:15:37 +0200 Subject: [PATCH 2/2] [Clean & Fix] --- Cargo.lock | 255 ++++++++++++++------ iota-cli/src/screens/terms_checker.rs | 4 +- iota-core/src/main.rs | 6 +- iota-updater/src/lib.rs | 2 +- omikron-connector/src/omikron_connection.rs | 34 ++- omikron-connector/src/ping_pong_task.rs | 1 - web-ui/src/api.rs | 2 +- 7 files changed, 205 insertions(+), 99 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7fec03a..943a560 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9,7 +9,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de7fa236829ba0841304542f7614c42b80fca007455315c45c785ccfa873a85b" dependencies = [ "actix-rt", - "bitflags 2.11.0", + "bitflags 2.11.1", "bytes", "crossbeam-channel", "futures-core", @@ -31,7 +31,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytes", "futures-core", "futures-sink", @@ -44,9 +44,9 @@ dependencies = [ [[package]] name = "actix-http" -version = "3.12.0" +version = "3.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f860ee6746d0c5b682147b2f7f8ef036d4f92fe518251a3a35ffa3650eafdf0e" +checksum = "93acb4a42f64936f9b8cae4a433b237599dd6eb6ed06124eb67132ef8cc90662" dependencies = [ "actix-codec", "actix-rt", @@ -54,7 +54,7 @@ dependencies = [ "actix-tls", "actix-utils", "base64", - "bitflags 2.11.0", + "bitflags 2.11.1", "brotli", "bytes", "bytestring", @@ -73,8 +73,8 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rand 0.9.4", - "sha1", + "rand 0.10.1", + "sha1 0.11.0", "smallvec", "tokio", "tokio-util", @@ -259,7 +259,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "crypto-common", + "crypto-common 0.1.7", "generic-array", ] @@ -271,7 +271,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -415,9 +415,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-lc-rs" -version = "1.16.2" +version = "1.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" +checksum = "0ec6fb3fe69024a75fa7e1bfb48aa6cf59706a101658ea01bfd33b2b248a038f" dependencies = [ "aws-lc-sys", "untrusted 0.7.1", @@ -426,9 +426,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.39.1" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399" +checksum = "f50037ee5e1e41e7b8f9d161680a725bd1626cb6f8c7e901f91f942850852fe7" dependencies = [ "cc", "cmake", @@ -465,9 +465,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" [[package]] name = "block-buffer" @@ -478,6 +478,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be" +dependencies = [ + "hybrid-array", +] + [[package]] name = "brotli" version = "8.0.2" @@ -580,6 +589,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + [[package]] name = "chrono" version = "0.4.44" @@ -599,7 +619,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common", + "crypto-common 0.1.7", "inout", ] @@ -636,6 +656,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + [[package]] name = "constant_time_eq" version = "0.3.1" @@ -697,6 +723,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc" version = "3.4.0" @@ -742,7 +777,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "crossterm_winapi", "derive_more", "document-features", @@ -774,6 +809,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710" +dependencies = [ + "hybrid-array", +] + [[package]] name = "csscolorparser" version = "0.6.2" @@ -922,11 +966,22 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", - "crypto-common", + "block-buffer 0.10.4", + "crypto-common 0.1.7", "subtle", ] +[[package]] +name = "digest" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4850db49bf08e663084f7fb5c87d202ef91a3907271aff24a94eb97ff039153c" +dependencies = [ + "block-buffer 0.12.0", + "const-oid", + "crypto-common 0.2.1", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -1260,6 +1315,7 @@ dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", ] @@ -1371,7 +1427,7 @@ dependencies = [ "http 1.4.0", "httpdate", "mime", - "sha1", + "sha1 0.10.6", ] [[package]] @@ -1410,7 +1466,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest", + "digest 0.10.7", ] [[package]] @@ -1475,6 +1531,15 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "hybrid-array" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3944cf8cf766b40e2a1a333ee5e9b563f854d5fa49d6a8ca2764e97c6eddb214" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" version = "1.9.0" @@ -1499,9 +1564,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.8" +version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2b52f86d1d4bc0d6b4e6826d960b1b333217e07d36b882dca570a5e1c48895b" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ "http 1.4.0", "hyper", @@ -1754,7 +1819,7 @@ dependencies = [ "once_cell", "open", "pnet", - "rand 0.8.5", + "rand 0.8.6", "rand_core 0.6.4", "ratatui", "reqwest", @@ -1840,7 +1905,7 @@ dependencies = [ "iota-util", "json", "once_cell", - "rand 0.8.5", + "rand 0.8.6", "rand_core 0.6.4", "ratatui", "reqwest", @@ -2086,9 +2151,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libbz2-rs-sys" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" +checksum = "b3a6a8c165077efc8f3a971534c50ea6a1a18b329ef4a66e897a7e3a1494565f" [[package]] name = "libc" @@ -2112,7 +2177,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f50e8f47623268b5407192d26876c4d7f89d686ca130fdc53bced4814cd29f8" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -2167,9 +2232,9 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "lru" -version = "0.16.3" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" dependencies = [ "hashbrown 0.16.1", ] @@ -2288,7 +2353,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cfg-if", "cfg_aliases", "libc", @@ -2380,7 +2445,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -2443,9 +2508,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "open" -version = "5.3.3" +version = "5.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" +checksum = "9f3bab717c29a857abf75fcef718d441ec7cb2725f937343c734740a985d37fd" dependencies = [ "is-wsl", "libc", @@ -2458,7 +2523,7 @@ version = "0.10.77" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfe4646e360ec77dff7dde40ed3d6c5fee52d156ef4a62f53973d38294dad87f" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cfg-if", "foreign-types", "libc", @@ -2540,7 +2605,7 @@ version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ - "digest", + "digest 0.10.7", "hmac", ] @@ -2630,7 +2695,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -2785,7 +2850,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] @@ -2924,9 +2989,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -2943,6 +3008,17 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "rand" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" +dependencies = [ + "chacha20", + "getrandom 0.4.2", + "rand_core 0.10.1", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -2987,6 +3063,12 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "ratatui" version = "0.30.0" @@ -3007,7 +3089,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "compact_str", "hashbrown 0.16.1", "indoc", @@ -3059,7 +3141,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "hashbrown 0.16.1", "indoc", "instability", @@ -3091,7 +3173,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -3197,7 +3279,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0d2b0146dd9661bf67bb107c0bb2a55064d556eeb3fc314151b957f313bcd4e" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "fallible-iterator", "fallible-streaming-iterator", "hashlink", @@ -3236,7 +3318,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "errno", "libc", "linux-raw-sys", @@ -3319,9 +3401,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.11" +version = "0.103.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20a6af516fea4b20eccceaf166e8aa666ac996208e8a644ce3ef5aa783bc7cd4" +checksum = "8279bb85272c9f10811ae6a6c547ff594d6a7f3c6c6b02ee9726d1d0dcfcdd06" dependencies = [ "aws-lc-rs", "ring", @@ -3377,7 +3459,7 @@ version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -3473,8 +3555,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", - "cpufeatures", - "digest", + "cpufeatures 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha1" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.2", ] [[package]] @@ -3484,8 +3577,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", - "digest", + "cpufeatures 0.2.17", + "digest 0.10.7", ] [[package]] @@ -3571,9 +3664,9 @@ dependencies = [ [[package]] name = "sqlite-wasm-rs" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4206ed3a67690b9c29b77d728f6acc3ce78f16bf846d83c94f76400320181b" +checksum = "1b2c760607300407ddeaee518acf28c795661b7108c75421303dbefb237d3a36" dependencies = [ "cc", "js-sys", @@ -3706,7 +3799,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -3763,7 +3856,7 @@ checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7" dependencies = [ "anyhow", "base64", - "bitflags 2.11.0", + "bitflags 2.11.1", "fancy-regex", "filedescriptor", "finl_unicode", @@ -3897,9 +3990,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.51.1" +version = "1.52.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f66bf9585cda4b724d3e78ab34b73fb2bbaba9011b9bfdf69dc836382ea13b8c" +checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6" dependencies = [ "bytes", "libc", @@ -3991,7 +4084,7 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytes", "futures-util", "http 1.4.0", @@ -4056,11 +4149,11 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "ttp-core" version = "0.1.0" -source = "git+https://git.methanium.net/Tensamin/TTP.git#ac3c0e1cf9e1957b554f0b19f0b0d7cf9cca46c1" +source = "git+https://git.methanium.net/Tensamin/TTP.git#4c8cacf8e8b58d917c24fa6baecefefbce2294b3" dependencies = [ "base64", "byteorder", - "rand 0.8.5", + "rand 0.8.6", "serde_json", "strum 0.28.0", "strum_macros 0.28.0", @@ -4069,7 +4162,7 @@ dependencies = [ [[package]] name = "ttp-native" version = "0.1.0" -source = "git+https://git.methanium.net/Tensamin/TTP.git#ac3c0e1cf9e1957b554f0b19f0b0d7cf9cca46c1" +source = "git+https://git.methanium.net/Tensamin/TTP.git#4c8cacf8e8b58d917c24fa6baecefefbce2294b3" dependencies = [ "quinn", "rustls", @@ -4093,15 +4186,15 @@ dependencies = [ "log", "native-tls", "rand 0.9.4", - "sha1", + "sha1 0.10.6", "thiserror 2.0.18", ] [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "ucd-trie" @@ -4156,7 +4249,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "crypto-common", + "crypto-common 0.1.7", "subtle", ] @@ -4198,9 +4291,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.23.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" +checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" dependencies = [ "atomic", "getrandom 0.4.2", @@ -4283,11 +4376,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", ] [[package]] @@ -4296,7 +4389,7 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.51.0", ] [[package]] @@ -4382,7 +4475,7 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "hashbrown 0.15.5", "indexmap", "semver", @@ -4444,7 +4537,7 @@ dependencies = [ "once_cell", "open", "pnet", - "rand 0.8.5", + "rand 0.8.6", "rand_core 0.6.4", "ratatui", "reqwest", @@ -4470,9 +4563,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" dependencies = [ "rustls-pki-types", ] @@ -4932,6 +5025,12 @@ dependencies = [ "wit-bindgen-rust-macro", ] +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "wit-bindgen-core" version = "0.51.0" @@ -4981,7 +5080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.11.0", + "bitflags 2.11.1", "indexmap", "log", "serde", @@ -5245,7 +5344,7 @@ dependencies = [ "memchr", "pbkdf2", "ppmd-rust", - "sha1", + "sha1 0.10.6", "time", "zeroize", "zopfli", diff --git a/iota-cli/src/screens/terms_checker.rs b/iota-cli/src/screens/terms_checker.rs index 0d64187..6526a5f 100644 --- a/iota-cli/src/screens/terms_checker.rs +++ b/iota-cli/src/screens/terms_checker.rs @@ -27,7 +27,7 @@ pub enum UserChoice { } pub struct TermsCheckerScreen { - ui: Arc, + _ui: Arc, sender: Option>, eula: bool, @@ -40,7 +40,7 @@ pub struct TermsCheckerScreen { impl TermsCheckerScreen { pub fn new(ui: Arc, sender: Option>) -> Self { Self { - ui, + _ui: ui, sender, eula: false, tos: false, diff --git a/iota-core/src/main.rs b/iota-core/src/main.rs index af76140..f06143f 100644 --- a/iota-core/src/main.rs +++ b/iota-core/src/main.rs @@ -107,15 +107,15 @@ async fn main() { sb1 = sb1 + ","; } log!("Community IDS: {}", sb1); */ - let port = CONFIG.read().await.get_port(); - let mut ip = "0.0.0.0".to_string(); + let _port = CONFIG.read().await.get_port(); + let mut _ip = "0.0.0.0".to_string(); for iface in pnet::datalink::interfaces() { let iface: NetworkInterface = iface; if iface.ips.len() > 0 { let ipsv = format!("{}", iface.ips[0]); let ips: &str = ipsv.split('/').next().unwrap_or(""); if format!("{}", ips).starts_with("10.") || format!("{}", ips).starts_with("192.") { - ip = ips.to_string(); + _ip = ips.to_string(); } } } diff --git a/iota-updater/src/lib.rs b/iota-updater/src/lib.rs index 4d8ddbb..c93e9d3 100644 --- a/iota-updater/src/lib.rs +++ b/iota-updater/src/lib.rs @@ -108,7 +108,7 @@ async fn download_asset(url: &str) -> Result { } let tmp = NamedTempFile::new().context("failed to create temp file")?; - let mut out = File::create(tmp.path()).context("failed to open temp file")?; + let _out = File::create(tmp.path()).context("failed to open temp file")?; let bytes = response .bytes() diff --git a/omikron-connector/src/omikron_connection.rs b/omikron-connector/src/omikron_connection.rs index 3b08e15..3bf212e 100755 --- a/omikron-connector/src/omikron_connection.rs +++ b/omikron-connector/src/omikron_connection.rs @@ -87,7 +87,6 @@ pub struct OmikronConnection { port: u16, pub last_ping: Arc>, heartbeat_handle: Arc>>>, - message_send_times: Arc>>, pub connection_id: Uuid, shutdown_tx: Arc>>>, reconnect_on_close: Arc>, @@ -111,7 +110,6 @@ impl OmikronConnection { port, last_ping: Arc::new(Mutex::new(-1)), heartbeat_handle: Arc::new(Mutex::new(None)), - message_send_times: Arc::new(Mutex::new(HashMap::new())), connection_id: Uuid::new_v4(), shutdown_tx: Arc::new(Mutex::new(Some(shutdown_tx))), reconnect_on_close: Arc::new(RwLock::new(true)), @@ -287,7 +285,7 @@ impl OmikronConnection { if iota_id == 0 { log_t!("iota_register_new"); - let (pub_k, priv_k) = if let (Some(pk), Some(sk)) = (public_key, private_key) { + let (pub_k, _priv_k) = if let (Some(pk), Some(sk)) = (public_key, private_key) { (pk, sk) } else { let key_pair = crypto_helper::generate_keypair(); @@ -617,9 +615,9 @@ impl OmikronConnection { if cv.is_type(CommunicationType::client_connected) { let user_id = cv.get_data(DataTypes::user_id).as_number().unwrap_or(0) as i64; - let session_id = cv.get_data(DataTypes::session_id).as_number().unwrap_or(0) as i64; + let _session_id = cv.get_data(DataTypes::session_id).as_number().unwrap_or(0) as i64; - let mut contacts = chats_util::get_users(user_id); + let contacts = chats_util::get_users(user_id); let mut contacts_array = Vec::new(); for (i, contact) in contacts.iter().enumerate() { @@ -865,10 +863,15 @@ impl OmikronConnection { let user_forward = CommunicationValue::new(CommunicationType::message_live) .with_id(cv.get_id()) .with_receiver(receiver_id as u64) - .add_data(DataTypes::send_time, DataValue::Number(timestamp_i64)) - .add_data(DataTypes::content, DataValue::Str(content.clone())) .add_data(DataTypes::sender_id, DataValue::Number(sender_id as i64)) - .add_data(DataTypes::height, DataValue::Number(height)); + .add_data( + DataTypes::message, + DataValue::Container(vec![ + (DataTypes::content, DataValue::Str(content.clone())), + (DataTypes::send_time, DataValue::Number(timestamp_i64)), + (DataTypes::height, DataValue::Number(height)), + ]), + ); // Attempt delivery and await a response from the local client let user_resp = self @@ -941,7 +944,7 @@ impl OmikronConnection { .add_data(DataTypes::send_time, DataValue::Number(timestamp_i64)) .add_data( DataTypes::chat_partner_id, - DataValue::Number(sender_id as i64), + DataValue::Number(receiver_id as i64), ) .add_data( DataTypes::message_state, @@ -994,10 +997,15 @@ impl OmikronConnection { let user_forward = CommunicationValue::new(CommunicationType::message_live) .with_id(cv.get_id()) .with_receiver(*receiver_id) - .add_data(DataTypes::send_time, DataValue::Number(timestamp)) - .add_data(DataTypes::content, DataValue::Str(content.clone())) .add_data(DataTypes::sender_id, DataValue::Number(*sender_id as i64)) - .add_data(DataTypes::height, DataValue::Number(height)); + .add_data( + DataTypes::message, + DataValue::Container(vec![ + (DataTypes::content, DataValue::Str(content.clone())), + (DataTypes::send_time, DataValue::Number(timestamp)), + (DataTypes::height, DataValue::Number(height)), + ]), + ); let user_resp = self .clone() @@ -1051,7 +1059,7 @@ impl OmikronConnection { .add_data(DataTypes::send_time, DataValue::Number(timestamp)) .add_data( DataTypes::chat_partner_id, - DataValue::Number(*sender_id as i64), + DataValue::Number(*receiver_id as i64), ) .add_data( DataTypes::message_state, diff --git a/omikron-connector/src/ping_pong_task.rs b/omikron-connector/src/ping_pong_task.rs index fc21855..18e651f 100644 --- a/omikron-connector/src/ping_pong_task.rs +++ b/omikron-connector/src/ping_pong_task.rs @@ -1,6 +1,5 @@ use crate::omikron_connection::OmikronConnection; use dashmap::DashMap; -use iota_logger::log; use iota_state::APP_STATE; use std::sync::LazyLock; use std::time::Instant; diff --git a/web-ui/src/api.rs b/web-ui/src/api.rs index 7092aba..6cbdf78 100755 --- a/web-ui/src/api.rs +++ b/web-ui/src/api.rs @@ -70,7 +70,7 @@ async fn communities_get(req: HttpRequest, ssl: web::Data) -> impl Respond async fn communities_add( req: HttpRequest, ssl: web::Data, - payload: web::Json, + _payload: web::Json, ) -> impl Responder { if !is_allowed_req(&req, *ssl.get_ref()) { return forbidden();