Skip to main content

soth_mitm/
errors.rs

1use thiserror::Error;
2
3/// Top-level error returned by proxy lifecycle operations.
4#[derive(Debug, Error)]
5pub enum MitmError {
6    #[error("invalid configuration: {0}")]
7    InvalidConfig(String),
8    #[error("certificate authority load failed: {0}")]
9    CaLoadFailed(String),
10    #[error("certificate authority operation failed: {0}")]
11    CaOperationFailed(String),
12    #[error("runtime I/O error: {0}")]
13    Io(#[from] std::io::Error),
14    #[error("task join error: {0}")]
15    Join(#[from] tokio::task::JoinError),
16}
17
18/// Error returned by certificate authority operations (generate, load, trust install).
19#[derive(Debug, Error)]
20pub enum CaError {
21    #[error("permission denied while performing {operation}: {detail}")]
22    PermissionDenied { operation: String, detail: String },
23    #[error("certificate authority operation failed: {0}")]
24    OperationFailed(String),
25    #[error("invalid certificate authority material: {0}")]
26    InvalidMaterial(String),
27    #[error("unsupported operation: {0}")]
28    UnsupportedOperation(String),
29    #[error("I/O error: {0}")]
30    Io(#[from] std::io::Error),
31}