From 9fbd617f8869ece7d0a5050a79a527d9d63db3fb Mon Sep 17 00:00:00 2001 From: Christian Visintin Date: Mon, 31 Aug 2026 15:31:47 +0200 Subject: [PATCH] fix: print actual reason for failed host params collecting previously, we didn't show any reason for failed collecting of host params in the auth form, but just a generic message refs #441 --- Cargo.lock | 733 +++++++------------------------ Cargo.toml | 2 +- deny.toml | 3 - src/ui/activities/auth/update.rs | 27 +- 4 files changed, 173 insertions(+), 592 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7868a10..b93caa6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,16 +8,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common 0.1.7", - "generic-array 0.14.7", -] - [[package]] name = "aead" version = "0.6.1" @@ -51,32 +41,18 @@ dependencies = [ "zeroize", ] -[[package]] -name = "aes-gcm" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" -dependencies = [ - "aead 0.5.2", - "aes 0.8.4", - "cipher 0.4.4", - "ctr 0.9.2", - "ghash 0.5.1", - "subtle", -] - [[package]] name = "aes-gcm" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f2b8006a0c83f52b62ba44a97b58bf76fe2f70a329e588f67f89691d93d498f" dependencies = [ - "aead 0.6.1", + "aead", "aes 0.9.3", "cipher 0.5.2", - "ctr 0.10.1", + "ctr", "ctutils", - "ghash 0.6.0", + "ghash", "zeroize", ] @@ -745,25 +721,14 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" -[[package]] -name = "bcrypt-pbkdf" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aeac2e1fe888769f34f05ac343bbef98b14d1ffb292ab69d4608b3abc86f2a2" -dependencies = [ - "blowfish 0.9.1", - "pbkdf2 0.12.2", - "sha2 0.10.9", -] - [[package]] name = "bcrypt-pbkdf" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "144e573728da132683b9488acd528274c790e07fc06ff81ee29f9d8f8b1041e0" dependencies = [ - "blowfish 0.10.0", - "pbkdf2 0.13.0", + "blowfish", + "pbkdf2", "sha2 0.11.0", ] @@ -837,16 +802,6 @@ dependencies = [ "objc2", ] -[[package]] -name = "blowfish" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7" -dependencies = [ - "byteorder", - "cipher 0.4.4", -] - [[package]] name = "blowfish" version = "0.10.0" @@ -969,17 +924,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" -[[package]] -name = "chacha20" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" -dependencies = [ - "cfg-if", - "cipher 0.4.4", - "cpufeatures 0.2.17", -] - [[package]] name = "chacha20" version = "0.10.2" @@ -1168,7 +1112,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e75b2483e97a5a7da73ac68a05b629f9c53cff58d8ed1c77866079e18b00dba5" dependencies = [ "digest 0.10.7", - "spin 0.10.1", + "spin", ] [[package]] @@ -1307,15 +1251,6 @@ dependencies = [ "rand_core 0.10.1", ] -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher 0.4.4", -] - [[package]] name = "ctr" version = "0.10.1" @@ -1353,15 +1288,16 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "5.0.0-rc.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f359e08ca85e7bd759e1fd933ff2bccd81864c60a8fba0e259c7f822b0924bf" +checksum = "b5eed333089e2e1c1ac8c6c0398e5e2497b4c9926ca6d0365ed1e099afa5bc23" dependencies = [ "cfg-if", "cpufeatures 0.3.1", "curve25519-dalek-derive", "digest 0.11.3", "fiat-crypto 0.3.0", + "rand_core 0.10.1", "rustc_version", "subtle", "zeroize", @@ -1730,14 +1666,14 @@ dependencies = [ [[package]] name = "ecdsa" -version = "0.17.0-rc.18" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54fb064faabbee66e1fc8e5c5a9458d4269dc2d8b638fe86a425adb2510d1a96" +checksum = "c0681a4fc24c767085329728d8dfba959af91228aa4610cca4f8ce317ba46ae0" dependencies = [ "der 0.8.1", "digest 0.11.3", - "elliptic-curve 0.14.0-rc.33", - "rfc6979 0.5.0", + "elliptic-curve 0.14.1", + "rfc6979 0.6.0", "signature 3.0.0", "spki 0.8.0", "zeroize", @@ -1771,7 +1707,6 @@ checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ "curve25519-dalek 4.1.3", "ed25519 2.2.3", - "rand_core 0.6.4", "serde", "sha2 0.10.9", "signature 2.2.0", @@ -1781,11 +1716,11 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "3.0.0-rc.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011170fe4f04665565b4110afef66774fe9ffff278f3eb5b81cc73d26e27d60" +checksum = "6ebaa1a2bf1290ab3bfe5a7b771d050ebffab2711c19a81691c683a5144a25de" dependencies = [ - "curve25519-dalek 5.0.0-rc.0", + "curve25519-dalek 5.0.0", "ed25519 3.0.0", "rand_core 0.10.1", "serde", @@ -1823,7 +1758,6 @@ dependencies = [ "ff 0.13.1", "generic-array 0.14.7", "group 0.13.0", - "hkdf 0.12.4", "pem-rfc7468 0.7.0", "pkcs8 0.10.2", "rand_core 0.6.4", @@ -1834,9 +1768,9 @@ dependencies = [ [[package]] name = "elliptic-curve" -version = "0.14.0-rc.33" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "102d3643d30dd8b559613c5cced68317199597fffb278cdc88daa2ef7fafc935" +checksum = "9d65aa39b3a5c1c9c1b745c9a019234bb7a21b77abcb4f4d266d706e2d577d65" dependencies = [ "base16ct 1.0.0", "crypto-bigint 0.7.5", @@ -1846,7 +1780,6 @@ dependencies = [ "group 0.14.0", "hkdf 0.13.0", "hybrid-array", - "once_cell", "pem-rfc7468 1.0.0", "pkcs8 0.11.0", "rand_core 0.10.1", @@ -2176,23 +2109,13 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "ghash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" -dependencies = [ - "opaque-debug", - "polyval 0.6.2", -] - [[package]] name = "ghash" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eecf2d5dc9b66b732b97707a0210906b1d30523eb773193ab777c0c84b3e8d5" dependencies = [ - "polyval 0.7.3", + "polyval", "zeroize", ] @@ -2406,7 +2329,7 @@ dependencies = [ "http 1.5.0", "http-body 1.1.0", "jiff", - "md5 0.8.1", + "md5", "percent-encoding", "prost", "prost-types", @@ -3447,9 +3370,6 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin 0.9.9", -] [[package]] name = "libc" @@ -3609,12 +3529,6 @@ dependencies = [ "digest 0.11.3", ] -[[package]] -name = "md5" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" - [[package]] name = "md5" version = "0.8.1" @@ -3676,7 +3590,7 @@ dependencies = [ "module-lattice", "pkcs8 0.11.0", "rand_core 0.10.1", - "sha3", + "sha3 0.11.0", ] [[package]] @@ -3810,22 +3724,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-bigint-dig" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" -dependencies = [ - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.8", - "smallvec", - "zeroize", -] - [[package]] name = "num-complex" version = "0.4.6" @@ -3878,7 +3776,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", - "libm", ] [[package]] @@ -3950,12 +3847,6 @@ version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - [[package]] name = "open" version = "5.4.2" @@ -4096,86 +3987,45 @@ dependencies = [ [[package]] name = "p256" -version = "0.14.0-rc.10" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41adc63effe99d48837a8cc0e6d7a77e32ae6a07f6000df466178dbc2193093e" +checksum = "d2c9239b2dbc807adbbe147e8cf72ea7450c3a0aabe62cb8e75ff4ec22e1f72a" dependencies = [ - "ecdsa 0.17.0-rc.18", - "elliptic-curve 0.14.0-rc.33", + "ecdsa 0.17.0", + "elliptic-curve 0.14.1", "primefield", - "primeorder 0.14.0-rc.10", + "primeorder 0.14.0", "sha2 0.11.0", ] [[package]] name = "p384" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" +checksum = "d17b851e6b3e378ab4ecb07fa2ed23f4d15f075735f8fec9fa1e7bdce5f8301f" dependencies = [ - "ecdsa 0.16.9", - "elliptic-curve 0.13.8", - "primeorder 0.13.6", - "sha2 0.10.9", -] - -[[package]] -name = "p384" -version = "0.14.0-rc.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd5333afa5ae0347f39e6a0f2c9c155da431583fd71fe5555bd0521b4ccaf02" -dependencies = [ - "ecdsa 0.17.0-rc.18", - "elliptic-curve 0.14.0-rc.33", + "ecdsa 0.17.0", + "elliptic-curve 0.14.1", "fiat-crypto 0.3.0", "primefield", - "primeorder 0.14.0-rc.10", + "primeorder 0.14.0", "sha2 0.11.0", ] [[package]] name = "p521" -version = "0.13.3" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2" -dependencies = [ - "base16ct 0.2.0", - "ecdsa 0.16.9", - "elliptic-curve 0.13.8", - "primeorder 0.13.6", - "rand_core 0.6.4", - "sha2 0.10.9", -] - -[[package]] -name = "p521" -version = "0.14.0-rc.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3a5297f53dc16d35909060ba3032cff7867e8809f01e273ff325579d5f0ceae" +checksum = "4ad64cc32c2dc466317c12ee5853e61f159f9eab1fe7efade0395dc2e7b43449" dependencies = [ "base16ct 1.0.0", - "ecdsa 0.17.0-rc.18", - "elliptic-curve 0.14.0-rc.33", + "ecdsa 0.17.0", + "elliptic-curve 0.14.1", "primefield", - "primeorder 0.14.0-rc.10", + "primeorder 0.14.0", "sha2 0.11.0", ] -[[package]] -name = "pageant" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "032d6201d2fb765158455ae0d5a510c016bb6da7232e5040e39e9c8db12b0afc" -dependencies = [ - "bytes", - "delegate", - "futures", - "rand 0.8.8", - "thiserror 1.0.69", - "tokio", - "windows 0.58.0", -] - [[package]] name = "pageant" version = "0.2.2" @@ -4310,16 +4160,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac 0.12.1", -] - [[package]] name = "pbkdf2" version = "0.13.0" @@ -4448,17 +4288,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der 0.7.10", - "pkcs8 0.10.2", - "spki 0.7.3", -] - [[package]] name = "pkcs1" version = "0.8.0-rc.4" @@ -4469,21 +4298,6 @@ dependencies = [ "spki 0.8.0", ] -[[package]] -name = "pkcs5" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e847e2c91a18bfa887dd028ec33f2fe6f25db77db3619024764914affe8b69a6" -dependencies = [ - "aes 0.8.4", - "cbc 0.1.2", - "der 0.7.10", - "pbkdf2 0.12.2", - "scrypt 0.11.0", - "sha2 0.10.9", - "spki 0.7.3", -] - [[package]] name = "pkcs5" version = "0.8.1" @@ -4491,12 +4305,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63d440a804ec8d6fafbb6b84471e013286658d373248927692ab3366686220ca" dependencies = [ "aes 0.9.3", - "aes-gcm 0.11.1", + "aes-gcm", "cbc 0.2.1", "der 0.8.1", - "pbkdf2 0.13.0", + "pbkdf2", "rand_core 0.10.1", - "scrypt 0.12.0", + "scrypt", "sha2 0.11.0", "spki 0.8.0", ] @@ -4508,8 +4322,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ "der 0.7.10", - "pkcs5 0.7.1", - "rand_core 0.6.4", "spki 0.7.3", ] @@ -4520,7 +4332,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451913da69c775a56034ea8d9003d27ee8948e12443eae7c038ba100a4f21cb7" dependencies = [ "der 0.8.1", - "pkcs5 0.8.1", + "pkcs5", "rand_core 0.10.1", "spki 0.8.0", ] @@ -4531,17 +4343,6 @@ version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" -[[package]] -name = "poly1305" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" -dependencies = [ - "cpufeatures 0.2.17", - "opaque-debug", - "universal-hash 0.5.1", -] - [[package]] name = "poly1305" version = "0.9.1" @@ -4549,22 +4350,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e2d0073b297041425c7c3df6eb4792d598a15323fe63346852b092eca02904c" dependencies = [ "cpufeatures 0.3.1", - "universal-hash 0.6.1", + "universal-hash", "zeroize", ] -[[package]] -name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "opaque-debug", - "universal-hash 0.5.1", -] - [[package]] name = "polyval" version = "0.7.3" @@ -4573,7 +4362,7 @@ checksum = "f0fa31d631f2b2cb2a544d0aa321ce847a94764d701ca2becc411138b93d49cd" dependencies = [ "cpubits", "cpufeatures 0.3.1", - "universal-hash 0.6.1", + "universal-hash", "zeroize", ] @@ -4651,11 +4440,15 @@ dependencies = [ [[package]] name = "primeorder" -version = "0.14.0-rc.10" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d2793f22b9b6fd11ef3ac1d59bf003c2573593e4968702341605c2748fd90bf" +checksum = "5c9f42978c78a00e3d68f69fc03e57a234debae69da4020a4fb588fcdcd07b06" dependencies = [ - "elliptic-curve 0.14.0-rc.33", + "elliptic-curve 0.14.1", + "once_cell", + "primefield", + "serdect", + "wnaf", ] [[package]] @@ -4822,7 +4615,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" dependencies = [ - "chacha20 0.10.2", + "chacha20", "getrandom 0.4.3", "rand_core 0.10.1", ] @@ -5071,9 +4864,9 @@ dependencies = [ [[package]] name = "remotefs-ftp" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "107c234184fd822d1270c482eb8a42354887479cb9fe7834c29655f31e80a4bb" +checksum = "6af3d379199986cf5435240a0a4b159548897b6301536f33e25f81ffe6f5b2fb" dependencies = [ "log", "path-slash", @@ -5134,9 +4927,9 @@ dependencies = [ [[package]] name = "remotefs-ssh" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fa1336153fb7e11d6cf013b279aae115a8454d9f496afb7bccaab1466085253" +checksum = "ef96e0424cb24ec8676d37d91e250a32d9221c6fcfa10e7cc0c323420e68d13f" dependencies = [ "chrono", "lazy-regex", @@ -5144,9 +4937,8 @@ dependencies = [ "path-slash", "remotefs", "russh", - "russh-keys", "russh-sftp", - "ssh2-config", + "ssh2-config 0.7.2", "tokio", ] @@ -5306,12 +5098,12 @@ dependencies = [ [[package]] name = "rfc6979" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5236ce872cac07e0fb3969b0cbf468c7d2f37d432f1b627dcb7b8d34563fb0c3" +checksum = "b4a459cddafb3fe76b31fd8f1108007566c40301feb64dc7b54656eb7388172b" dependencies = [ + "crypto-bigint 0.7.5", "hmac 0.13.0", - "subtle", ] [[package]] @@ -5339,27 +5131,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "rsa" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" -dependencies = [ - "const-oid 0.9.6", - "digest 0.10.7", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1 0.7.5", - "pkcs8 0.10.2", - "rand_core 0.6.4", - "sha2 0.10.9", - "signature 2.2.0", - "spki 0.7.3", - "subtle", - "zeroize", -] - [[package]] name = "rsa" version = "0.10.0-rc.18" @@ -5370,7 +5141,7 @@ dependencies = [ "crypto-bigint 0.7.5", "crypto-primes", "digest 0.11.3", - "pkcs1 0.8.0-rc.4", + "pkcs1", "pkcs8 0.11.0", "rand_core 0.10.1", "sha2 0.11.0", @@ -5391,9 +5162,9 @@ dependencies = [ [[package]] name = "russh" -version = "0.61.2" +version = "0.63.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf893f64684e58da8a68d56a5e84d1cf0440226274c515770fe267707a7d0b0" +checksum = "35bab1b87d915817d5d9cc352637cd40d5f0b298a48c6309af9156a4addc3031" dependencies = [ "aes 0.9.3", "aws-lc-rs", @@ -5404,142 +5175,75 @@ dependencies = [ "cbc 0.2.1", "cipher 0.5.2", "crypto-bigint 0.7.5", - "ctr 0.10.1", - "curve25519-dalek 5.0.0-rc.0", + "ctr", + "curve25519-dalek 5.0.0", "data-encoding", "delegate", "der 0.8.1", "digest 0.11.3", - "ecdsa 0.17.0-rc.18", - "ed25519-dalek 3.0.0-rc.0", - "elliptic-curve 0.14.0-rc.33", + "ecdsa 0.17.0", + "ed25519-dalek 3.0.0", + "elliptic-curve 0.14.1", "enum_dispatch", "flate2", "futures", "generic-array 1.4.5", "getrandom 0.4.3", - "ghash 0.6.0", + "ghash", "hex-literal", "hmac 0.13.0", "inout 0.2.2", "internal-russh-num-bigint", "keccak", "log", - "md5 0.8.1", + "md5", "ml-kem", "module-lattice", "num-bigint", - "p256 0.14.0-rc.10", - "p384 0.14.0-rc.10", - "p521 0.14.0-rc.10", - "pageant 0.2.2", - "pbkdf2 0.13.0", - "pkcs1 0.8.0-rc.4", - "pkcs5 0.8.1", + "p256 0.14.0", + "p384", + "p521", + "pageant", + "pbkdf2", + "pkcs1", + "pkcs5", "pkcs8 0.11.0", - "polyval 0.7.3", + "polyval", "rand 0.10.2", "rand_core 0.10.1", - "rsa 0.10.0-rc.18", - "russh-cryptovec 0.61.0", - "russh-util 0.52.0", - "salsa20 0.11.0", - "scrypt 0.12.0", + "rsa", + "russh-cryptovec", + "russh-util", + "salsa20", + "scrypt", "sec1 0.8.1", "sha1 0.11.0", "sha2 0.11.0", - "sha3", + "sha3 0.12.0", "signature 3.0.0", "spki 0.8.0", - "ssh-encoding 0.3.0-rc.9", - "ssh-key 0.7.0-rc.10", + "ssh-encoding", + "ssh-key", "subtle", "thiserror 2.0.20", "tokio", "typenum", - "universal-hash 0.6.1", + "universal-hash", "zeroize", ] [[package]] name = "russh-cryptovec" -version = "0.48.0" +version = "0.62.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d8e7e854e1a87e4be00fa287c98cad23faa064d0464434beaa9f014ec3baa98" -dependencies = [ - "libc", - "ssh-encoding 0.2.0", - "winapi", -] - -[[package]] -name = "russh-cryptovec" -version = "0.61.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443f6bbcfacb34a1aab2b12b99bf08e0c63abdc5a0db261901365df9d57fff51" +checksum = "3aec6cb630dbe85d72ffd7bcd95f07e1bd69f9f270ee8adfa1afe443a6331438" dependencies = [ "log", "nix", - "ssh-encoding 0.3.0-rc.9", + "ssh-encoding", "windows-sys 0.61.2", ] -[[package]] -name = "russh-keys" -version = "0.49.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "788a2439ce385856585346beb37c48e7c9eb5de5f4f00736720a19ffdb3f5bb5" -dependencies = [ - "aes 0.8.4", - "async-trait", - "bcrypt-pbkdf 0.10.0", - "block-padding 0.3.3", - "byteorder", - "bytes", - "cbc 0.1.2", - "ctr 0.9.2", - "data-encoding", - "der 0.7.10", - "digest 0.10.7", - "ecdsa 0.16.9", - "ed25519-dalek 2.2.0", - "elliptic-curve 0.13.8", - "futures", - "getrandom 0.2.17", - "hmac 0.12.1", - "home", - "inout 0.1.4", - "log", - "md5 0.7.0", - "num-integer", - "p256 0.13.2", - "p384 0.13.1", - "p521 0.13.3", - "pageant 0.0.1", - "pbkdf2 0.12.2", - "pkcs1 0.7.5", - "pkcs5 0.7.1", - "pkcs8 0.10.2", - "rand 0.8.8", - "rand_core 0.6.4", - "rsa 0.9.10", - "russh-cryptovec 0.48.0", - "russh-util 0.48.0", - "sec1 0.7.3", - "serde", - "sha1 0.10.7", - "sha2 0.10.9", - "signature 2.2.0", - "spki 0.7.3", - "ssh-encoding 0.2.0", - "ssh-key 0.6.7", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "typenum", - "zeroize", -] - [[package]] name = "russh-sftp" version = "2.4.0" @@ -5560,18 +5264,6 @@ dependencies = [ "wasm-bindgen-futures", ] -[[package]] -name = "russh-util" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92c7dd577958c0cefbc8f8a2c05c48c88c42e2fdb760dbe9b96ae31d4de97a1f" -dependencies = [ - "chrono", - "tokio", - "wasm-bindgen", - "wasm-bindgen-futures", -] - [[package]] name = "russh-util" version = "0.52.0" @@ -5741,15 +5433,6 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher 0.4.4", -] - [[package]] name = "salsa20" version = "0.11.0" @@ -5808,17 +5491,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scrypt" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" -dependencies = [ - "pbkdf2 0.12.2", - "salsa20 0.10.2", - "sha2 0.10.9", -] - [[package]] name = "scrypt" version = "0.12.0" @@ -5826,8 +5498,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d87af57419b594aa23fa95f09f0e06d80d84ba01c26148c43844cad6ff4485f0" dependencies = [ "cfg-if", - "pbkdf2 0.13.0", - "salsa20 0.11.0", + "pbkdf2", + "salsa20", "sha2 0.11.0", ] @@ -6152,6 +5824,17 @@ dependencies = [ "keccak", ] +[[package]] +name = "sha3" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9bad02c26382724b2d2692c6f179285e4b54eeecd7968f52a50059c3c11759" +dependencies = [ + "digest 0.11.3", + "keccak", + "sponge-cursor", +] + [[package]] name = "sharded-slab" version = "0.1.7" @@ -6298,12 +5981,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "spin" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e" - [[package]] name = "spin" version = "0.10.1" @@ -6331,59 +6008,34 @@ dependencies = [ ] [[package]] -name = "ssh-cipher" -version = "0.2.0" +name = "sponge-cursor" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caac132742f0d33c3af65bfcde7f6aa8f62f0e991d80db99149eb9d44708784f" -dependencies = [ - "aes 0.8.4", - "aes-gcm 0.10.3", - "cbc 0.1.2", - "chacha20 0.9.1", - "cipher 0.4.4", - "ctr 0.9.2", - "poly1305 0.8.0", - "ssh-encoding 0.2.0", - "subtle", -] +checksum = "3a0219bd7d979d58245a4f41f695e1ac9f8befdffadd7f61f1bae9e39abc6620" [[package]] name = "ssh-cipher" -version = "0.3.0-rc.9" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10db6f219196a8528f9ec904d9d45cdad692d65b0e57e72be4dedd1c5fddce36" +checksum = "d801accda99469cde6d73da741422610fdf6508a72d9a69d1b55cb241c720597" dependencies = [ - "aead 0.6.1", + "aead", "aes 0.9.3", - "aes-gcm 0.11.1", - "cbc 0.2.1", - "chacha20 0.10.2", + "aes-gcm", + "chacha20", "cipher 0.5.2", - "ctr 0.10.1", "ctutils", "des", - "poly1305 0.9.1", - "ssh-encoding 0.3.0-rc.9", + "poly1305", + "ssh-encoding", "zeroize", ] [[package]] name = "ssh-encoding" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9242b9ef4108a78e8cd1a2c98e193ef372437f8c22be363075233321dd4a15" -dependencies = [ - "base64ct", - "bytes", - "pem-rfc7468 0.7.0", - "sha2 0.10.9", -] - -[[package]] -name = "ssh-encoding" -version = "0.3.0-rc.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abf34aa716da5d5b4c496936d042ea282ab392092cd68a72ef6a8863ff8c96a" +checksum = "7b54d0ed0498daf3f78d82e00e28c8eec9d75a067c4cfbcc7a0f7d0f4077749e" dependencies = [ "base64ct", "bytes", @@ -6396,50 +6048,27 @@ dependencies = [ [[package]] name = "ssh-key" -version = "0.6.7" +version = "0.7.0-rc.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b86f5297f0f04d08cabaa0f6bff7cb6aec4d9c3b49d87990d63da9d9156a8c3" -dependencies = [ - "bcrypt-pbkdf 0.10.0", - "ed25519-dalek 2.2.0", - "num-bigint-dig", - "p256 0.13.2", - "p384 0.13.1", - "p521 0.13.3", - "rand_core 0.6.4", - "rsa 0.9.10", - "sec1 0.7.3", - "sha2 0.10.9", - "signature 2.2.0", - "ssh-cipher 0.2.0", - "ssh-encoding 0.2.0", - "subtle", - "zeroize", -] - -[[package]] -name = "ssh-key" -version = "0.7.0-rc.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45735ce3dea95690e4a9e414c4cfde7f79835063c3dcd35881df85a84118e74b" +checksum = "f9a32fae177b74a22aa9c5b01bf7e68b33545be32d9e381e248058d2adc15ce3" dependencies = [ "argon2", - "bcrypt-pbkdf 0.11.0", + "bcrypt-pbkdf", "ctutils", - "ed25519-dalek 3.0.0-rc.0", + "ed25519-dalek 3.0.0", "hex", "hmac 0.13.0", - "p256 0.14.0-rc.10", - "p384 0.14.0-rc.10", - "p521 0.14.0-rc.10", + "p256 0.14.0", + "p384", + "p521", "rand_core 0.10.1", - "rsa 0.10.0-rc.18", + "rsa", "sec1 0.8.1", "sha1 0.11.0", "sha2 0.11.0", "signature 3.0.0", - "ssh-cipher 0.3.0-rc.9", - "ssh-encoding 0.3.0-rc.9", + "ssh-cipher", + "ssh-encoding", "zeroize", ] @@ -6457,6 +6086,20 @@ dependencies = [ "wildmatch", ] +[[package]] +name = "ssh2-config" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d2108aade44855426db8417ee923f1cfc0c4b38b4bb4bd26d936f0d0f79e0f" +dependencies = [ + "bitflags 2.13.1", + "dirs", + "glob", + "log", + "thiserror 2.0.20", + "wildmatch", +] + [[package]] name = "stable_deref_trait" version = "1.2.1" @@ -6504,12 +6147,11 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "suppaftp" -version = "8.0.5" +version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dd9d0f3beeffac0ddc0ccfdb6f29c79d26a9925b4153947a8236abec8d0985" +checksum = "46c5095831abc0d7944a2d50d6ec6abcd75b9d165d9377deb3e45798cae2343a" dependencies = [ "chrono", - "futures-lite", "lazy-regex", "log", "native-tls", @@ -6634,7 +6276,7 @@ name = "termscp" version = "1.1.1" dependencies = [ "aes 0.9.3", - "aes-gcm 0.11.1", + "aes-gcm", "apple-native-keyring-store", "argh", "base64 0.23.1", @@ -6675,7 +6317,7 @@ dependencies = [ "serial_test", "shellexpand", "simplelog", - "ssh2-config", + "ssh2-config 0.8.0", "tempfile", "thiserror 2.0.20", "tokio", @@ -7238,16 +6880,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common 0.1.7", - "subtle", -] - [[package]] name = "universal-hash" version = "0.6.1" @@ -7592,16 +7224,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" -dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows" version = "0.61.3" @@ -7645,27 +7267,14 @@ dependencies = [ "windows-core 0.62.2", ] -[[package]] -name = "windows-core" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" -dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows-core" version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", + "windows-implement", + "windows-interface", "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", @@ -7677,8 +7286,8 @@ version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", + "windows-implement", + "windows-interface", "windows-link 0.2.1", "windows-result 0.4.1", "windows-strings 0.5.1", @@ -7706,17 +7315,6 @@ dependencies = [ "windows-threading 0.2.1", ] -[[package]] -name = "windows-implement" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "windows-implement" version = "0.60.2" @@ -7728,17 +7326,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "windows-interface" version = "0.59.3" @@ -7795,15 +7382,6 @@ dependencies = [ "windows-link 0.2.1", ] -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-result" version = "0.3.4" @@ -7822,16 +7400,6 @@ dependencies = [ "windows-link 0.2.1", ] -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows-strings" version = "0.4.2" @@ -8130,6 +7698,17 @@ version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" +[[package]] +name = "wnaf" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab12e7090f27e2ffd9322651492942d50c2926094af30601e1964337db39daf1" +dependencies = [ + "ff 0.14.0", + "group 0.14.0", + "hybrid-array", +] + [[package]] name = "writeable" version = "0.6.4" diff --git a/Cargo.toml b/Cargo.toml index 34cf912..8d4244e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -72,7 +72,7 @@ serde = { version = "1", features = ["derive"] } serde_json = "1" shellexpand = "3" simplelog = "0.12" -ssh2-config = "0.7" +ssh2-config = "0.8" tempfile = "3" thiserror = "2" tokio = { version = "1", features = ["rt"] } diff --git a/deny.toml b/deny.toml index c6e230f..69940af 100644 --- a/deny.toml +++ b/deny.toml @@ -33,9 +33,6 @@ ignore = [ { id = "RUSTSEC-2026-0195", reason = "owner: termscp maintainers; review by 2026-12-31; upgrade remotefs-webdav/self_update to quick-xml >=0.41" }, # The SSH stack requires RSA, for which RustSec reports no safe upgrade. { id = "RUSTSEC-2023-0071", reason = "owner: termscp maintainers; review by 2026-12-31; replace RSA dependency when upstream fix exists" }, - # russh-keys retains an older russh-cryptovec line and cannot select the - # fixed 0.60.3 release without an upstream dependency update. - { id = "RUSTSEC-2026-0153", reason = "owner: termscp maintainers; review by 2026-12-31; upgrade remotefs-ssh/russh-keys to russh-cryptovec >=0.60.3" }, # rustls-pemfile is retained by the WebDAV and Kubernetes clients. Both # versions are unmaintained but have no reported vulnerability. { id = "RUSTSEC-2025-0134", reason = "owner: termscp maintainers; review by 2026-12-31; upgrade WebDAV/Kubernetes clients away from rustls-pemfile" }, diff --git a/src/ui/activities/auth/update.rs b/src/ui/activities/auth/update.rs index b686c5e..3b8d813 100644 --- a/src/ui/activities/auth/update.rs +++ b/src/ui/activities/auth/update.rs @@ -24,19 +24,24 @@ impl AuthActivity { fn update_form(&mut self, msg: FormMsg) -> Option { match msg { FormMsg::Connect => { - let Ok(remote_params) = self.collect_remote_host_params() else { - // mount error - self.mount_error("Invalid remote params parameters"); - return None; + let remote_params = match self.collect_remote_host_params() { + Ok(remote_params) => remote_params, + Err(err) => { + // mount error + self.mount_error(format!("Invalid remote host parameters: {err}")); + return None; + } }; - - let Ok(host_bridge_params) = self.collect_host_bridge_params() else { - // mount error - self.mount_error("Invalid host bridge params parameters"); - return None; - }; - debug!("Remote params: {:?}", remote_params); + + let host_bridge_params = match self.collect_host_bridge_params() { + Ok(host_bridge_params) => host_bridge_params, + Err(err) => { + // mount error + self.mount_error(format!("Invalid host bridge parameters: {err}")); + return None; + } + }; debug!("Host bridge params: {:?}", host_bridge_params); self.save_recent();