hickory_proto/rustls/
mod.rsuse std::sync::Arc;
use rustls::ClientConfig;
#[cfg(not(feature = "rustls-platform-verifier"))]
use rustls::RootCertStore;
#[cfg(feature = "rustls-platform-verifier")]
use rustls_platform_verifier::BuilderVerifierExt;
pub mod tls_client_stream;
pub mod tls_stream;
pub use self::tls_client_stream::{
tls_client_connect, tls_client_connect_with_bind_addr, TlsClientStream,
};
pub use self::tls_stream::{tls_connect, tls_connect_with_bind_addr, tls_from_stream, TlsStream};
pub fn client_config() -> ClientConfig {
let builder =
ClientConfig::builder_with_provider(Arc::new(rustls::crypto::ring::default_provider()))
.with_safe_default_protocol_versions()
.unwrap();
#[cfg(feature = "rustls-platform-verifier")]
let builder = builder.with_platform_verifier();
#[cfg(not(feature = "rustls-platform-verifier"))]
let builder = builder.with_root_certificates({
#[cfg_attr(not(feature = "webpki-roots"), allow(unused_mut))]
let mut root_store = RootCertStore::empty();
#[cfg(feature = "webpki-roots")]
root_store.extend(webpki_roots::TLS_SERVER_ROOTS.iter().cloned());
root_store
});
builder.with_no_client_auth()
}