Skip to main content

rmqtt_codec/
cert.rs

1use serde::{Deserialize, Serialize};
2use std::fmt;
3
4/// TLS certificate information extracted from peer
5#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
6pub struct CertInfo {
7    /// Common Name from certificate subject
8    pub common_name: Option<String>,
9    /// Full subject distinguished name
10    pub subject: String,
11    /// Certificate serial number
12    pub serial: Option<String>,
13    /// Organization
14    pub organization: Option<String>,
15}
16
17impl CertInfo {
18    pub fn new() -> Self {
19        Self::default()
20    }
21}
22
23impl fmt::Display for CertInfo {
24    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
25        write!(f, "CN: {:?}, Subject: {}, Org: {:?}", self.common_name, self.subject, self.organization)
26    }
27}