From 025e09aca621b1215c33b94b9c01b8a1eda2bc3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Sch=C3=A4fer?= Date: Sat, 10 May 2025 09:25:28 +0200 Subject: [PATCH] tokio-xmpp: explicitly set default CryptoProvider in all examples This way, we don't end up with breakage if rustls is built with more than one provider enabled. This can (and does) happen if a transitive dependency (such as reqwest *hinthint*) depends on a specific, non-default rustls backend. --- tokio-xmpp/examples/contact_addr.rs | 7 ++++++- tokio-xmpp/examples/download_avatars.rs | 7 ++++++- tokio-xmpp/examples/echo_bot.rs | 7 ++++++- tokio-xmpp/examples/echo_component.rs | 7 ++++++- tokio-xmpp/examples/echo_server.rs | 6 ++++++ tokio-xmpp/examples/keep_connection.rs | 6 ++++++ 6 files changed, 36 insertions(+), 4 deletions(-) diff --git a/tokio-xmpp/examples/contact_addr.rs b/tokio-xmpp/examples/contact_addr.rs index 584250f1..0b9bc9ac 100644 --- a/tokio-xmpp/examples/contact_addr.rs +++ b/tokio-xmpp/examples/contact_addr.rs @@ -2,7 +2,7 @@ use futures::stream::StreamExt; use std::env::args; use std::process::exit; use std::str::FromStr; -use tokio_xmpp::{Client, IqRequest, IqResponse}; +use tokio_xmpp::{rustls, Client, IqRequest, IqResponse}; use xmpp_parsers::{ disco::{DiscoInfoQuery, DiscoInfoResult}, jid::{BareJid, Jid}, @@ -14,6 +14,11 @@ use xmpp_parsers::{ async fn main() { env_logger::init(); + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + let args: Vec = args().collect(); if args.len() != 4 { println!("Usage: {} ", args[0]); diff --git a/tokio-xmpp/examples/download_avatars.rs b/tokio-xmpp/examples/download_avatars.rs index cd595383..25d714e8 100644 --- a/tokio-xmpp/examples/download_avatars.rs +++ b/tokio-xmpp/examples/download_avatars.rs @@ -4,7 +4,7 @@ use std::fs::{create_dir_all, File}; use std::io::{self, Write}; use std::process::exit; use std::str::FromStr; -use tokio_xmpp::{Client, Stanza}; +use tokio_xmpp::{rustls, Client, Stanza}; use xmpp_parsers::{ avatar::{Data as AvatarData, Metadata as AvatarMetadata}, caps::{compute_disco, hash_caps, Caps}, @@ -26,6 +26,11 @@ use xmpp_parsers::{ async fn main() { env_logger::init(); + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + let args: Vec = args().collect(); if args.len() != 3 { println!("Usage: {} ", args[0]); diff --git a/tokio-xmpp/examples/echo_bot.rs b/tokio-xmpp/examples/echo_bot.rs index 1ea2bc45..45c4b1d7 100644 --- a/tokio-xmpp/examples/echo_bot.rs +++ b/tokio-xmpp/examples/echo_bot.rs @@ -2,7 +2,7 @@ use futures::stream::StreamExt; use std::env::args; use std::process::exit; use std::str::FromStr; -use tokio_xmpp::Client; +use tokio_xmpp::{rustls, Client}; use xmpp_parsers::jid::{BareJid, Jid}; use xmpp_parsers::message::{Lang, Message, MessageType}; use xmpp_parsers::presence::{Presence, Show as PresenceShow, Type as PresenceType}; @@ -11,6 +11,11 @@ use xmpp_parsers::presence::{Presence, Show as PresenceShow, Type as PresenceTyp async fn main() { env_logger::init(); + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + let args: Vec = args().collect(); if args.len() != 3 { println!("Usage: {} ", args[0]); diff --git a/tokio-xmpp/examples/echo_component.rs b/tokio-xmpp/examples/echo_component.rs index fffa8fbe..ff43758f 100644 --- a/tokio-xmpp/examples/echo_component.rs +++ b/tokio-xmpp/examples/echo_component.rs @@ -6,12 +6,17 @@ use xmpp_parsers::jid::Jid; use xmpp_parsers::message::{Lang, Message, MessageType}; use xmpp_parsers::presence::{Presence, Show as PresenceShow, Type as PresenceType}; -use tokio_xmpp::{connect::DnsConfig, Component}; +use tokio_xmpp::{connect::DnsConfig, rustls, Component}; #[tokio::main] async fn main() { env_logger::init(); + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + let args: Vec = args().collect(); if args.len() < 3 || args.len() > 4 { println!("Usage: {} [server:port]", args[0]); diff --git a/tokio-xmpp/examples/echo_server.rs b/tokio-xmpp/examples/echo_server.rs index e779ab20..a4729d1b 100644 --- a/tokio-xmpp/examples/echo_server.rs +++ b/tokio-xmpp/examples/echo_server.rs @@ -4,11 +4,17 @@ use tokio::{self, io, net::TcpSocket}; use tokio_xmpp::{ minidom::Element, parsers::stream_features::StreamFeatures, + rustls, xmlstream::{accept_stream, StreamHeader, Timeouts}, }; #[tokio::main] async fn main() -> Result<(), io::Error> { + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + // TCP socket let address = "127.0.0.1:5222".parse().unwrap(); let socket = TcpSocket::new_v4()?; diff --git a/tokio-xmpp/examples/keep_connection.rs b/tokio-xmpp/examples/keep_connection.rs index bb64fc4d..8ba77250 100644 --- a/tokio-xmpp/examples/keep_connection.rs +++ b/tokio-xmpp/examples/keep_connection.rs @@ -26,6 +26,7 @@ use tokio_xmpp::{ jid::{BareJid, Jid}, ping, }, + rustls, stanzastream::StanzaStream, xmlstream::Timeouts, }; @@ -34,6 +35,11 @@ use tokio_xmpp::{ async fn main() { env_logger::init(); + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + let args: Vec = args().collect(); if args.len() != 3 { println!("Usage: {} ", args[0]);