hypercall/rustls_provider.rs
1use std::sync::Once;
2
3static INSTALL_DEFAULT_RUSTLS_PROVIDER: Once = Once::new();
4
5/// Ensure rustls has a process-wide crypto provider before TLS clients are built.
6pub fn ensure_default_rustls_crypto_provider() {
7 INSTALL_DEFAULT_RUSTLS_PROVIDER.call_once(|| {
8 if rustls::crypto::CryptoProvider::get_default().is_none() {
9 let _ = rustls::crypto::ring::default_provider().install_default();
10 assert!(
11 rustls::crypto::CryptoProvider::get_default().is_some(),
12 "failed to install default rustls crypto provider"
13 );
14 }
15 });
16}