use rustls::ProtocolVersion;
use rustls::ServerConnection;
use rustls::SupportedCipherSuite;
#[derive(Default, Clone)]
pub struct TlsInfo {
pub sni_hostname: Option<String>,
pub alpn_protocol: Option<String>,
pub ciphersuite: Option<SupportedCipherSuite>,
pub version: Option<ProtocolVersion>,
}
impl TlsInfo {
pub fn from_tls_connection(conn: &ServerConnection) -> TlsInfo {
TlsInfo {
sni_hostname: conn.sni_hostname().map(|s| s.to_owned()),
alpn_protocol: conn
.alpn_protocol()
.map(|s| String::from_utf8_lossy(s).into_owned()),
ciphersuite: conn.negotiated_cipher_suite(),
version: conn.protocol_version(),
}
}
}