From 10bc197e4bc5d165db2e60b5b131ae5f15f2b1bf Mon Sep 17 00:00:00 2001 From: dfunkt Date: Fri, 1 May 2026 20:37:58 +0300 Subject: [PATCH] Update `reqwest` to 0.13.3 - since version 0.13 `reqwest` defaults to `aws-lc-rs` as the CryptoProvider, so in order to use `ring` switch to rustls-no-provider as mentioned in the link below https://github.com/seanmonstar/reqwest/blob/5b5ac174bc1c8f62de5b6bd200c943719e18fb88/src/tls.rs#L46-L66 - form had to be manually specified now, no longer enabled by default --- Cargo.lock | 126 ++++++++++++++++++++++++++++++++++++++++++-------- Cargo.toml | 3 +- src/config.rs | 5 +- src/main.rs | 2 + 4 files changed, 115 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a2011056..aa4ff114 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2262,9 +2262,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hickory-net" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c61c8db47fae51ba9f8f2a2748bd87542acfbe22f2ec9cf9c8ec72d1ee6e9a6" +checksum = "e2295ed2f9c31e471e1428a8f88a3f0e1f4b27c15049592138d1eebe9c35b183" dependencies = [ "async-trait", "cfg-if", @@ -2286,9 +2286,9 @@ dependencies = [ [[package]] name = "hickory-proto" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a916d0494600d99ecb15aadfab677ad97c4de559e8f1af0c129353a733ac1fcc" +checksum = "0bab31817bfb44672a252e97fe81cd0c18d1b2cf892108922f6818820df8c643" dependencies = [ "data-encoding", "idna", @@ -2306,9 +2306,9 @@ dependencies = [ [[package]] name = "hickory-resolver" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a10bd64d950b4d38ca21e25c8ae230712e4955fb8290cfcb29a5e5dc6017e544" +checksum = "f0d58d28879ceecde6607729660c2667a081ccdc082e082675042793960f178c" dependencies = [ "cfg-if", "futures-util", @@ -2516,7 +2516,6 @@ dependencies = [ "hyper 1.9.0", "hyper-util", "rustls 0.23.40", - "rustls-native-certs", "tokio", "tokio-rustls 0.26.4", "tower-service", @@ -3408,7 +3407,7 @@ dependencies = [ "getrandom 0.2.17", "http 1.4.0", "rand 0.8.6", - "reqwest", + "reqwest 0.12.28", "serde", "serde_json", "serde_path_to_error", @@ -3457,7 +3456,7 @@ dependencies = [ "percent-encoding", "quick-xml 0.38.4", "reqsign", - "reqwest", + "reqwest 0.12.28", "serde", "serde_json", "tokio", @@ -4333,7 +4332,7 @@ dependencies = [ "percent-encoding", "quick-xml 0.37.5", "rand 0.8.6", - "reqwest", + "reqwest 0.12.28", "rsa", "rust-ini", "serde", @@ -4352,13 +4351,9 @@ checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ "base64 0.22.1", "bytes", - "cookie", - "cookie_store", - "encoding_rs", "futures-channel", "futures-core", "futures-util", - "h2", "http 1.4.0", "http-body 1.0.1", "http-body-util", @@ -4367,12 +4362,10 @@ dependencies = [ "hyper-util", "js-sys", "log", - "mime", "percent-encoding", "pin-project-lite", "quinn", "rustls 0.23.40", - "rustls-native-certs", "rustls-pki-types", "serde", "serde_json", @@ -4387,11 +4380,56 @@ dependencies = [ "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", + "wasm-streams 0.4.2", "web-sys", "webpki-roots", ] +[[package]] +name = "reqwest" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62e0021ea2c22aed41653bc7e1419abb2c97e038ff2c33d0e1309e49a97deec0" +dependencies = [ + "base64 0.22.1", + "bytes", + "cookie", + "cookie_store", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http 1.4.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.9.0", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "mime", + "percent-encoding", + "pin-project-lite", + "rustls 0.23.40", + "rustls-pki-types", + "rustls-platform-verifier", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls 0.26.4", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams 0.5.0", + "web-sys", +] + [[package]] name = "resolv-conf" version = "0.7.6" @@ -4692,6 +4730,33 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls 0.23.40", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki 0.103.13", + "security-framework", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -5917,12 +5982,13 @@ dependencies = [ "rand 0.10.1", "regex", "reqsign", - "reqwest", + "reqwest 0.13.3", "ring", "rmpv", "rocket", "rocket_ws", "rpassword", + "rustls 0.23.40", "semver", "serde", "serde_json", @@ -6094,6 +6160,19 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wasmparser" version = "0.244.0" @@ -6194,6 +6273,15 @@ dependencies = [ "url", ] +[[package]] +name = "webpki-root-certs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" version = "1.0.7" @@ -6746,7 +6834,7 @@ dependencies = [ "futures", "hmac 0.12.1", "rand 0.9.4", - "reqwest", + "reqwest 0.12.28", "sha1", "threadpool", ] diff --git a/Cargo.toml b/Cargo.toml index 6ec40f58..28421620 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -146,7 +146,8 @@ email_address = "0.2.9" handlebars = { version = "6.4.0", features = ["dir_source"] } # HTTP client (Used for favicons, version check, DUO and HIBP API) -reqwest = { version = "0.12.28", features = ["rustls-tls", "rustls-tls-native-roots", "stream", "json", "deflate", "gzip", "brotli", "zstd", "socks", "cookies", "charset", "http2", "system-proxy"], default-features = false} +reqwest = { version = "0.13.3", features = ["rustls-no-provider", "form", "stream", "json", "deflate", "gzip", "brotli", "zstd", "socks", "cookies", "charset", "http2", "system-proxy"], default-features = false} +rustls = { version = "0.23.40", features = ["ring"], default-features = false } hickory-resolver = "0.26.0" # Favicon extraction libraries diff --git a/src/config.rs b/src/config.rs index ae995f69..e235bdaa 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1404,7 +1404,10 @@ fn opendal_s3_operator_for_path(path: &str) -> Result #[async_trait] impl reqsign::AwsCredentialLoad for OpenDALS3CredentialLoader { - async fn load_credential(&self, _client: reqwest::Client) -> anyhow::Result> { + async fn load_credential( + &self, + _client: openidconnect::reqwest::Client, + ) -> anyhow::Result> { use aws_credential_types::provider::ProvideCredentials as _; use tokio::sync::OnceCell; diff --git a/src/main.rs b/src/main.rs index 60c5a593..467cf83d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -70,6 +70,8 @@ pub use util::is_running_in_container; #[rocket::main] async fn main() -> Result<(), Error> { + rustls::crypto::ring::default_provider().install_default().expect("Failed to install ring crypto provider"); + parse_args(); launch_info();