rust_integration_services/utils/
crypto.rs

1use std::path::Path;
2
3use rustls::pki_types::{CertificateDer, PrivateKeyDer};
4
5pub struct Crypto;
6
7impl Crypto {
8    pub fn pem_load_certs<T: AsRef<Path>>(file_name: T) -> std::io::Result<Vec<CertificateDer<'static>>> {
9        let cert_file = std::fs::File::open(file_name)?;
10        let mut reader = std::io::BufReader::new(cert_file);
11        rustls_pemfile::certs(&mut reader).collect()
12    }
13
14    pub fn pem_load_private_key<T: AsRef<Path>>(file_name: T) -> std::io::Result<PrivateKeyDer<'static>> {
15        let key_file = std::fs::File::open(file_name)?;
16        let mut reader = std::io::BufReader::new(key_file);
17        rustls_pemfile::private_key(&mut reader).map(|key| key.unwrap())
18    }
19}