Skip to main content

rustls_mitm/
lib.rs

1pub mod ca;
2mod resolver;
3
4pub use ca::CertificateAuthority;
5pub use resolver::MitmCertResolver;
6
7use std::fmt;
8
9/// Errors produced by `rustls-mitm`.
10#[derive(Debug)]
11pub enum Error {
12    Rcgen(rcgen::Error),
13    Rustls(rustls::Error),
14    Io(std::io::Error),
15}
16
17impl fmt::Display for Error {
18    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
19        match self {
20            Error::Rcgen(e) => write!(f, "{e}"),
21            Error::Rustls(e) => write!(f, "{e}"),
22            Error::Io(e) => write!(f, "{e}"),
23        }
24    }
25}
26
27impl std::error::Error for Error {
28    fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
29        match self {
30            Error::Rcgen(e) => Some(e),
31            Error::Rustls(e) => Some(e),
32            Error::Io(e) => Some(e),
33        }
34    }
35}
36
37impl From<rcgen::Error> for Error {
38    fn from(e: rcgen::Error) -> Self {
39        Error::Rcgen(e)
40    }
41}
42
43impl From<rustls::Error> for Error {
44    fn from(e: rustls::Error) -> Self {
45        Error::Rustls(e)
46    }
47}
48
49impl From<std::io::Error> for Error {
50    fn from(e: std::io::Error) -> Self {
51        Error::Io(e)
52    }
53}