kylix_pqc/
lib.rs

1//! # Kylix
2//!
3//! A post-quantum cryptography library implementing NIST FIPS standards.
4//!
5//! ## Features
6//!
7//! - `std` (default): Enable standard library support
8//! - `ml-kem` (default): Enable ML-KEM (FIPS 203) key encapsulation
9//! - `ml-dsa` (default): Enable ML-DSA (FIPS 204) digital signatures
10//!
11//! ## Supported Algorithms
12//!
13//! - **ML-KEM** (FIPS 203): Module-Lattice-Based Key Encapsulation Mechanism
14//!   - ML-KEM-512
15//!   - ML-KEM-768
16//!   - ML-KEM-1024
17//! - **ML-DSA** (FIPS 204): Module-Lattice-Based Digital Signature Algorithm
18//!   - ML-DSA-44
19//!   - ML-DSA-65
20//!   - ML-DSA-87
21//!
22//! ## Example
23//!
24//! ```ignore
25//! use kylix::ml_kem::{MlKem768, Kem};
26//!
27//! // Generate a key pair
28//! let (dk, ek) = MlKem768::keygen(&mut rng)?;
29//!
30//! // Encapsulate a shared secret
31//! let (ct, ss_sender) = MlKem768::encaps(&ek, &mut rng)?;
32//!
33//! // Decapsulate the shared secret
34//! let ss_receiver = MlKem768::decaps(&dk, &ct)?;
35//!
36//! assert_eq!(ss_sender, ss_receiver);
37//! ```
38
39#![cfg_attr(not(feature = "std"), no_std)]
40#![warn(missing_docs)]
41#![warn(clippy::all)]
42#![deny(unsafe_code)]
43
44pub use kylix_core::{Error, Result};
45
46/// Core traits for cryptographic primitives.
47pub mod traits {
48    pub use kylix_core::{Kem, Signer};
49}
50
51/// ML-KEM (FIPS 203) key encapsulation mechanism.
52#[cfg(feature = "ml-kem")]
53pub mod ml_kem {
54    pub use kylix_core::Kem;
55    pub use kylix_ml_kem::*;
56}
57
58/// ML-DSA (FIPS 204) digital signature algorithm.
59#[cfg(feature = "ml-dsa")]
60pub mod ml_dsa {
61    pub use kylix_core::Signer;
62    pub use kylix_ml_dsa::*;
63}