From e47dccb2bcfb96e148133618b68b2c73a73a54e4 Mon Sep 17 00:00:00 2001 From: hatoo Date: Sat, 6 Apr 2024 22:26:25 +0900 Subject: [PATCH 1/3] fix rustls error --- Cargo.lock | 25 ++++++++++++++++++++++--- Cargo.toml | 1 + src/main.rs | 8 ++++++++ tests/tests.rs | 11 +++++++++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2da1b9fd..7386382f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -978,6 +978,15 @@ dependencies = [ "miniz_oxide", ] +[[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 = "float-ord" version = "0.3.2" @@ -1727,6 +1736,12 @@ 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 = "num-conv" version = "0.1.0" @@ -1790,6 +1805,7 @@ dependencies = [ "libc", "native-tls", "pin-project-lite", + "predicates", "rand", "rand_regex", "ratatui", @@ -1953,7 +1969,10 @@ checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" dependencies = [ "anstyle", "difflib", + "float-cmp", + "normalize-line-endings", "predicates-core", + "regex", ] [[package]] @@ -2315,11 +2334,11 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f48172685e6ff52a556baa527774f61fcaa884f59daf3375c62a3f1cd2549dab" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64 0.21.7", + "base64 0.22.0", "rustls-pki-types", ] diff --git a/Cargo.toml b/Cargo.toml index 3d2b4c50..aa8c4be9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -82,6 +82,7 @@ assert_cmd = "2.0.2" axum = { version = "0.7", features = ["http2"] } bytes = "1.0" lazy_static = "1.4.0" +predicates = "3.1.0" regex = "1.9.6" [target.'cfg(unix)'.dev-dependencies] diff --git a/src/main.rs b/src/main.rs index b8aea0b9..8e969591 100644 --- a/src/main.rs +++ b/src/main.rs @@ -446,6 +446,14 @@ async fn main() -> anyhow::Result<()> { client.pre_lookup().await?; } + #[cfg(feature = "rustls")] + { + // aws-lc-rs is a default provider for rustls. + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .unwrap(); + } + let start = std::time::Instant::now(); let data_collector = if opts.no_tui || !std::io::stdout().is_tty() { diff --git a/tests/tests.rs b/tests/tests.rs index 4ccc4e19..429b0b22 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -731,3 +731,14 @@ async fn test_unix_socket() { rx.try_recv().unwrap(); } + +#[tokio::test] +async fn test_google() { + Command::cargo_bin("oha") + .unwrap() + .args(["-n", "1", "--no-tui"]) + .arg(format!("https://www.google.com/")) + .assert() + .success() + .stdout(predicates::str::contains("[200] 1 responses")); +} From 035b57bd3de34a76b16d1f9eb1706f935576bbca Mon Sep 17 00:00:00 2001 From: hatoo Date: Sat, 6 Apr 2024 22:31:42 +0900 Subject: [PATCH 2/3] fix clippy --- tests/tests.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tests.rs b/tests/tests.rs index 429b0b22..ac65f7d0 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -737,7 +737,7 @@ async fn test_google() { Command::cargo_bin("oha") .unwrap() .args(["-n", "1", "--no-tui"]) - .arg(format!("https://www.google.com/")) + .arg("https://www.google.com/") .assert() .success() .stdout(predicates::str::contains("[200] 1 responses")); From ae3258ca294f6e1ff8f9edb70f3e7ce2aec9272a Mon Sep 17 00:00:00 2001 From: hatoo Date: Sat, 6 Apr 2024 22:42:07 +0900 Subject: [PATCH 3/3] no ring --- Cargo.lock | 1 - Cargo.toml | 2 +- src/client.rs | 3 ++- src/main.rs | 8 -------- 4 files changed, 3 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7386382f..3711a7c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2312,7 +2312,6 @@ dependencies = [ "aws-lc-rs", "log", "once_cell", - "ring", "rustls-pki-types", "rustls-webpki", "subtle", diff --git a/Cargo.toml b/Cargo.toml index aa8c4be9..e468c9d5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,7 +53,7 @@ hyper = { version = "1.0", features = ["client", "http1", "http2"] } native-tls = { version = "0.2.11", features = ["alpn"], optional = true } tokio-native-tls = { version = "0.3.0", optional = true } -rustls = { version = "0.23.4", features = ["ring"], optional = true } +rustls = { version = "0.23.4", optional = true } rustls-native-certs = { version = "0.7.0", optional = true } tokio-rustls = { version = "0.26.0", optional = true } rustls-pki-types = { version = "1.3.0", optional = true } diff --git a/src/client.rs b/src/client.rs index 6397287b..2e1601a3 100644 --- a/src/client.rs +++ b/src/client.rs @@ -733,7 +733,8 @@ impl rustls::client::danger::ServerCertVerifier for AcceptAnyServerCert { } fn supported_verify_schemes(&self) -> Vec { - rustls::crypto::ring::default_provider() + rustls::crypto::CryptoProvider::get_default() + .unwrap() .signature_verification_algorithms .supported_schemes() } diff --git a/src/main.rs b/src/main.rs index 8e969591..b8aea0b9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -446,14 +446,6 @@ async fn main() -> anyhow::Result<()> { client.pre_lookup().await?; } - #[cfg(feature = "rustls")] - { - // aws-lc-rs is a default provider for rustls. - rustls::crypto::aws_lc_rs::default_provider() - .install_default() - .unwrap(); - } - let start = std::time::Instant::now(); let data_collector = if opts.no_tui || !std::io::stdout().is_tty() {