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}