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}