xwt_cert_utils/pem.rs
1//! Support for the PEM data-encoding format.
2
3/// A type that represents a PEM-encoded private key.
4pub struct PrivateKey(pub String);
5
6/// A type that represents a PEM-encoded certificate.
7pub struct Certificate(pub String);
8
9/// Parse the data in PEM format.
10pub fn parse(data: &str) -> Result<Vec<u8>, pem::PemError> {
11 let parsed = pem::parse(data)?;
12 let data = parsed.into_contents();
13 Ok(data)
14}
15
16/// Serialize [`rcgen::Certificate`] into PEM format.
17#[cfg(feature = "rcgen")]
18pub fn from_rcgen(cert: &rcgen::Certificate) -> (PrivateKey, Certificate) {
19 let key_pem = cert.serialize_private_key_pem();
20 let cert_pem = cert.serialize_pem().unwrap();
21 (PrivateKey(key_pem), Certificate(cert_pem))
22}