From 93fd12ceb1451226ba0063ccaff8d266325e9471 Mon Sep 17 00:00:00 2001 From: Jakub Janowski Date: Tue, 14 Jan 2025 15:27:12 +0200 Subject: [PATCH] Update libtelio dependencies --- Cargo.lock | 1401 ++++++++--------- Cargo.toml | 66 +- clis/derpcli/src/conf.rs | 9 +- clis/derpcli/src/main.rs | 3 +- clis/interderpcli/Cargo.toml | 2 +- clis/tcli/Cargo.toml | 12 +- clis/tcli/src/bin/tclid/coms.rs | 12 +- clis/tcli/src/bin/tclid/daemon.rs | 2 +- clis/teliod/Cargo.toml | 9 +- clis/teliod/src/nc.rs | 12 +- crates/telio-crypto/Cargo.toml | 2 +- crates/telio-crypto/src/lib.rs | 9 +- crates/telio-firewall/src/firewall.rs | 3 +- crates/telio-lana/Cargo.toml | 2 +- crates/telio-network-monitors/Cargo.toml | 7 +- .../src/local_interfaces.rs | 4 + crates/telio-network-monitors/src/monitor.rs | 1 + crates/telio-nurse/Cargo.toml | 2 +- crates/telio-nurse/src/heartbeat.rs | 13 +- crates/telio-pq/src/proto.rs | 7 +- crates/telio-relay/Cargo.toml | 7 +- crates/telio-relay/src/derp.rs | 11 +- crates/telio-relay/src/derp/http.rs | 34 +- crates/telio-sockets/Cargo.toml | 4 +- .../src/endpoint_providers/local.rs | 1 + crates/telio-utils/src/lru_cache.rs | 9 +- crates/telio-wg/src/windows/service.rs | 9 +- src/ffi.rs | 4 +- src/lib.rs | 8 +- 29 files changed, 808 insertions(+), 857 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f9b262200..6100a2157 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,18 +27,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -48,12 +36,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - [[package]] name = "anes" version = "0.1.6" @@ -61,12 +43,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] -name = "ansi_term" -version = "0.12.1" +name = "anstream" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ - "winapi", + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", ] [[package]] @@ -75,6 +63,35 @@ version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +[[package]] +name = "anstyle-parse" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +dependencies = [ + "anstyle", + "once_cell", + "windows-sys 0.59.0", +] + [[package]] name = "anyhow" version = "1.0.95" @@ -122,7 +139,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -232,7 +249,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "event-listener-strategy", "pin-project-lite", ] @@ -278,7 +295,7 @@ checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -331,12 +348,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -384,9 +395,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" [[package]] name = "blake2" @@ -440,13 +451,13 @@ dependencies = [ [[package]] name = "bstr" -version = "0.2.17" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" dependencies = [ - "lazy_static", "memchr", - "regex-automata 0.1.10", + "regex-automata", + "serde", ] [[package]] @@ -529,9 +540,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.7" +version = "1.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" +checksum = "c8293772165d9345bdaaa39b45b2109591e63fe5e6fbc23c6ff930a048aa310b" dependencies = [ "jobserver", "libc", @@ -643,19 +654,19 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.23" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" +checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" dependencies = [ "clap_builder", - "clap_derive 4.5.18", + "clap_derive 4.5.24", ] [[package]] name = "clap_builder" -version = "4.5.23" +version = "4.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" +checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" dependencies = [ "anstyle", "clap_lex 0.7.4", @@ -676,14 +687,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.18" +version = "4.5.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -712,6 +723,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "colorchoice" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" + [[package]] name = "colored" version = "2.2.0" @@ -826,10 +843,10 @@ dependencies = [ "anes", "cast", "ciborium", - "clap 4.5.23", + "clap 4.5.26", "criterion-plot", "is-terminal", - "itertools", + "itertools 0.10.5", "num-traits", "once_cell", "oorandom", @@ -850,7 +867,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", - "itertools", + "itertools 0.10.5", ] [[package]] @@ -954,16 +971,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "ctrlc" version = "3.4.5" @@ -997,7 +1004,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -1054,7 +1061,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -1076,14 +1083,14 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" [[package]] name = "debug_panic" @@ -1137,7 +1144,7 @@ version = "0.3.0" dependencies = [ "anyhow", "atomic-counter", - "base64 0.13.1", + "base64 0.22.1", "clap 3.2.25", "crypto_box", "ctrlc", @@ -1161,12 +1168,6 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" -[[package]] -name = "difflib" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" - [[package]] name = "digest" version = "0.10.7" @@ -1180,9 +1181,9 @@ dependencies = [ [[package]] name = "dirs" -version = "4.0.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" dependencies = [ "dirs-sys", ] @@ -1199,13 +1200,14 @@ dependencies = [ [[package]] name = "dirs-sys" -version = "0.3.7" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", - "redox_users", - "winapi", + "option-ext", + "redox_users 0.5.0", + "windows-sys 0.59.0", ] [[package]] @@ -1215,7 +1217,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", - "redox_users", + "redox_users 0.4.6", "winapi", ] @@ -1232,7 +1234,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -1269,15 +1271,6 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - [[package]] name = "endian-type" version = "0.1.2" @@ -1293,7 +1286,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -1313,20 +1306,30 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", +] + +[[package]] +name = "env_filter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +dependencies = [ + "log", + "regex", ] [[package]] name = "env_logger" -version = "0.9.3" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" dependencies = [ - "atty", + "anstream", + "anstyle", + "env_filter", "humantime", "log", - "regex", - "termcolor", ] [[package]] @@ -1363,9 +1366,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "5.3.1" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" dependencies = [ "concurrent-queue", "parking", @@ -1378,7 +1381,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "pin-project-lite", ] @@ -1416,15 +1419,6 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" -dependencies = [ - "num-traits", -] - [[package]] name = "flume" version = "0.11.1" @@ -1442,6 +1436,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -1516,9 +1516,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ "fastrand", "futures-core", @@ -1535,7 +1535,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -1550,6 +1550,12 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" + [[package]] name = "futures-util" version = "0.3.31" @@ -1629,16 +1635,16 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.26" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", - "http 0.2.12", + "http", "indexmap 2.7.0", "slab", "tokio", @@ -1662,29 +1668,22 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] - [[package]] name = "hashbrown" version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash", +] [[package]] name = "hashlink" -version = "0.8.4" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] [[package]] @@ -1729,7 +1728,7 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hickory-proto" version = "0.24.0" -source = "git+https://github.com/NordSecurity/trust-dns.git?tag=v3.0.1#88204024fd3ecdadccf4574eb7976167e7c52001" +source = "git+https://github.com/NordSecurity/trust-dns.git?tag=v3.0.1#0f95dc69add726ebd2233cb95c3342bc70a2fe2c" dependencies = [ "async-trait", "cfg-if", @@ -1753,7 +1752,7 @@ dependencies = [ [[package]] name = "hickory-resolver" version = "0.24.0" -source = "git+https://github.com/NordSecurity/trust-dns.git?tag=v3.0.1#88204024fd3ecdadccf4574eb7976167e7c52001" +source = "git+https://github.com/NordSecurity/trust-dns.git?tag=v3.0.1#0f95dc69add726ebd2233cb95c3342bc70a2fe2c" dependencies = [ "cfg-if", "futures-util", @@ -1774,7 +1773,7 @@ dependencies = [ [[package]] name = "hickory-server" version = "0.24.0" -source = "git+https://github.com/NordSecurity/trust-dns.git?tag=v3.0.1#88204024fd3ecdadccf4574eb7976167e7c52001" +source = "git+https://github.com/NordSecurity/trust-dns.git?tag=v3.0.1#0f95dc69add726ebd2233cb95c3342bc70a2fe2c" dependencies = [ "async-trait", "bytes", @@ -1826,17 +1825,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http" version = "1.2.0" @@ -1848,17 +1836,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -1866,7 +1843,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.2.0", + "http", ] [[package]] @@ -1877,8 +1854,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.2.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] @@ -1900,30 +1877,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.5.2" @@ -1933,9 +1886,11 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.2.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", + "httpdate", "itoa", "pin-project-lite", "smallvec", @@ -1943,20 +1898,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.32", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - [[package]] name = "hyper-rustls" version = "0.27.5" @@ -1964,15 +1905,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.2.0", - "hyper 1.5.2", + "http", + "hyper", "hyper-util", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-pki-types", "tokio", "tokio-rustls 0.26.1", "tower-service", - "webpki-roots 0.26.7", + "webpki-roots", ] [[package]] @@ -1984,9 +1925,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "hyper 1.5.2", + "http", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -2109,7 +2050,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2141,9 +2082,9 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.12.0" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2a33e9c38988ecbda730c85b0fd9ddcdf83c0305ac7fd21c8bb9f57f2f0cc8" +checksum = "a78a89907582615b19f6f0da1af18abf6ff08be259395669b834b057a7ee92d8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2156,8 +2097,8 @@ source = "git+https://github.com/NordSecurity/rust-igd.git?tag=v0.13.1#4ade34656 dependencies = [ "log", "rand", - "reqwest 0.12.12", - "thiserror 2.0.9", + "reqwest", + "thiserror 2.0.11", "tokio", "url", "xmltree", @@ -2197,11 +2138,11 @@ name = "interderpcli" version = "0.1.0" dependencies = [ "anyhow", - "base64 0.13.1", - "clap 4.5.23", + "base64 0.22.1", + "clap 4.5.26", "crypto_box", "futures", - "itertools", + "itertools 0.14.0", "ring", "serde", "serde_json", @@ -2215,26 +2156,6 @@ dependencies = [ "url", ] -[[package]] -name = "interprocess" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81f2533f3be42fffe3b5e63b71aeca416c1c3bc33e4e27be018521e76b1f38fb" -dependencies = [ - "blocking", - "cfg-if", - "futures-core", - "futures-io", - "intmap", - "libc", - "once_cell", - "rustc_version", - "spinning", - "thiserror 1.0.69", - "to_method", - "winapi", -] - [[package]] name = "interprocess" version = "2.2.2" @@ -2250,12 +2171,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "intmap" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae52f28f45ac2bc96edb7714de995cffc174a395fb0abf5bff453587c980d7b9" - [[package]] name = "ip_network" version = "0.4.1" @@ -2310,6 +2225,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.10.5" @@ -2319,6 +2240,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.14" @@ -2327,16 +2257,18 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jni" -version = "0.19.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if", "combine", "jni-sys", "log", "thiserror 1.0.69", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -2356,9 +2288,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ "once_cell", "wasm-bindgen", @@ -2401,7 +2333,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "libc", ] @@ -2413,9 +2345,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "litemap" @@ -2435,9 +2367,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" dependencies = [ "value-bag", ] @@ -2526,9 +2458,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", ] @@ -2546,14 +2478,13 @@ dependencies = [ [[package]] name = "mockall" -version = "0.11.4" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +checksum = "39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2" dependencies = [ "cfg-if", "downcast", "fragile", - "lazy_static", "mockall_derive", "predicates", "predicates-tree", @@ -2561,14 +2492,14 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.11.4" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.96", ] [[package]] @@ -2580,7 +2511,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2616,9 +2547,9 @@ dependencies = [ [[package]] name = "neli" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1100229e06604150b3becd61a4965d5c70f3be1759544ea7274166f4be41ef43" +checksum = "93062a0dce6da2517ea35f301dfc88184ce18d3601ec786a727a87bf535deca9" dependencies = [ "byteorder", "libc", @@ -2629,9 +2560,9 @@ dependencies = [ [[package]] name = "neli-proc-macros" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c168194d373b1e134786274020dae7fc5513d565ea2ebb9bc9ff17ffb69106d4" +checksum = "0c8034b7fbb6f9455b2a96c19e6edf8dc9fc34c70449938d8ee3b4df363f61fe" dependencies = [ "either", "proc-macro2", @@ -2702,11 +2633,10 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cfg-if", "cfg_aliases 0.1.1", "libc", - "memoffset", ] [[package]] @@ -2715,10 +2645,11 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cfg-if", "cfg_aliases 0.2.1", "libc", + "memoffset", ] [[package]] @@ -2737,12 +2668,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "normalize-line-endings" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" - [[package]] name = "ntapi" version = "0.4.1" @@ -2754,26 +2679,19 @@ dependencies = [ [[package]] name = "ntest" -version = "0.7.5" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c544e496c816f0a59645c0bb69097e453df203954ae2ed4b3ac4251fad69d44" +checksum = "fb183f0a1da7a937f672e5ee7b7edb727bf52b8a52d531374ba8ebb9345c0330" dependencies = [ - "ntest_proc_macro_helper", "ntest_test_cases", "ntest_timeout", ] -[[package]] -name = "ntest_proc_macro_helper" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f52e34b414605b77efc95c3f0ecef01df0c324bcc7f68d9a9cb7a7552777e52" - [[package]] name = "ntest_test_cases" -version = "0.7.5" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99a81eb400abc87063f829560bc5c5c835177703b83d1cd991960db0b2a00abe" +checksum = "16d0d3f2a488592e5368ebbe996e7f1d44aa13156efad201f5b4d84e150eaa93" dependencies = [ "proc-macro2", "quote", @@ -2782,11 +2700,10 @@ dependencies = [ [[package]] name = "ntest_timeout" -version = "0.7.5" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10db009e117aca57cbfb70ac332348f9a89d09ff7204497c283c0f7a0c96323" +checksum = "fcc7c92f190c97f79b4a332f5e81dcf68c8420af2045c936c9be0bc9de6f63b5" dependencies = [ - "ntest_proc_macro_helper", "proc-macro-crate", "proc-macro2", "quote", @@ -2803,31 +2720,12 @@ dependencies = [ "winapi", ] -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - [[package]] name = "num-conv" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -2849,23 +2747,23 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.6.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.6.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2946,19 +2844,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] -name = "os_str_bytes" -version = "6.6.1" +name = "option-ext" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] -name = "output_vt100" -version = "0.1.3" +name = "os_str_bytes" +version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" -dependencies = [ - "winapi", -] +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" [[package]] name = "overload" @@ -3074,15 +2969,36 @@ dependencies = [ ] [[package]] -name = "pnet_macros" -version = "0.34.0" +name = "pnet_base" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc190d4067df16af3aba49b3b74c469e611cad6314676eaf1157f31aa0fb2f7" +dependencies = [ + "no-std-net", +] + +[[package]] +name = "pnet_macros" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "688b17499eee04a0408aca0aa5cba5fc86401d7216de8a63fdf7a4c227871804" dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.95", + "syn 2.0.96", +] + +[[package]] +name = "pnet_macros" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13325ac86ee1a80a480b0bc8e3d30c25d133616112bb16e86f712dcf8a71c863" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "syn 2.0.96", ] [[package]] @@ -3091,7 +3007,16 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eea925b72f4bd37f8eab0f221bbe4c78b63498350c983ffa9dd4bcde7e030f56" dependencies = [ - "pnet_base", + "pnet_base 0.34.0", +] + +[[package]] +name = "pnet_macros_support" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eed67a952585d509dd0003049b1fc56b982ac665c8299b124b90ea2bdb3134ab" +dependencies = [ + "pnet_base 0.35.0", ] [[package]] @@ -3101,9 +3026,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9a005825396b7fe7a38a8e288dbc342d5034dac80c15212436424fef8ea90ba" dependencies = [ "glob", - "pnet_base", - "pnet_macros", - "pnet_macros_support", + "pnet_base 0.34.0", + "pnet_macros 0.34.0", + "pnet_macros_support 0.34.0", +] + +[[package]] +name = "pnet_packet" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c96ebadfab635fcc23036ba30a7d33a80c39e8461b8bd7dc7bb186acb96560f" +dependencies = [ + "glob", + "pnet_base 0.35.0", + "pnet_macros 0.35.0", + "pnet_macros_support 0.35.0", ] [[package]] @@ -3149,9 +3086,9 @@ dependencies = [ [[package]] name = "pqcrypto-internals" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d34bec6abe2283e6de7748b68b292d1ffa2203397e3e71380ff8418a49fb46" +checksum = "62cd8ebf02b43967cda06e6a3f54d0bd9659459c3003d16aeedd07b44c6db06c" dependencies = [ "cc", "dunce", @@ -3180,16 +3117,12 @@ checksum = "94e851c7654eed9e68d7d27164c454961a616cf8c203d500607ef22c737b51bb" [[package]] name = "predicates" -version = "2.1.5" +version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" dependencies = [ - "difflib", - "float-cmp", - "itertools", - "normalize-line-endings", + "anstyle", "predicates-core", - "regex", ] [[package]] @@ -3210,23 +3143,20 @@ dependencies = [ [[package]] name = "pretty_assertions" -version = "0.7.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cab0e7c02cf376875e9335e0ba1da535775beb5450d21e1dffca068818ed98b" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" dependencies = [ - "ansi_term", - "ctor", "diff", - "output_vt100", + "yansi", ] [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "once_cell", "toml_edit", ] @@ -3256,9 +3186,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -3271,7 +3201,7 @@ checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags 2.8.0", "lazy_static", "num-traits", "rand", @@ -3291,7 +3221,7 @@ checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -3335,10 +3265,10 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.1.0", - "rustls 0.23.20", + "rustc-hash", + "rustls 0.23.21", "socket2", - "thiserror 2.0.9", + "thiserror 2.0.11", "tokio", "tracing", ] @@ -3353,11 +3283,11 @@ dependencies = [ "getrandom", "rand", "ring", - "rustc-hash 2.1.0", - "rustls 0.23.20", + "rustc-hash", + "rustls 0.23.21", "rustls-pki-types", "slab", - "thiserror 2.0.9", + "thiserror 2.0.11", "tinyvec", "tracing", "web-time", @@ -3467,7 +3397,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", ] [[package]] @@ -3481,6 +3411,17 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "redox_users" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +dependencies = [ + "getrandom", + "libredox", + "thiserror 2.0.11", +] + [[package]] name = "regex" version = "1.11.1" @@ -3489,16 +3430,10 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", + "regex-automata", "regex-syntax", ] -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" - [[package]] name = "regex-automata" version = "0.4.9" @@ -3517,45 +3452,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] -name = "reqwest" -version = "0.11.27" +name = "relative-path" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "hyper-rustls 0.24.2", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.25.4", - "winreg", -] +checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "reqwest" @@ -3568,11 +3468,11 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "http 1.2.0", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", - "hyper 1.5.2", - "hyper-rustls 0.27.5", + "hyper", + "hyper-rustls", "hyper-util", "ipnet", "js-sys", @@ -3582,13 +3482,13 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.20", - "rustls-pemfile 2.2.0", + "rustls 0.23.21", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tokio-rustls 0.26.1", "tower", @@ -3597,7 +3497,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.26.7", + "webpki-roots", "windows-registry", ] @@ -3628,15 +3528,32 @@ dependencies = [ [[package]] name = "rstest" -version = "0.11.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2288c66aeafe3b2ed227c981f364f9968fa952ef0b30e84ada4486e7ee24d00a" +checksum = "03e905296805ab93e13c1ec3a03f4b6c4f35e9498a3d5fa96dc626d22c03cd89" +dependencies = [ + "futures-timer", + "futures-util", + "rstest_macros", + "rustc_version", +] + +[[package]] +name = "rstest_macros" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef0053bbffce09062bee4bcc499b0fbe7a57b879f1efe088d6d8d4c7adcdef9b" dependencies = [ "cfg-if", + "glob", + "proc-macro-crate", "proc-macro2", "quote", + "regex", + "relative-path", "rustc_version", - "syn 1.0.109", + "syn 2.0.96", + "unicode-ident", ] [[package]] @@ -3650,8 +3567,8 @@ dependencies = [ "futures-util", "log", "rustls-native-certs 0.7.3", - "rustls-pemfile 2.2.0", - "rustls-webpki 0.102.8", + "rustls-pemfile", + "rustls-webpki", "thiserror 1.0.69", "tokio", "tokio-rustls 0.25.0", @@ -3663,7 +3580,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f429f64b3929e733331d856e47ac00afb9dd8cda39f0a740c5622c886754acfa" dependencies = [ - "http 1.2.0", + "http", ] [[package]] @@ -3672,12 +3589,6 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - [[package]] name = "rustc-hash" version = "2.1.0" @@ -3695,29 +3606,17 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.42" +version = "0.38.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" +checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys", "windows-sys 0.59.0", ] -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - [[package]] name = "rustls" version = "0.22.4" @@ -3727,21 +3626,21 @@ dependencies = [ "log", "ring", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls" -version = "0.23.20" +version = "0.23.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" +checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki", "subtle", "zeroize", ] @@ -3753,7 +3652,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", - "rustls-pemfile 2.2.0", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework 2.11.1", @@ -3768,16 +3667,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.1.0", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", + "security-framework 3.2.0", ] [[package]] @@ -3800,23 +3690,23 @@ dependencies = [ [[package]] name = "rustls-platform-verifier" -version = "0.3.4" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" +checksum = "e012c45844a1790332c9386ed4ca3a06def221092eda277e6f079728f8ea99da" dependencies = [ - "core-foundation 0.9.4", + "core-foundation 0.10.0", "core-foundation-sys 0.8.7", "jni", "log", "once_cell", - "rustls 0.23.20", - "rustls-native-certs 0.7.3", + "rustls 0.23.21", + "rustls-native-certs 0.8.1", "rustls-platform-verifier-android", - "rustls-webpki 0.102.8", - "security-framework 2.11.1", + "rustls-webpki", + "security-framework 3.2.0", "security-framework-sys", - "webpki-roots 0.26.7", - "winapi", + "webpki-root-certs", + "windows-sys 0.52.0", ] [[package]] @@ -3825,16 +3715,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "rustls-webpki" version = "0.102.8" @@ -3952,17 +3832,7 @@ checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", -] - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", + "syn 2.0.96", ] [[package]] @@ -3977,21 +3847,20 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation 0.9.4", "core-foundation-sys 0.8.7", "libc", - "num-bigint", "security-framework-sys", ] [[package]] name = "security-framework" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation 0.10.0", "core-foundation-sys 0.8.7", "libc", @@ -4000,9 +3869,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys 0.8.7", "libc", @@ -4034,7 +3903,7 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -4081,20 +3950,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.95", -] - -[[package]] -name = "serial_test" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eec42e7232e5ca56aa59d63af3c7f991fe71ee6a3ddd2d3480834cf3902b007" -dependencies = [ - "futures", - "lazy_static", - "log", - "parking_lot", - "serial_test_derive 0.8.0", + "syn 2.0.96", ] [[package]] @@ -4108,20 +3964,7 @@ dependencies = [ "once_cell", "parking_lot", "scc", - "serial_test_derive 3.2.0", -] - -[[package]] -name = "serial_test_derive" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b95bb2f4f624565e8fe8140c789af7e2082c0e0561b5a82a1b678baa9703dc" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", + "serial_test_derive", ] [[package]] @@ -4132,7 +3975,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -4303,7 +4146,7 @@ checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -4337,15 +4180,6 @@ dependencies = [ "lock_api", ] -[[package]] -name = "spinning" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d4f0e86297cad2658d92a707320d87bf4e6ae1050287f51d19b67ef3f153a7b" -dependencies = [ - "lock_api", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -4378,24 +4212,11 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.24.1" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ - "strum_macros 0.24.3", -] - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", + "strum_macros", ] [[package]] @@ -4408,7 +4229,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -4453,7 +4274,7 @@ checksum = "efbf95ce4c7c5b311d2ce3f088af2b93edef0f09727fa50fbe03c7a979afce77" dependencies = [ "hex", "parking_lot", - "pnet_packet", + "pnet_packet 0.34.0", "rand", "socket2", "thiserror 1.0.69", @@ -4474,21 +4295,15 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.95" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -4506,33 +4321,21 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] name = "sysinfo" -version = "0.30.13" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +checksum = "4fc858248ea01b66f19d8e8a6d55f41deaf91e9d495246fd01368d99935c6c01" dependencies = [ - "cfg-if", "core-foundation-sys 0.8.7", "libc", + "memchr", "ntapi", - "once_cell", "rayon", - "windows 0.52.0", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "system-configuration-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "windows 0.57.0", ] [[package]] @@ -4542,17 +4345,7 @@ source = "git+https://github.com/NordSecurity/system-configuration-rs.git#39f80c dependencies = [ "bitflags 1.3.2", "core-foundation 0.9.4", - "system-configuration-sys 0.5.0 (git+https://github.com/NordSecurity/system-configuration-rs.git)", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys 0.8.7", - "libc", + "system-configuration-sys", ] [[package]] @@ -4581,19 +4374,19 @@ name = "tcli" version = "0.1.0" dependencies = [ "anyhow", - "base64 0.13.1", + "base64 0.22.1", "clap 3.2.25", "crypto_box", "daemonize", "dirs", "futures", "hex", - "interprocess 1.2.1", + "interprocess", "ipnet", "parking_lot", "rand", "regex", - "reqwest 0.11.27", + "reqwest", "rustyline", "serde", "serde_json", @@ -4611,7 +4404,7 @@ dependencies = [ "telio-traversal", "telio-utils", "telio-wg", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", "tokio", "tracing", @@ -4625,7 +4418,7 @@ version = "5.2.0" dependencies = [ "anyhow", "async-trait", - "base64 0.13.1", + "base64 0.22.1", "cc", "cfg-if", "crypto_box", @@ -4648,7 +4441,7 @@ dependencies = [ "rand", "regex", "rstest", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-platform-verifier", "serde", "serde_json", @@ -4675,7 +4468,7 @@ dependencies = [ "telio-traversal", "telio-utils", "telio-wg", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", "tokio", "tracing", @@ -4691,7 +4484,7 @@ name = "telio-crypto" version = "0.1.0" dependencies = [ "aead", - "base64 0.13.1", + "base64 0.22.1", "bstr", "chacha20", "chacha20poly1305", @@ -4702,7 +4495,7 @@ dependencies = [ "serde", "serde_with", "telio-utils", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", "zeroize", ] @@ -4712,7 +4505,7 @@ name = "telio-dns" version = "0.1.0" dependencies = [ "async-trait", - "base64 0.13.1", + "base64 0.22.1", "dns-parser", "hickory-server", "ipnet", @@ -4720,7 +4513,7 @@ dependencies = [ "libc", "mockall", "neptun", - "pnet_packet", + "pnet_packet 0.35.0", "rand", "telio-crypto", "telio-model", @@ -4741,11 +4534,11 @@ dependencies = [ "if-addrs", "ipnet", "mockall", - "pnet_packet", + "pnet_packet 0.35.0", "proptest", "proptest-derive", "rand", - "rustc-hash 1.1.0", + "rustc-hash", "sn_fake_clock", "telio-crypto", "telio-model", @@ -4762,9 +4555,9 @@ dependencies = [ "cargo-platform", "serde", "serde_json", - "serial_test 0.8.0", + "serial_test", "telio-utils", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", "tracing", ] @@ -4774,7 +4567,7 @@ name = "telio-model" version = "0.1.0" dependencies = [ "ipnet", - "itertools", + "itertools 0.14.0", "modifier", "num_enum", "once_cell", @@ -4783,10 +4576,10 @@ dependencies = [ "serde_json", "smart-default", "strum", - "strum_macros 0.26.4", + "strum_macros", "telio-crypto", "telio-utils", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", ] @@ -4810,16 +4603,16 @@ dependencies = [ "ipnet", "lazy_static", "mockall", - "neli 0.6.4", + "neli 0.6.5", "network-framework-sys", "once_cell", "parking_lot", - "serial_test 3.2.0", + "serial_test", "telio-utils", "tokio", "tracing", "winapi", - "windows 0.34.0", + "windows 0.59.0", ] [[package]] @@ -4827,7 +4620,7 @@ name = "telio-nurse" version = "0.1.0" dependencies = [ "async-trait", - "bitflags 1.3.2", + "bitflags 2.8.0", "crypto_box", "csv", "futures", @@ -4853,7 +4646,7 @@ dependencies = [ "telio-task", "telio-utils", "telio-wg", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", "uuid", @@ -4864,7 +4657,7 @@ name = "telio-pmtu" version = "0.1.0" dependencies = [ "libc", - "pnet_packet", + "pnet_packet 0.35.0", "rand", "socket2", "telio-lana", @@ -4879,13 +4672,13 @@ dependencies = [ name = "telio-pq" version = "0.1.0" dependencies = [ - "base64 0.13.1", + "base64 0.22.1", "blake2", "hmac", "mockall", "neptun", "parking_lot", - "pnet_packet", + "pnet_packet 0.35.0", "pqcrypto-kyber", "pqcrypto-traits", "rand", @@ -4895,7 +4688,7 @@ dependencies = [ "telio-sockets", "telio-task", "telio-utils", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", "x25519-dalek", @@ -4912,7 +4705,7 @@ dependencies = [ "telio-crypto", "telio-model", "telio-utils", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", ] @@ -4933,7 +4726,7 @@ dependencies = [ "telio-task", "telio-test", "telio-utils", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", ] @@ -4948,10 +4741,11 @@ dependencies = [ "crypto_box", "env_logger", "futures", - "generic-array", "hex", + "http-body-util", "httparse", - "hyper 0.14.32", + "hyper", + "hyper-util", "libc", "mockall_double", "ntest", @@ -4972,14 +4766,14 @@ dependencies = [ "telio-task", "telio-test", "telio-utils", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tokio-rustls 0.26.1", "tokio-stream", "tokio-util", "tracing", "url", - "webpki-roots 0.26.7", + "webpki-roots", ] [[package]] @@ -4994,21 +4788,21 @@ dependencies = [ "mockall", "neptun", "network-framework-sys", - "nix 0.28.0", + "nix 0.29.0", "objc", "objc-foundation", "once_cell", "parking_lot", "rstest", "socket2", - "system-configuration 0.5.1 (git+https://github.com/NordSecurity/system-configuration-rs.git)", + "system-configuration", "telio-utils", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", "version-compare", "winapi", - "windows 0.56.0", + "windows 0.59.0", ] [[package]] @@ -5016,11 +4810,11 @@ name = "telio-starcast" version = "0.1.0" dependencies = [ "async-trait", - "base64 0.13.1", + "base64 0.22.1", "futures", "ipnet", "neptun", - "pnet_packet", + "pnet_packet 0.35.0", "rand", "rstest", "sn_fake_clock", @@ -5032,7 +4826,7 @@ dependencies = [ "telio-test", "telio-utils", "telio-wg", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", "x25519-dalek", @@ -5045,7 +4839,7 @@ dependencies = [ "async-trait", "futures", "telio-utils", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", ] @@ -5059,7 +4853,7 @@ name = "telio-traversal" version = "0.1.0" dependencies = [ "async-trait", - "base64 0.13.1", + "base64 0.22.1", "bytecodec", "enum-map", "env_logger", @@ -5089,7 +4883,7 @@ dependencies = [ "telio-test", "telio-utils", "telio-wg", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", ] @@ -5111,14 +4905,14 @@ dependencies = [ "proptest-derive", "rand", "regex", - "rustc-hash 1.1.0", + "rustc-hash", "serde", "smart-default", "sn_fake_clock", "socket2", "surge-ping", "telio-test", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", ] @@ -5132,7 +4926,7 @@ dependencies = [ "futures", "hex", "ipnet", - "itertools", + "itertools 0.14.0", "lazy_static", "libc", "mockall", @@ -5155,12 +4949,12 @@ dependencies = [ "telio-task", "telio-test", "telio-utils", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", "wg-go-rust-wrapper", "winapi", - "windows 0.56.0", + "windows 0.59.0", "wireguard-nt", "wireguard-uapi", ] @@ -5175,24 +4969,23 @@ dependencies = [ "const_format", "dirs", "futures", - "interprocess 2.2.2", - "nix 0.28.0", + "interprocess", + "nix 0.29.0", "rand", "regex", - "reqwest 0.12.12", + "reqwest", "rumqttc", "rust-cgi", "rustls-native-certs 0.8.1", "serde", "serde_json", - "serial_test 3.2.0", + "serial_test", "signal-hook", "signal-hook-tokio", "smart-default", "telio", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", - "tokio-rustls 0.25.0", "tracing", "tracing-appender", "tracing-subscriber", @@ -5261,11 +5054,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.9" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ - "thiserror-impl 2.0.9", + "thiserror-impl 2.0.11", ] [[package]] @@ -5276,18 +5069,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] name = "thiserror-impl" -version = "2.0.9" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -5368,17 +5161,11 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -[[package]] -name = "to_method" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c4ceeeca15c8384bbc3e011dbd8fccb7f068a440b752b7d9b32ceb0ca0e2e8" - [[package]] name = "tokio" -version = "1.42.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", @@ -5394,23 +5181,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", + "syn 2.0.96", ] [[package]] @@ -5430,7 +5207,7 @@ version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.20", + "rustls 0.23.21", "tokio", ] @@ -5475,9 +5252,9 @@ checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.7.0", "toml_datetime", @@ -5493,7 +5270,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tower-layer", "tower-service", @@ -5542,7 +5319,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -5714,7 +5491,7 @@ version = "0.3.1+v0.25.0" source = "git+https://github.com/NordSecurity/uniffi-rs.git?tag=v0.3.1+v0.25.0#1a5dc527165589456c3d7233107917e065192b03" dependencies = [ "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -5744,7 +5521,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.95", + "syn 2.0.96", "toml", "uniffi_build", "uniffi_meta", @@ -5832,9 +5609,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "744018581f9a3454a9e15beb8a33b017183f1e7c0cd170232a2d1453b23a51c4" dependencies = [ "getrandom", "serde", @@ -5854,9 +5631,9 @@ checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" [[package]] name = "version-compare" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" [[package]] name = "version_check" @@ -5900,34 +5677,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.49" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", @@ -5938,9 +5716,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5948,28 +5726,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "web-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -5986,10 +5767,13 @@ dependencies = [ ] [[package]] -name = "webpki-roots" -version = "0.25.4" +name = "webpki-root-certs" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +checksum = "9cd5da49bdf1f30054cfe0b8ce2958b8fbeb67c4d82c8967a598af481bef255c" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "webpki-roots" @@ -6061,78 +5845,91 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.34.0" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45296b64204227616fdbf2614cefa4c236b98ee64dfaaaa435207ed99fe7829f" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" dependencies = [ - "windows_aarch64_msvc 0.34.0", - "windows_i686_gnu 0.34.0", - "windows_i686_msvc 0.34.0", - "windows_x86_64_gnu 0.34.0", - "windows_x86_64_msvc 0.34.0", + "windows-core 0.57.0", + "windows-targets 0.52.6", ] [[package]] name = "windows" -version = "0.52.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +checksum = "7f919aee0a93304be7f62e8e5027811bbba96bcb1de84d6618be56e43f8a32a1" dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.6", + "windows-core 0.59.0", + "windows-targets 0.53.0", ] [[package]] -name = "windows" -version = "0.56.0" +name = "windows-core" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" dependencies = [ - "windows-core 0.56.0", + "windows-implement 0.57.0", + "windows-interface 0.57.0", + "windows-result 0.1.2", "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.52.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "810ce18ed2112484b0d4e15d022e5f598113e220c53e373fb31e67e21670c1ce" dependencies = [ - "windows-targets 0.52.6", + "windows-implement 0.59.0", + "windows-interface 0.59.0", + "windows-result 0.3.0", + "windows-strings 0.3.0", + "windows-targets 0.53.0", ] [[package]] -name = "windows-core" -version = "0.56.0" +name = "windows-implement" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ - "windows-implement", - "windows-interface", - "windows-result 0.1.2", - "windows-targets 0.52.6", + "proc-macro2", + "quote", + "syn 2.0.96", ] [[package]] name = "windows-implement" -version = "0.56.0" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "windows-interface" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] name = "windows-interface" -version = "0.56.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" +checksum = "cb26fd936d991781ea39e87c3a27285081e3c0da5ca0fcbc02d368cc6f52ff01" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -6142,7 +5939,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ "windows-result 0.2.0", - "windows-strings", + "windows-strings 0.1.0", "windows-targets 0.52.6", ] @@ -6164,6 +5961,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-result" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d08106ce80268c4067c0571ca55a9b4e9516518eaa1a1fe9b37ca403ae1d1a34" +dependencies = [ + "windows-targets 0.53.0", +] + [[package]] name = "windows-strings" version = "0.1.0" @@ -6174,6 +5980,24 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-strings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b888f919960b42ea4e11c2f408fadb55f78a9f236d5eef084103c8ce52893491" +dependencies = [ + "windows-targets 0.53.0", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -6201,6 +6025,21 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -6225,13 +6064,35 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -6244,11 +6105,17 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" -version = "0.34.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" @@ -6262,11 +6129,17 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" -version = "0.34.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" @@ -6280,17 +6153,29 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" -version = "0.34.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" @@ -6304,11 +6189,17 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" -version = "0.34.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" @@ -6322,6 +6213,18 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -6334,11 +6237,17 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" -version = "0.34.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" @@ -6352,11 +6261,17 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" -version = "0.5.40" +version = "0.6.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" dependencies = [ "memchr", ] @@ -6435,9 +6350,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.24" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea8b391c9a790b496184c29f7f93b9ed5b16abb306c05415b68bcc16e4d06432" +checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" [[package]] name = "xmltree" @@ -6448,6 +6363,12 @@ dependencies = [ "xml-rs", ] +[[package]] +name = "yansi" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + [[package]] name = "yoke" version = "0.7.5" @@ -6468,7 +6389,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", "synstructure", ] @@ -6490,7 +6411,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -6510,7 +6431,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", "synstructure", ] @@ -6531,7 +6452,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -6553,5 +6474,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] diff --git a/Cargo.toml b/Cargo.toml index 06d80b0dd..e05f83f14 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,7 +65,7 @@ smart-default.workspace = true time.workspace = true [target.'cfg(target_os = "android")'.dependencies] -jni = "0.19" +jni = "0.21" rustls-platform-verifier.workspace = true [target.'cfg(windows)'.dependencies] @@ -113,44 +113,44 @@ exclude = [ [workspace.dependencies] anyhow = "1" -async-trait = "0.1.51" -base64 = "0.13.0" +async-trait = "0.1" +base64 = "0.22" bytes = "1" -cc = "1.0" +cc = "1" clap = { version = "3.1", features = ["derive"] } crypto_box = { version = "0.9.1", features = ["std"] } -env_logger = "0.9.0" +env_logger = "0.11" futures = "0.3.31" -hashlink = "0.8.3" +hashlink = "0.10" hex = "0.4.3" -httparse = "1.8.0" -if-addrs = "0.12.0" +httparse = "1.8" +if-addrs = "0.13" ipnet = { version = "2.3", features = ["serde"] } -itertools = "0.10" -lazy_static = "1.4.0" -libc = "0.2.112" -tracing = { version = "0.1.37", features = ["max_level_trace", "release_max_level_debug"] } +itertools = "0.14" +lazy_static = "1.4" +libc = "0.2" +tracing = { version = "0.1", features = ["max_level_trace", "release_max_level_debug"] } maplit = "1" -mockall = "0.11.3" +mockall = "0.13" mockall_double = "0.3.1" modifier = "0.1.0" nat-detect = { git = "https://github.com/NordSecurity/nat-detect.git", tag = "v0.1.8" } -ntest = "0.7" -num_cpus = "1.15.0" -num_enum = "0.6.1" +ntest = "0.9" +num_cpus = "1" +num_enum = "0.7" once_cell = "1" parking_lot = "0.12" -pnet_packet = "0.34.0" -pretty_assertions = "0.7.2" -proptest = "1.2.0" +pnet_packet = "0.35" +pretty_assertions = "1" +proptest = "1.2" proptest-derive = "0.5" protobuf-codegen-pure = "2" rand = "0.8" -regex = "1.5.5" -rstest = "0.11.0" -rustc-hash = "1" -rustls = { version = "0.23.16", default-features = false, features = ["ring", "std"] } -rustls-platform-verifier = "0.3.4" +regex = "1.5" +rstest = "0.24.0" +rustc-hash = "2" +rustls = { version = "0.23", default-features = false, features = ["ring", "std"] } +rustls-platform-verifier = "0.5" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" sha2 = "0.10.6" @@ -158,18 +158,18 @@ slog = "2.7" smart-default = "0.7.1" sn_fake_clock = "0.4" socket2 = "0.5" -strum = { version = "0.24.0", features = ["derive"] } -surge-ping = { version = "0.8.0" } -thiserror = "1.0" -time = { version = "0.3.20", features = ["formatting"] } +strum = { version = "0.26", features = ["derive"] } +surge-ping = { version = "0.8" } +thiserror = "2" +time = { version = "0.3", features = ["formatting"] } tokio = ">=1.22" -tracing-subscriber = { version = "0.3.17", features = ["local-time"] } -tracing-appender = "0.2.3" +tracing-subscriber = { version = "0.3", features = ["local-time"] } +tracing-appender = "0.2" uniffi = { git = "https://github.com/NordSecurity/uniffi-rs.git", tag = "v0.3.1+v0.25.0" } -url = "2.2.2" -uuid = { version = "1.1.2", features = ["v4"] } +url = "2.5" +uuid = { version = "1.1", features = ["v4"] } winapi = { version = "0.3", features = ["netioapi", "ws2def"] } -windows = { version = "0.56", features = [ +windows = { version = "0.59", features = [ "Win32_Networking_WinSock", "Win32_NetworkManagement_IpHelper", ] } diff --git a/clis/derpcli/src/conf.rs b/clis/derpcli/src/conf.rs index 9ef5f545f..0e4ea1207 100644 --- a/clis/derpcli/src/conf.rs +++ b/clis/derpcli/src/conf.rs @@ -1,4 +1,5 @@ use anyhow::anyhow; +use base64::prelude::*; use clap::{Arg, Command}; use crypto_box::PublicKey as BoxPublicKey; use serde::Deserialize; @@ -108,10 +109,10 @@ impl Config { BoxPublicKey::from(&self.get_key2()) } pub fn get_pub_key1_b64(&self) -> String { - base64::encode(self.get_pub_key1().as_bytes()) + BASE64_STANDARD.encode(self.get_pub_key1().as_bytes()) } pub fn get_pub_key2_b64(&self) -> String { - base64::encode(self.get_pub_key2().as_bytes()) + BASE64_STANDARD.encode(self.get_pub_key2().as_bytes()) } pub fn get_server_address(&self) -> &str { &self.server @@ -288,7 +289,7 @@ impl Config { // check if my private key is given as param if mykey_str.chars().count() > 0 { - let mykey_bytes = base64::decode(mykey_str).unwrap_or_default(); + let mykey_bytes = BASE64_STANDARD.decode(mykey_str).unwrap_or_default(); if mykey_bytes.len() != 32 { return Err(anyhow!( "My private key size must be 32 bytes encoded into base64!", @@ -302,7 +303,7 @@ impl Config { } if targetkey_str.chars().count() > 0 { - let tkey_bytes = base64::decode(targetkey_str).unwrap_or_default(); + let tkey_bytes = BASE64_STANDARD.decode(targetkey_str).unwrap_or_default(); if tkey_bytes.len() != 32 { return Err(anyhow!( "Target private key size must be 32 bytes encoded into base64!", diff --git a/clis/derpcli/src/main.rs b/clis/derpcli/src/main.rs index 7c8b41c42..2f1ac2110 100644 --- a/clis/derpcli/src/main.rs +++ b/clis/derpcli/src/main.rs @@ -68,6 +68,7 @@ mod metrics; use anyhow::{anyhow, bail, Result}; use atomic_counter::{AtomicCounter, RelaxedCounter}; +use base64::prelude::*; use conf::StressConfig; use metrics::Metrics; use rand::{thread_rng, Rng}; @@ -379,7 +380,7 @@ async fn run_without_clients_config(config: conf::Config) -> Result<()> { v if v > 1 => { println!( "RECEIVED: [{}] / [{}]", - base64::encode(public_key), + BASE64_STANDARD.encode(public_key), String::from_utf8_lossy(&data) ) } diff --git a/clis/interderpcli/Cargo.toml b/clis/interderpcli/Cargo.toml index a14055f61..9cb914d84 100644 --- a/clis/interderpcli/Cargo.toml +++ b/clis/interderpcli/Cargo.toml @@ -7,7 +7,7 @@ license = "GPL-3.0-only" repository = "https://github.com/NordSecurity/libtelio" [dependencies] -clap = { version = "4.3.3", features = ["std", "derive"], default-features = false } +clap = { version = "4.5.26", features = ["std", "derive"], default-features = false } ring = { default-features = false, version = "0.17.5" } anyhow.workspace = true diff --git a/clis/tcli/Cargo.toml b/clis/tcli/Cargo.toml index 6e5d4b7e8..b7be97b11 100644 --- a/clis/tcli/Cargo.toml +++ b/clis/tcli/Cargo.toml @@ -10,20 +10,16 @@ default-run = "tcli" tclid = ["sysinfo", "interprocess", "daemonize"] [dependencies] -dirs = "4.0.0" -reqwest = { version = "0.11.16", default-features = false, features = [ - "json", - "blocking", - "rustls-tls", -] } +dirs = "6.0.0" +reqwest = { version = "0.12.12", default-features = false, features = ["json", "blocking", "rustls-tls"] } rustyline = "11.0.0" shellwords = "1.1.0" # Used only for checking if the daemon is running. -sysinfo = { version = "0.30.11", optional = true } +sysinfo = { version = "0.33.1", optional = true } # Used as a lightweight and safe (because a TCP server has the risk of remote code execution) # way for the API and daemon to communicate. # Tokio support is needed, because the daemon runs on the async runtime. -interprocess = { version = "1.2.1", optional = true } +interprocess = { version = "2.2.2", optional = true } anyhow.workspace = true base64.workspace = true diff --git a/clis/tcli/src/bin/tclid/coms.rs b/clis/tcli/src/bin/tclid/coms.rs index 44ae84cf5..70ba10f02 100644 --- a/clis/tcli/src/bin/tclid/coms.rs +++ b/clis/tcli/src/bin/tclid/coms.rs @@ -7,8 +7,9 @@ use std::{ }; use anyhow::Result; -use interprocess::local_socket::{LocalSocketListener, LocalSocketStream}; - +use interprocess::local_socket::prelude::*; +use interprocess::local_socket::ListenerOptions; +use interprocess::os::unix::local_socket::FilesystemUdSocket; /// Struct for handling connections of the TCLID daemon's side of the IPC communication with the API. pub struct DaemonSocket { /// The inner socket over which the actual communication is happening. @@ -29,8 +30,9 @@ impl DaemonSocket { pub fn new(ipc_socket_path: &Path) -> Result { // Delete the socket file if it already exists let _ = fs::remove_file(ipc_socket_path); - let socket = LocalSocketListener::bind(ipc_socket_path)?; - + let socket = ListenerOptions::new() + .name(ipc_socket_path.to_fs_name::()?) + .create_sync()?; Ok(Self { socket }) } @@ -64,7 +66,7 @@ impl DaemonSocket { /// A Result containing a response string. pub fn send_command(addr: &Path, cmd: &str) -> Result { let mut response_buffer = String::new(); - let mut stream = LocalSocketStream::connect(addr)?; + let mut stream = LocalSocketStream::connect(addr.to_fs_name::()?)?; writeln!(stream, "{}", cmd)?; stream.read_to_string(&mut response_buffer)?; diff --git a/clis/tcli/src/bin/tclid/daemon.rs b/clis/tcli/src/bin/tclid/daemon.rs index cec50b0e1..9f6fc691c 100644 --- a/clis/tcli/src/bin/tclid/daemon.rs +++ b/clis/tcli/src/bin/tclid/daemon.rs @@ -30,7 +30,7 @@ impl Daemon { /// Result containing a bool. True means that the daemon is running. pub fn is_running() -> Result { let system = System::new_with_specifics( - RefreshKind::new().with_processes(ProcessRefreshKind::everything()), + RefreshKind::nothing().with_processes(ProcessRefreshKind::everything()), ); match std::fs::read_to_string(get_wd_path()?.join("tclid.pid")) { diff --git a/clis/teliod/Cargo.toml b/clis/teliod/Cargo.toml index b793ab955..b62af1d91 100644 --- a/clis/teliod/Cargo.toml +++ b/clis/teliod/Cargo.toml @@ -14,9 +14,9 @@ tracing-subscriber.workspace = true # Used as a lightweight and safe (because a TCP server has the risk of remote code execution) # way for the API and daemon to communicate. # Tokio support is needed, because the daemon runs on the async runtime. -interprocess = { version = "2.2.1", features = ["tokio"] } +interprocess = { version = "2.2.2", features = ["tokio"] } -nix = { version = "0.28.0", features = ["signal"] } +nix = { version = "0.29.0", features = ["signal"] } telio = { path = "../.." } tokio.workspace = true @@ -25,15 +25,14 @@ signal-hook-tokio = { version = "0.3.1", features = ["futures-v0_3"]} futures.workspace = true thiserror.workspace = true regex.workspace = true -reqwest = { version = "0.12.8", default-features = false, features = ["json", "rustls-tls"] } +reqwest = { version = "0.12.12", default-features = false, features = ["json", "rustls-tls"] } uuid = { workspace = true, features = ["serde"] } rumqttc = "0.24.0" -tokio-rustls = "0.25.0" # This version needs to be the same as the one used by the rumqttc rustls-native-certs = "0.8" anyhow.workspace = true smart-default = "0.7.1" base64 = "0.22.1" -dirs = "4.0.0" +dirs = "6.0.0" const_format = { version = "0.2.33", optional = true } rust-cgi = { version = "0.7.1", optional = true } diff --git a/clis/teliod/src/nc.rs b/clis/teliod/src/nc.rs index 85d89205c..c2426860c 100644 --- a/clis/teliod/src/nc.rs +++ b/clis/teliod/src/nc.rs @@ -1,6 +1,10 @@ use anyhow::ensure; use reqwest::{Certificate, ClientBuilder, StatusCode, Url}; use rumqttc::{ + tokio_rustls::rustls::{ + pki_types::{pem::PemObject, CertificateDer}, + ClientConfig, + }, AsyncClient, ClientError, ConnAck, ConnectReturnCode, Event, EventLoop, MqttOptions, Packet, Publish, QoS, TlsConfiguration, Transport, }; @@ -17,10 +21,6 @@ use tokio::{ sync::Mutex, time::{error::Elapsed, timeout, Instant}, }; -use tokio_rustls::rustls::{ - pki_types::{pem::PemObject, CertificateDer}, - ClientConfig, -}; use tracing::{debug, error, info, warn}; use uuid::Uuid; @@ -66,7 +66,7 @@ pub enum Error { #[error("Failed to read mqtt cert file: {0}")] FailedToReadMqttCertFile(std::io::Error), #[error("Failed to parse mqtt pem certificate: {0:?}")] - FailedToParseMqttCertificate(tokio_rustls::rustls::pki_types::pem::Error), + FailedToParseMqttCertificate(rumqttc::tokio_rustls::rustls::pki_types::pem::Error), #[error("Failed to load native certs: {0:?}")] FailedToLoadNativeCerts(Vec), } @@ -187,7 +187,7 @@ async fn connect_to_nc(nc_config: &NCConfig) -> Result<(AsyncClient, EventLoop, mqttoptions.set_clean_session(true); // Use rustls-native-certs to load root certificates from the operating system. - let mut root_cert_store = tokio_rustls::rustls::RootCertStore::empty(); + let mut root_cert_store = rumqttc::tokio_rustls::rustls::RootCertStore::empty(); if let Some(cert_path) = &nc_config.mqtt.certificate_file_path { debug!("Using custom mqtt cert file from {cert_path:?}"); diff --git a/crates/telio-crypto/Cargo.toml b/crates/telio-crypto/Cargo.toml index d52446d5d..175af89aa 100644 --- a/crates/telio-crypto/Cargo.toml +++ b/crates/telio-crypto/Cargo.toml @@ -25,4 +25,4 @@ thiserror.workspace = true telio-utils.workspace = true [dev-dependencies] -bstr = "0.2" +bstr = "1.11" diff --git a/crates/telio-crypto/src/lib.rs b/crates/telio-crypto/src/lib.rs index 41c5928f1..51d94037d 100644 --- a/crates/telio-crypto/src/lib.rs +++ b/crates/telio-crypto/src/lib.rs @@ -25,6 +25,7 @@ pub mod encryption; use std::{cmp::Ordering, convert::TryInto, fmt}; +use base64::prelude::*; use rand::prelude::*; use serde::{Deserialize, Serialize}; use serde_with::{DeserializeFromStr, SerializeDisplay}; @@ -59,7 +60,7 @@ pub struct PublicKey(pub [u8; KEY_SIZE]); impl fmt::Display for PublicKey { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let mut buf = [0u8; 44]; - base64::encode_config_slice(self.0, base64::STANDARD, &mut buf); + let _ = BASE64_STANDARD.encode_slice(self.0, &mut buf); match std::str::from_utf8(&buf) { Ok(buf) => f.write_str(buf), Err(_) => Err(fmt::Error), @@ -69,7 +70,7 @@ impl fmt::Display for PublicKey { impl fmt::Debug for PublicKey { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let buf = base64::encode(self.0); + let buf = BASE64_STANDARD.encode(self.0); f.write_str(&format!( "\"{:.*}...{}\"", 4, @@ -119,7 +120,7 @@ pub enum KeyDecodeError { InvalidLength(usize), /// String was not valid for base64 decoding. #[error(transparent)] - Base64(#[from] base64::DecodeError), + Base64(#[from] base64::DecodeSliceError), /// String was not valid for hex decoding. #[error(transparent)] Hex(#[from] hex::FromHexError), @@ -313,7 +314,7 @@ macro_rules! gen_common { match s.len() { 64 => { hex::decode_to_slice(s, &mut key)? } - 44 => { base64::decode_config_slice(s, base64::STANDARD, &mut key)?; } + 44 => { BASE64_STANDARD.decode_slice(s, &mut key)?; } l => return Err(KeyDecodeError::InvalidLength(l)), } diff --git a/crates/telio-firewall/src/firewall.rs b/crates/telio-firewall/src/firewall.rs index 1103f48ad..c3a4224a8 100644 --- a/crates/telio-firewall/src/firewall.rs +++ b/crates/telio-firewall/src/firewall.rs @@ -3170,7 +3170,8 @@ pub mod tests { name: "eth0".to_string(), addr: IfAddr::V4(Ifv4Addr { ip: Ipv4Addr::new(192, 168, 1, 10), - netmask: Ipv4Addr::new(192, 168, 1, 0), + netmask: Ipv4Addr::new(255, 0, 0, 0), + prefixlen: 8, broadcast: None, }), index: Some(12), diff --git a/crates/telio-lana/Cargo.toml b/crates/telio-lana/Cargo.toml index 1e54b46c1..db622fb26 100644 --- a/crates/telio-lana/Cargo.toml +++ b/crates/telio-lana/Cargo.toml @@ -20,7 +20,7 @@ cargo-platform = { version = "=0.1.7", optional = true } # moose v5.0.0 require telio-utils.workspace = true [dev-dependencies] -serial_test = "0.8.0" +serial_test = "3.2.0" [build-dependencies] anyhow.workspace = true diff --git a/crates/telio-network-monitors/Cargo.toml b/crates/telio-network-monitors/Cargo.toml index a5c243e8b..568d64ee9 100644 --- a/crates/telio-network-monitors/Cargo.toml +++ b/crates/telio-network-monitors/Cargo.toml @@ -22,12 +22,11 @@ network-framework-sys = "0.1" block = "0.1" [target.'cfg(target_os = "linux")'.dependencies] -neli = { version = "0.6.4", features = ["async"] } +neli = { version = "0.6.3", features = ["async"] } [target.'cfg(windows)'.dependencies] winapi = { workspace = true, features = ["iphlpapi", "netioapi", "winnt", "ws2def"] } -windows = { version = "0.34.0", features = [ - "alloc", +windows = { version = "0.59.0", features = [ "Win32_Networking_WinSock", "Win32_NetworkManagement_IpHelper", ] } @@ -35,4 +34,4 @@ windows = { version = "0.34.0", features = [ [dev-dependencies] assert_matches = "1.5.0" lazy_static.workspace = true -serial_test = "3.1.1" \ No newline at end of file +serial_test = "3.2.0" diff --git a/crates/telio-network-monitors/src/local_interfaces.rs b/crates/telio-network-monitors/src/local_interfaces.rs index 629a4941e..f6f9b151f 100644 --- a/crates/telio-network-monitors/src/local_interfaces.rs +++ b/crates/telio-network-monitors/src/local_interfaces.rs @@ -58,6 +58,7 @@ mod tests { addr: if_addrs::IfAddr::V4(if_addrs::Ifv4Addr { ip: Ipv4Addr::new(127, 0, 0, 1), netmask: Ipv4Addr::new(255, 0, 0, 0), + prefixlen: 8, broadcast: None, }), index: None, @@ -69,6 +70,7 @@ mod tests { addr: if_addrs::IfAddr::V4(if_addrs::Ifv4Addr { ip: Ipv4Addr::new(10, 0, 0, 1), netmask: Ipv4Addr::new(255, 255, 255, 0), + prefixlen: 24, broadcast: None, }), index: None, @@ -80,6 +82,7 @@ mod tests { addr: if_addrs::IfAddr::V4(if_addrs::Ifv4Addr { ip: Ipv4Addr::new(100, 64, 0, 1), netmask: Ipv4Addr::new(255, 192, 0, 0), + prefixlen: 10, broadcast: None, }), index: None, @@ -91,6 +94,7 @@ mod tests { addr: if_addrs::IfAddr::V6(if_addrs::Ifv6Addr { ip: Ipv6Addr::new(0xfd74, 0x656c, 0x696f, 0, 0x12, 0x34, 0x56, 0), netmask: Ipv6Addr::new(255, 255, 255, 255, 0, 0, 0, 0), + prefixlen: 32, broadcast: None, }), index: None, diff --git a/crates/telio-network-monitors/src/monitor.rs b/crates/telio-network-monitors/src/monitor.rs index 285e42c61..6849966f2 100644 --- a/crates/telio-network-monitors/src/monitor.rs +++ b/crates/telio-network-monitors/src/monitor.rs @@ -118,6 +118,7 @@ mod tests { addr: if_addrs::IfAddr::V4(if_addrs::Ifv4Addr { ip: Ipv4Addr::new(10, 0, 0, 1), netmask: Ipv4Addr::new(255, 255, 255, 0), + prefixlen: 24, broadcast: None, }), index: None, diff --git a/crates/telio-nurse/Cargo.toml b/crates/telio-nurse/Cargo.toml index ef7f7d4d0..85a568552 100644 --- a/crates/telio-nurse/Cargo.toml +++ b/crates/telio-nurse/Cargo.toml @@ -7,7 +7,7 @@ repository = "https://github.com/NordSecurity/libtelio" publish = false [dependencies] -bitflags = { version = "1.3.2" } +bitflags = "2.7.0" histogram = "0.6.9" md5 = { default-features = false, version = "0.7.0" } csv = "1.1" diff --git a/crates/telio-nurse/src/heartbeat.rs b/crates/telio-nurse/src/heartbeat.rs index 86b9fc268..b3d5e13f4 100644 --- a/crates/telio-nurse/src/heartbeat.rs +++ b/crates/telio-nurse/src/heartbeat.rs @@ -50,13 +50,14 @@ enum RuntimeState { } bitflags! { + #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] struct MeshConnectionState: u32 { const DERP = 0b00000001; const WG = 0b00000010; const IPV4 = 0b00000100; const IPV6 = 0b00001000; - const IPV4V6 = Self::IPV4.bits - | Self::IPV6.bits; + const IPV4V6 = Self::IPV4.bits() + | Self::IPV6.bits(); } } @@ -781,7 +782,9 @@ impl Analytics { write!( connectivity_matrix, "{}:{}:{},", - i.1, j.1, min.connection_state.bits + i.1, + j.1, + min.connection_state.bits() ) .expect("no"); } @@ -806,7 +809,7 @@ impl Analytics { telio_log_warn!("Node with pk: {:?} has no fingerprint", key); String::from("null") }), - mesh_link.connection_state.bits, + mesh_link.connection_state.bits(), ), NodeInfo::Node { @@ -826,7 +829,7 @@ impl Analytics { telio_log_warn!("Node with pk: {:?} has no fingerprint", key); String::from("null") }), - mesh_link.connection_state.bits, + mesh_link.connection_state.bits(), ), }; diff --git a/crates/telio-pq/src/proto.rs b/crates/telio-pq/src/proto.rs index 45a6b03e7..4217231a4 100644 --- a/crates/telio-pq/src/proto.rs +++ b/crates/telio-pq/src/proto.rs @@ -459,6 +459,7 @@ fn random_port(rng: &mut impl rand::Rng) -> u16 { #[cfg(test)] mod tests { + use base64::prelude::*; use pqcrypto_kyber::kyber768; use pqcrypto_traits::kem::{Ciphertext, SecretKey as _, SharedSecret}; @@ -472,15 +473,15 @@ mod tests { let expected_shared = "T4KKTwQOEQ43G1UzPbBVzi219KXJ54qh6w24IMPEc0A="; let shared = { - let sk_bytes = base64::decode(secret_key).unwrap(); + let sk_bytes = BASE64_STANDARD.decode(secret_key).unwrap(); let secret_key = kyber768::SecretKey::from_bytes(&sk_bytes).unwrap(); - let ct_bytes = base64::decode(ciphertext).unwrap(); + let ct_bytes = BASE64_STANDARD.decode(ciphertext).unwrap(); let ciphertext = kyber768::Ciphertext::from_bytes(&ct_bytes).unwrap(); let shared = kyber768::decapsulate(&ciphertext, &secret_key); - base64::encode(shared.as_bytes()) + BASE64_STANDARD.encode(shared.as_bytes()) }; assert_eq!(shared, expected_shared); diff --git a/crates/telio-relay/Cargo.toml b/crates/telio-relay/Cargo.toml index c6a1a3ffc..c450de320 100644 --- a/crates/telio-relay/Cargo.toml +++ b/crates/telio-relay/Cargo.toml @@ -7,9 +7,8 @@ repository = "https://github.com/NordSecurity/libtelio" publish = false [dependencies] -generic-array = "0.14.5" rand_core = { version = "0.6.3", default-features = false } -tokio-rustls = { version = "0.26.0", default-features = false } +tokio-rustls = { version = "0.26.1", default-features = false } tokio-util = "0.7.3" tokio-stream = { default-features = false, version = "0.1.9" } @@ -58,7 +57,9 @@ tokio = { workspace = true, features = [ telio-nurse = { workspace = true, features = ["mockall"] } telio-task = { workspace = true, features = ["test-util"] } telio-test.workspace = true -hyper = { version = "0.14.27", features = ["full", "http1", "backports"] } +hyper = { version = "1.5.2", features = ["full", "http1"] } +hyper-util = "0.1.10" +http-body-util = "0.1.2" [target.'cfg(windows)'.dependencies] static_assertions = "1.1.0" diff --git a/crates/telio-relay/src/derp.rs b/crates/telio-relay/src/derp.rs index 7f9e8f50f..b82b30764 100644 --- a/crates/telio-relay/src/derp.rs +++ b/crates/telio-relay/src/derp.rs @@ -12,7 +12,6 @@ pub mod proto; use async_trait::async_trait; use futures::{future::select_all, Future}; -use generic_array::typenum::Unsigned; use std::collections::{HashMap, HashSet}; use std::net::{IpAddr, SocketAddr}; use std::sync::Arc; @@ -39,10 +38,12 @@ use telio_utils::{ use tokio::sync::mpsc::OwnedPermit; use tokio::{task::JoinHandle, time::sleep}; -use crypto_box::aead::{AeadCore, Error, Nonce, Payload}; +use crypto_box::aead::{ + generic_array::{typenum::Unsigned, GenericArray}, + AeadCore, Error, Payload, +}; use telio_crypto::chachabox::ChaChaBox; -use generic_array::GenericArray; use rand::{rngs::StdRng, SeedableRng}; use smart_default::SmartDefault; @@ -490,7 +491,7 @@ impl DerpRelay { } PacketTypeRelayed::Encrypted => { // Extract nonce always with exactly 24 bytes from byte 1 to 24 - let nonce: Nonce = GenericArray::clone_from_slice( + let nonce = GenericArray::from_slice( data.get(DerpRelay::NONCE_BEGIN_POS..DerpRelay::NONCE_END_POS) .ok_or(crypto_box::aead::Error)?, ); @@ -508,7 +509,7 @@ impl DerpRelay { let secret_box = ChaChaBox::new(&public_key, &secret_key); match secret_box.decrypt( - &nonce, + nonce, Payload { msg: cipher_text, // for now AAD is empty diff --git a/crates/telio-relay/src/derp/http.rs b/crates/telio-relay/src/derp/http.rs index 473120c01..9f18239fe 100644 --- a/crates/telio-relay/src/derp/http.rs +++ b/crates/telio-relay/src/derp/http.rs @@ -20,6 +20,7 @@ use webpki_roots::TLS_SERVER_ROOTS; use crate::{Config, DerpKeepaliveConfig}; +use rustls_platform_verifier::ConfigVerifierExt; use telio_crypto::{PublicKey, SecretKey}; use tokio::time::Interval; use tokio::{ @@ -154,7 +155,7 @@ async fn try_connect( TlsConnector::from(Arc::new(config)) } else { - TlsConnector::from(Arc::new(rustls_platform_verifier::tls_config())) + TlsConnector::from(Arc::new(ClientConfig::with_platform_verifier())) }; let server_name = @@ -305,16 +306,21 @@ fn build_tcp_parameters(use_tcp_keepalives: bool) -> TcpParams { #[cfg(test)] mod tests { use super::*; + use http_body_util::Full; use hyper::http::HeaderValue; use hyper::server::conn::http1; use hyper::service::service_fn; - use hyper::{Body, Request, Response}; + use hyper::{ + body::{Body, Bytes, Incoming}, + Request, Response, + }; + use hyper_util::rt::TokioIo; use tokio::net::{TcpListener, TcpStream}; const RESPONSE_BODY: &str = "test body"; const HOST: &str = "hostname"; - fn default_asserts(request: &Request) { + fn default_asserts(request: &Request) { assert_eq!( request.headers().get(hyper::header::HOST), Some(&HeaderValue::from_static(HOST)) @@ -329,7 +335,7 @@ mod tests { ); } - async fn derpv1_handler(request: Request) -> hyper::Result> { + async fn derpv1_handler(request: Request) -> hyper::Result>> { default_asserts(&request); match request.uri().path() { "/derp" => { @@ -338,16 +344,18 @@ mod tests { Some(&HeaderValue::from_static("tcp=1, derp=2")) ); assert_eq!(request.headers().get("Poll-keepalive"), None); - Ok(Response::builder().body(Body::from(RESPONSE_BODY)).unwrap()) + Ok(Response::builder() + .body(Full::new(Bytes::from(RESPONSE_BODY))) + .unwrap()) } _ => Ok(Response::builder() .status(404) - .body(Body::from("Not found")) + .body(Full::new(Bytes::from("Not found"))) .unwrap()), } } - async fn derpv2_handler(request: Request) -> hyper::Result> { + async fn derpv2_handler(request: Request) -> hyper::Result>> { default_asserts(&request); match request.uri().path() { "/derp" => { @@ -356,7 +364,9 @@ mod tests { Some(&HeaderValue::from_static("tcp=1, derp=2")) ); assert_eq!(request.headers().get("Poll-keepalive"), None); - Ok(Response::builder().body(Body::from(RESPONSE_BODY)).unwrap()) + Ok(Response::builder() + .body(Full::new(Bytes::from(RESPONSE_BODY))) + .unwrap()) } "/v2/derp" => { assert_eq!(request.headers().get("Keep-alive"), None); @@ -364,11 +374,13 @@ mod tests { request.headers().get("Poll-keepalive"), Some(&HeaderValue::from_static("2")) ); - Ok(Response::builder().body(Body::from(RESPONSE_BODY)).unwrap()) + Ok(Response::builder() + .body(Full::new(Bytes::from(RESPONSE_BODY))) + .unwrap()) } _ => Ok(Response::builder() .status(404) - .body(Body::from("Not found")) + .body(Full::new(Bytes::from("Not found"))) .unwrap()), } } @@ -382,6 +394,7 @@ mod tests { tokio::spawn(async move { loop { let (stream, _) = listener.accept().await.unwrap(); + let stream = TokioIo::new(stream); tokio::task::spawn(async move { http1::Builder::new() .serve_connection(stream, service_fn(derpv1_handler)) @@ -424,6 +437,7 @@ mod tests { tokio::spawn(async move { loop { let (stream, _) = listener.accept().await.unwrap(); + let stream = TokioIo::new(stream); tokio::task::spawn(async move { http1::Builder::new() .serve_connection(stream, service_fn(derpv2_handler)) diff --git a/crates/telio-sockets/Cargo.toml b/crates/telio-sockets/Cargo.toml index c0f920292..82a196635 100644 --- a/crates/telio-sockets/Cargo.toml +++ b/crates/telio-sockets/Cargo.toml @@ -26,11 +26,11 @@ rstest.workspace = true [target.'cfg(any(target_os = "ios", target_os = "tvos"))'.dependencies] objc = "0.2.7" objc-foundation = "0.1.1" -version-compare = "0.1" +version-compare = "0.2" [target.'cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos"))'.dependencies] debug_panic = "0.2.1" -nix = { version = "0.28", features=["socket"] } +nix = { version = "0.29", features=["socket"] } system-configuration = { git = 'https://github.com/NordSecurity/system-configuration-rs.git' } network-framework-sys = "0.1" block = "0.1" diff --git a/crates/telio-traversal/src/endpoint_providers/local.rs b/crates/telio-traversal/src/endpoint_providers/local.rs index 1a54e518f..cb05c092d 100644 --- a/crates/telio-traversal/src/endpoint_providers/local.rs +++ b/crates/telio-traversal/src/endpoint_providers/local.rs @@ -397,6 +397,7 @@ mod tests { addr: if_addrs::IfAddr::V4(if_addrs::Ifv4Addr { ip: Ipv4Addr::new(10, 0, 0, addr_suffix), netmask: Ipv4Addr::new(255, 255, 255, 0), + prefixlen: 24, broadcast: None, }), index: None, diff --git a/crates/telio-utils/src/lru_cache.rs b/crates/telio-utils/src/lru_cache.rs index 41706c04c..d3ac04b19 100644 --- a/crates/telio-utils/src/lru_cache.rs +++ b/crates/telio-utils/src/lru_cache.rs @@ -61,7 +61,9 @@ impl<'a, K: Hash + Eq, V> OccupiedEntry<'a, K, V> { self.occupied_entry().remove(); } - fn occupied_entry(&'_ mut self) -> RawOccupiedEntryMut<'_, K, TimedValue> { + fn occupied_entry( + &'_ mut self, + ) -> RawOccupiedEntryMut<'_, K, TimedValue, BuildHasherDefault> { if let RawEntryMut::Occupied(e) = self .map .raw_entry_mut() @@ -299,7 +301,10 @@ impl LruCache { (now, expired_keys) } - fn update_last_time(entry: &mut RawOccupiedEntryMut<'_, Key, TimedValue>, now: Instant) { + fn update_last_time( + entry: &mut RawOccupiedEntryMut<'_, Key, TimedValue, BuildHasherDefault>, + now: Instant, + ) { entry.get_mut().update_last_access(now); entry.to_back(); } diff --git a/crates/telio-wg/src/windows/service.rs b/crates/telio-wg/src/windows/service.rs index 6939edc24..d8796357b 100644 --- a/crates/telio-wg/src/windows/service.rs +++ b/crates/telio-wg/src/windows/service.rs @@ -5,12 +5,9 @@ use std::time::{Duration, Instant}; use telio_utils::{telio_log_debug, telio_log_warn}; use windows::{ core::{w, Error, Result as WindowsResult, HRESULT, PCWSTR}, - Win32::{ - Security::SC_HANDLE, - System::Services::{ - OpenSCManagerW, OpenServiceW, QueryServiceStatus, SC_MANAGER_CONNECT, - SERVICE_QUERY_STATUS, SERVICE_STATUS, - }, + Win32::System::Services::{ + OpenSCManagerW, OpenServiceW, QueryServiceStatus, SC_HANDLE, SC_MANAGER_CONNECT, + SERVICE_QUERY_STATUS, SERVICE_STATUS, }, }; diff --git a/src/ffi.rs b/src/ffi.rs index 4510e0100..45c287e86 100644 --- a/src/ffi.rs +++ b/src/ffi.rs @@ -146,7 +146,7 @@ pub fn deserialize_meshnet_config(cfg_str: String) -> FfiResult { /// - `env`: see https://developer.android.com/training/articles/perf-jni#javavm-and-jnienv /// - `ctx`: see https://developer.android.com/reference/android/content/Context pub extern "C" fn Java_com_nordsec_telio_TelioCert_initCertStore( - env: jni::JNIEnv, + mut env: jni::JNIEnv, _class: jni::objects::JClass, ctx: jni::objects::JObject, ) -> u8 { @@ -154,7 +154,7 @@ pub extern "C" fn Java_com_nordsec_telio_TelioCert_initCertStore( static RESULT: OnceCell = OnceCell::new(); *RESULT.get_or_init(|| { - if let Err(err) = rustls_platform_verifier::android::init_hosted(&env, ctx) { + if let Err(err) = rustls_platform_verifier::android::init_hosted(&mut env, ctx) { telio_log_error!("Failed to initialize certificate store {err:?}"); 1 } else { diff --git a/src/lib.rs b/src/lib.rs index 10d243d02..ada0ba90a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -69,6 +69,7 @@ mod uniffi_libtelio { use super::crypto::{PublicKey, SecretKey}; use super::*; + use base64::prelude::*; use nat_detect::NatType; use telio_model::config::*; use telio_model::event::{ErrorCode, ErrorLevel, Event}; @@ -91,7 +92,8 @@ mod uniffi_libtelio { fn decode_key(val: String) -> uniffi::Result<[u8; telio_crypto::KEY_SIZE]> { let mut key = [0_u8; telio_crypto::KEY_SIZE]; - let decoded_bytes = base64::decode(val) + let decoded_bytes = BASE64_STANDARD + .decode(val) .map_err(|_| TelioError::InvalidKey) .and_then(|val| { if val.len() != telio_crypto::KEY_SIZE { @@ -113,7 +115,7 @@ mod uniffi_libtelio { } fn from_custom(obj: Self) -> Self::Builtin { - base64::encode(obj.0) + BASE64_STANDARD.encode(obj.0) } } @@ -126,7 +128,7 @@ mod uniffi_libtelio { } fn from_custom(obj: Self) -> Self::Builtin { - base64::encode(obj.as_bytes()) + BASE64_STANDARD.encode(obj.as_bytes()) } }