From 5b1706a311207be77c937d1de64aaf51508340f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20=E2=80=9Cpep=E2=80=9D=20Buquet?= Date: Thu, 25 Jul 2024 20:51:20 +0200 Subject: [PATCH] tokio-xmpp: Update dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update tokio_rustls, idna, webpki_roots. https://github.com/rustls/rustls/releases/tag/v%2F0.22.0 > ConfigBuilder::with_safe_defaults - calls to this can simply be deleted since safe defaults are now implicit. > OwnedTrustAnchor - use rustls_pki_types::TrustAnchor instead, and replace from_subject_spki_name_constraints with direct assignment to the struct fields. `RootCertStore::add_trust_anchors` seems to be removed too. Signed-off-by: Maxime “pep” Buquet --- tokio-xmpp/Cargo.toml | 6 +++--- tokio-xmpp/src/starttls/error.rs | 2 +- tokio-xmpp/src/starttls/mod.rs | 17 ++++++----------- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/tokio-xmpp/Cargo.toml b/tokio-xmpp/Cargo.toml index 63767b21..8a64c6f6 100644 --- a/tokio-xmpp/Cargo.toml +++ b/tokio-xmpp/Cargo.toml @@ -18,7 +18,7 @@ log = "0.4" tokio = { version = "1", features = ["net", "rt", "rt-multi-thread", "macros"] } tokio-stream = { version = "0.1", features = [] } tokio-util = { version = "0.7", features = ["codec"] } -webpki-roots = { version = "0.25", optional = true } +webpki-roots = { version = "0.26", optional = true } rxml = { version = "0.11.1", features = ["compact_str"] } rand = "0.8" syntect = { version = "5", optional = true } @@ -29,10 +29,10 @@ minidom = { version = "0.16" } # these are only needed for starttls ServerConnector support hickory-resolver = { version = "0.24", optional = true} -idna = { version = "0.5", optional = true} +idna = { version = "1.0", optional = true} native-tls = { version = "0.2", optional = true } tokio-native-tls = { version = "0.3", optional = true } -tokio-rustls = { version = "0.24", optional = true } +tokio-rustls = { version = "0.26", optional = true } [dev-dependencies] env_logger = { version = "0.11", default-features = false, features = ["auto-color", "humantime"] } diff --git a/tokio-xmpp/src/starttls/error.rs b/tokio-xmpp/src/starttls/error.rs index 85ec19db..b47e8c62 100644 --- a/tokio-xmpp/src/starttls/error.rs +++ b/tokio-xmpp/src/starttls/error.rs @@ -7,7 +7,7 @@ use std::borrow::Cow; use std::error::Error as StdError; use std::fmt; #[cfg(all(feature = "tls-rust", not(feature = "tls-native")))] -use tokio_rustls::rustls::client::InvalidDnsNameError; +use tokio_rustls::rustls::pki_types::InvalidDnsNameError; #[cfg(all(feature = "tls-rust", not(feature = "tls-native")))] use tokio_rustls::rustls::Error as TlsError; diff --git a/tokio-xmpp/src/starttls/mod.rs b/tokio-xmpp/src/starttls/mod.rs index cefa4def..92d952c4 100644 --- a/tokio-xmpp/src/starttls/mod.rs +++ b/tokio-xmpp/src/starttls/mod.rs @@ -7,7 +7,8 @@ use { std::sync::Arc, tokio_rustls::{ client::TlsStream, - rustls::{ClientConfig, OwnedTrustAnchor, RootCertStore, ServerName}, + rustls::pki_types::ServerName, + rustls::{ClientConfig, RootCertStore}, TlsConnector, }, }; @@ -128,18 +129,12 @@ async fn get_tls_stream( xmpp_stream: XMPPStream, ) -> Result, Error> { let domain = xmpp_stream.jid.domain().to_string(); - let domain = ServerName::try_from(domain.as_str())?; + let domain = ServerName::try_from(domain)?; let stream = xmpp_stream.into_inner(); - let mut root_store = RootCertStore::empty(); - root_store.add_trust_anchors(webpki_roots::TLS_SERVER_ROOTS.iter().map(|ta| { - OwnedTrustAnchor::from_subject_spki_name_constraints( - ta.subject, - ta.spki, - ta.name_constraints, - ) - })); + let root_store = RootCertStore { + roots: webpki_roots::TLS_SERVER_ROOTS.into(), + }; let config = ClientConfig::builder() - .with_safe_defaults() .with_root_certificates(root_store) .with_no_client_auth(); let tls_stream = TlsConnector::from(Arc::new(config))