trz_gateway_common/crypto_provider.rs
1//! Utils for [CryptoProvider]s.
2
3use std::sync::Arc;
4
5use rustls::crypto::CryptoProvider;
6use rustls::crypto::aws_lc_rs;
7
8/// Install and use the [CryptoProvider] from [aws_lc_rs].
9pub fn crypto_provider() -> &'static Arc<CryptoProvider> {
10 static ONCE: std::sync::Once = std::sync::Once::new();
11 ONCE.call_once(|| {
12 CryptoProvider::install_default(aws_lc_rs::default_provider())
13 .expect("Set default provider")
14 });
15 CryptoProvider::get_default().expect("Get default provider")
16}