Skip to main content

krb5_rs/
error.rs

1//! Error types for krb5-rs.
2
3/// Errors that can occur during Kerberos operations.
4#[derive(Debug, thiserror::Error)]
5pub enum Krb5Error {
6    /// KDC returned an error.
7    #[error("KDC error {code}: {message}")]
8    KdcError {
9        /// Kerberos error code (RFC 4120 ยง7.5.9).
10        code: i32,
11        /// Human-readable message.
12        message: String,
13    },
14
15    /// ASN.1 encoding/decoding error.
16    #[error("ASN.1 error: {0}")]
17    Asn1(String),
18
19    /// Cryptographic operation failed.
20    #[error("Crypto error: {0}")]
21    Crypto(String),
22
23    /// Network error (KDC unreachable).
24    #[error("Network error: {0}")]
25    Network(#[from] std::io::Error),
26
27    /// Ticket expired or not yet valid.
28    #[error("Ticket expired")]
29    TicketExpired,
30
31    /// Pre-authentication required.
32    #[error("Pre-authentication required")]
33    PreauthRequired,
34
35    /// GSSAPI error.
36    #[error("GSSAPI error: {0}")]
37    Gssapi(String),
38}