pub(crate) mod client;
pub(crate) mod server;
pub(crate) use client::*;
pub(crate) use server::*;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum CertificateMode {
AuthorityBased,
SelfSigned,
}
#[derive(Debug)]
pub enum TlsError {
InvalidPeerCertificate(std::io::Error),
InvalidLocalCertificate(std::io::Error),
InvalidPrivateKey(std::io::Error),
InvalidDnsName,
BadConfig(String),
}
impl std::fmt::Display for TlsError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::InvalidPeerCertificate(err) => {
write!(f, "invalid peer certificate file: {err}")
}
Self::InvalidLocalCertificate(err) => {
write!(f, "invalid local certificate file: {err}")
}
Self::InvalidPrivateKey(err) => write!(f, "invalid private key file: {err}"),
Self::InvalidDnsName => write!(f, "invalid DNS name"),
Self::BadConfig(err) => write!(f, "bad config: {err}"),
}
}
}
impl std::error::Error for TlsError {}
impl From<sfio_rustls_config::Error> for TlsError {
fn from(err: sfio_rustls_config::Error) -> Self {
Self::BadConfig(err.to_string())
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum MinTlsVersion {
V1_2,
V1_3,
}