1use rustls_pki_types::{pem::PemObject, CertificateDer, PrivateKeyDer};
2
3pub fn load_certs(filename: &str) -> std::io::Result<Vec<CertificateDer<'static>>> {
5 let mut certfile = std::fs::File::open(filename)?;
6 CertificateDer::pem_reader_iter(&mut certfile)
7 .collect::<Result<Vec<_>, _>>()
8 .map_err(|e| match e {
9 rustls_pki_types::pem::Error::Io(err) => err,
10 err => std::io::Error::other(err),
11 })
12}
13
14pub fn load_private_key(filename: &str) -> std::io::Result<PrivateKeyDer<'static>> {
16 let mut keyfile = std::fs::File::open(filename)?;
17 match PrivateKeyDer::from_pem_reader(&mut keyfile) {
18 Ok(private_key) => Ok(private_key),
19 Err(rustls_pki_types::pem::Error::Io(err)) => Err(err),
20 Err(err) => Err(std::io::Error::other(err)),
21 }
22}