1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4pub enum TlsStatus {
5 NotUsed,
6 HandshakeSucceeded,
7 HandshakeFailed,
8}
9
10#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
11pub struct CertificateInfo {
12 pub subject: String,
13 pub issuer: String,
14 pub not_before: Option<String>,
15 pub not_after: Option<String>,
16}
17
18#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
19pub struct TlsReport {
20 pub enabled: bool,
21 pub status: TlsStatus,
22 pub version: Option<String>,
23 pub cipher_suite: Option<String>,
24 pub certificate: Option<CertificateInfo>,
25 pub error_message: Option<String>,
26}