From 9fc9178b67be3a824273c6590df66451154dc0e7 Mon Sep 17 00:00:00 2001 From: Maurus Decimus <11444311+mdecimus@users.noreply.github.com> Date: Fri, 17 Jul 2026 18:53:09 +0200 Subject: [PATCH] Crypto provider test fixes --- src/dav/client.rs | 3 +++ src/exchange_ews/autodiscover.rs | 3 +++ src/exchange_ews/client.rs | 3 +++ src/exchange_ews/oauth.rs | 3 +++ src/exchange_graph/client.rs | 3 +++ src/exchange_graph/oauth.rs | 3 +++ src/jmap/http.rs | 3 +++ src/lib.rs | 10 ---------- src/main.rs | 1 - tests/integration/dav_client.rs | 1 + tests/integration/mod.rs | 10 ++++++++++ 11 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/dav/client.rs b/src/dav/client.rs index 290cc68..e6138ce 100644 --- a/src/dav/client.rs +++ b/src/dav/client.rs @@ -70,6 +70,9 @@ impl DavClient { .redirect_auth_headers(RedirectAuthHeaders::SameHost) .tls_config( TlsConfig::builder() + .unversioned_rustls_crypto_provider(std::sync::Arc::new( + rustls::crypto::aws_lc_rs::default_provider(), + )) .root_certs(RootCerts::PlatformVerifier) .disable_verification(allow_invalid_certs) .build(), diff --git a/src/exchange_ews/autodiscover.rs b/src/exchange_ews/autodiscover.rs index 4441829..42e224a 100644 --- a/src/exchange_ews/autodiscover.rs +++ b/src/exchange_ews/autodiscover.rs @@ -135,6 +135,9 @@ fn build_agent(allow_invalid_certs: bool) -> Agent { .http_status_as_error(false) .tls_config( TlsConfig::builder() + .unversioned_rustls_crypto_provider(std::sync::Arc::new( + rustls::crypto::aws_lc_rs::default_provider(), + )) .root_certs(RootCerts::PlatformVerifier) .disable_verification(allow_invalid_certs) .build(), diff --git a/src/exchange_ews/client.rs b/src/exchange_ews/client.rs index cdacb50..cebb9c9 100644 --- a/src/exchange_ews/client.rs +++ b/src/exchange_ews/client.rs @@ -61,6 +61,9 @@ impl EwsClient { .redirect_auth_headers(RedirectAuthHeaders::SameHost) .tls_config( TlsConfig::builder() + .unversioned_rustls_crypto_provider(std::sync::Arc::new( + rustls::crypto::aws_lc_rs::default_provider(), + )) .root_certs(RootCerts::PlatformVerifier) .disable_verification(allow_invalid_certs) .build(), diff --git a/src/exchange_ews/oauth.rs b/src/exchange_ews/oauth.rs index 2fb2795..a537dc0 100644 --- a/src/exchange_ews/oauth.rs +++ b/src/exchange_ews/oauth.rs @@ -112,6 +112,9 @@ fn build_agent(allow_invalid_certs: bool) -> ureq::Agent { .http_status_as_error(false) .tls_config( TlsConfig::builder() + .unversioned_rustls_crypto_provider(std::sync::Arc::new( + rustls::crypto::aws_lc_rs::default_provider(), + )) .root_certs(RootCerts::PlatformVerifier) .disable_verification(allow_invalid_certs) .build(), diff --git a/src/exchange_graph/client.rs b/src/exchange_graph/client.rs index 0c54104..10ebd3c 100644 --- a/src/exchange_graph/client.rs +++ b/src/exchange_graph/client.rs @@ -91,6 +91,9 @@ impl GraphClient { .redirect_auth_headers(RedirectAuthHeaders::SameHost) .tls_config( TlsConfig::builder() + .unversioned_rustls_crypto_provider(std::sync::Arc::new( + rustls::crypto::aws_lc_rs::default_provider(), + )) .root_certs(RootCerts::PlatformVerifier) .disable_verification(allow_invalid_certs) .build(), diff --git a/src/exchange_graph/oauth.rs b/src/exchange_graph/oauth.rs index d32f68b..c4b4ec5 100644 --- a/src/exchange_graph/oauth.rs +++ b/src/exchange_graph/oauth.rs @@ -86,6 +86,9 @@ fn build_agent(allow_invalid_certs: bool) -> ureq::Agent { .http_status_as_error(false) .tls_config( TlsConfig::builder() + .unversioned_rustls_crypto_provider(std::sync::Arc::new( + rustls::crypto::aws_lc_rs::default_provider(), + )) .root_certs(RootCerts::PlatformVerifier) .disable_verification(allow_invalid_certs) .build(), diff --git a/src/jmap/http.rs b/src/jmap/http.rs index 1f9555d..19f2bc7 100644 --- a/src/jmap/http.rs +++ b/src/jmap/http.rs @@ -102,6 +102,9 @@ impl HttpClient { .redirect_auth_headers(RedirectAuthHeaders::SameHost) .tls_config( TlsConfig::builder() + .unversioned_rustls_crypto_provider(std::sync::Arc::new( + rustls::crypto::aws_lc_rs::default_provider(), + )) .root_certs(RootCerts::PlatformVerifier) .disable_verification(allow_invalid_certs) .build(), diff --git a/src/lib.rs b/src/lib.rs index 10b7642..d20a878 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -19,13 +19,3 @@ pub mod managesieve; pub mod secret; pub mod sync; pub mod types; - -use std::sync::Once; - -static CRYPTO_INIT: Once = Once::new(); - -pub fn install_default_crypto_provider() { - CRYPTO_INIT.call_once(|| { - let _ = rustls::crypto::aws_lc_rs::default_provider().install_default(); - }); -} diff --git a/src/main.rs b/src/main.rs index b088cbf..3a9eae4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,7 +12,6 @@ use vandelay::inspect; use vandelay::sync::{self, Summary}; fn main() { - vandelay::install_default_crypto_provider(); let code = run(); std::process::exit(code); } diff --git a/tests/integration/dav_client.rs b/tests/integration/dav_client.rs index 9ff394b..6934af5 100644 --- a/tests/integration/dav_client.rs +++ b/tests/integration/dav_client.rs @@ -21,6 +21,7 @@ pub struct DavSeed { impl DavSeed { pub fn new(base: impl Into, user: &str, password: &str) -> Self { + super::install_crypto_provider(); let agent = ureq::Agent::config_builder() .http_status_as_error(false) .allow_non_standard_methods(true) diff --git a/tests/integration/mod.rs b/tests/integration/mod.rs index e0b04dc..abcfc90 100644 --- a/tests/integration/mod.rs +++ b/tests/integration/mod.rs @@ -22,6 +22,16 @@ pub mod webdav; pub use error::{ContainerError, ContainerResult}; +use std::sync::Once; + +static CRYPTO_INIT: Once = Once::new(); + +pub fn install_crypto_provider() { + CRYPTO_INIT.call_once(|| { + let _ = rustls::crypto::aws_lc_rs::default_provider().install_default(); + }); +} + #[derive(Debug, Clone)] pub struct Endpoint { pub host: String,