#![allow(clippy::module_name_repetitions)]
use crate::error::{Error, Result};
use tonic::transport::{Certificate, ClientTlsConfig};
#[derive(Debug, Clone)]
pub struct TlsConfig(pub(super) ClientTlsConfig);
impl TlsConfig {
#[must_use]
pub fn native() -> Result<Self> {
Ok(Self(ClientTlsConfig::new().with_enabled_roots()))
}
#[must_use]
pub fn custom(cert_path: String) -> Result<Self> {
let pem = std::fs::read_to_string(cert_path).map_err(Error::LoadTLSCertificateError)?;
let ca = Certificate::from_pem(pem);
let tls = ClientTlsConfig::new().ca_certificate(ca);
Ok(Self(tls))
}
}