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}