Skip to main content

krb5_rs/
lib.rs

1//! # krb5-rs — Pure Rust Kerberos V5
2//!
3//! No C FFI, no system krb5 dependency. GSSAPI, SPNEGO, PKINIT.
4//!
5//! ## Protocols
6//!
7//! - **RFC 4120** — Kerberos V5 core
8//! - **RFC 4121** — GSSAPI mechanism
9//! - **RFC 3961/3962** — Encryption specs + AES
10//! - **RFC 4556** — PKINIT
11//! - **RFC 6113** — FAST pre-authentication
12//!
13//! ## Quick Start
14//!
15//! ```rust,no_run
16//! use krb5_rs::client::KerberosClient;
17//!
18//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
19//! let client = KerberosClient::new("EXAMPLE.COM", "kdc.example.com:88").await?;
20//! let tgt = client.get_tgt("user", "password").await?;
21//! let ticket = client.get_service_ticket(&tgt, "HTTP/web.example.com").await?;
22//! # Ok(())
23//! # }
24//! ```
25
26#![deny(unsafe_code)]
27#![deny(clippy::unwrap_used)]
28#![warn(missing_docs)]
29
30pub mod error;
31
32#[cfg(feature = "client")]
33pub mod client;
34
35pub mod crypto;
36pub mod types;
37
38#[cfg(feature = "gssapi")]
39pub mod gssapi;
40
41pub use error::Krb5Error;