diff --git a/Cargo.lock b/Cargo.lock index 438de13e..2a7259c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -543,7 +543,7 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper", + "sync_wrapper 0.1.2", "tower", "tower-layer", "tower-service", @@ -2304,19 +2304,20 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.26.0" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", "http 1.1.0", "hyper 1.3.1", "hyper-util", - "rustls 0.22.4", + "rustls 0.23.5", "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", + "webpki-roots 0.26.1", ] [[package]] @@ -2482,9 +2483,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "janus_client" -version = "0.7.19" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c6b325b65445966b5925fee5d66c95a8a9b9347952e2491d518ab86dfb00a0" +checksum = "bca01209e9c34bd35c25375faf56aeccc1a1a0c13dc8b80806dbd089d3407c54" dependencies = [ "backoff", "derivative", @@ -2503,9 +2504,9 @@ dependencies = [ [[package]] name = "janus_collector" -version = "0.7.19" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7388b8e008aaa5fb3e82a488ce6a829fa98b300384c7e0cbf36a18cd6fef95da" +checksum = "799b1c456100b3b89ed9b104c0236597907841c1a935bcbc6dc6ef3ab43c5a0c" dependencies = [ "backoff", "chrono", @@ -2527,9 +2528,9 @@ dependencies = [ [[package]] name = "janus_core" -version = "0.7.19" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d3ea53739a5e3e6d9370245b0906ce4180041e0df1ac27f54e37942f922ea8" +checksum = "735cda6b366d2d34e6e40e25f54e467c0d568ba890f47bb562713ed32425a5ed" dependencies = [ "anyhow", "backoff", @@ -2560,9 +2561,9 @@ dependencies = [ [[package]] name = "janus_messages" -version = "0.7.19" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c02c78d167af4ab0cc6f42cba595599f2c83e789a57dc8933829e4454631144" +checksum = "5725d2845d4440ac22c69cf574400fa1ae3b0bcf48dbfbef431d463936c8af97" dependencies = [ "anyhow", "base64 0.22.1", @@ -3520,6 +3521,53 @@ dependencies = [ "thiserror", ] +[[package]] +name = "quinn" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.23.5", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe" +dependencies = [ + "bytes", + "rand", + "ring", + "rustc-hash", + "rustls 0.23.5", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9096629c45860fc7fb143e125eb826b5e721e10be3263160c7d60ca832cf8c46" +dependencies = [ + "libc", + "once_cell", + "socket2 0.5.5", + "tracing", + "windows-sys 0.52.0", +] + [[package]] name = "quote" version = "1.0.35" @@ -3648,9 +3696,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ "base64 0.22.1", "bytes", @@ -3669,13 +3717,14 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.22.4", + "quinn", + "rustls 0.23.5", "rustls-pemfile 2.1.2", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.1", "tokio", "tokio-rustls", "tower-service", @@ -3857,20 +3906,6 @@ dependencies = [ "sct", ] -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring", - "rustls-pki-types", - "rustls-webpki 0.102.2", - "subtle", - "zeroize", -] - [[package]] name = "rustls" version = "0.23.5" @@ -4815,6 +4850,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + [[package]] name = "tap" version = "1.0.1" @@ -4996,11 +5037,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.22.4", + "rustls 0.23.5", "rustls-pki-types", "tokio", ] diff --git a/Cargo.toml b/Cargo.toml index af0ea962..3a5ddbae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,7 +41,7 @@ email_address = "0.2.4" fastrand = "2.1.0" futures-lite = "2.3.0" git-version = "0.3.9" -janus_messages = "0.7.19" +janus_messages = "0.7.20" log = "0.4.21" opentelemetry = { version = "0.23.0", features = ["metrics", "logs"] } opentelemetry-prometheus = { version = "0.16.0", features = [ diff --git a/cli/Cargo.toml b/cli/Cargo.toml index d6136779..35a82f0f 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -45,9 +45,9 @@ colored = "2.1.0" const_format = "0.2.32" hpke-dispatch = { version = "0.5.1", features = ["serde"], optional = true } rand = { version = "0.8.5", optional = true } -janus_client = "0.7.19" -janus_collector = "0.7.19" +janus_client = "0.7.20" +janus_collector = "0.7.20" url = "2.5.2" -janus_messages = "0.7.19" +janus_messages = "0.7.20" prio = "0.16.3" tokio = { version = "1.37.0" } diff --git a/client/Cargo.toml b/client/Cargo.toml index dca754fe..0f6bb54f 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -26,7 +26,7 @@ uuid = { version = "1.9.0", features = ["v4", "fast-rng", "serde"] } time = { version = "0.3.36", features = ["serde", "serde-well-known"] } log = "0.4.21" pad-adapter = "0.1.1" -janus_messages = "0.7.19" +janus_messages = "0.7.20" [dev-dependencies] divviup-api.workspace = true diff --git a/tests/integration/tls_smoke_test.rs b/tests/integration/tls_smoke_test.rs index 34387c9b..bcbbf5d7 100644 --- a/tests/integration/tls_smoke_test.rs +++ b/tests/integration/tls_smoke_test.rs @@ -8,6 +8,11 @@ use trillium_tokio::ClientConfig; #[tokio::test] async fn https_connection() { + // Choose aws-lc-rs as the default rustls crypto provider. This is what's currently enabled by + // the default Cargo feature. Specifying a default provider here prevents runtime errors if + // another dependency also enables the ring feature. + let _ = trillium_rustls::rustls::crypto::aws_lc_rs::default_provider().install_default(); + let self_signed = generate_simple_self_signed(["localhost".into()]).unwrap(); let stopper = Stopper::new();