//! Core cryptographic primitives, MLS group state machine, and hybrid //! post-quantum KEM for quicnprotochat. //! //! # Module layout //! //! | Module | Responsibility | //! |--------------|------------------------------------------------------------------| //! | `error` | [`CoreError`] type | //! | `identity` | [`IdentityKeypair`] — Ed25519 identity key for MLS credentials | //! | `keypackage` | [`generate_key_package`] — standalone KeyPackage generation | //! | `group` | [`GroupMember`] — MLS group lifecycle (create/join/send/recv) | //! | `hybrid_kem` | Hybrid X25519 + ML-KEM-768 key encapsulation | //! | `keystore` | [`DiskKeyStore`] — OpenMLS key store with optional persistence | mod error; mod group; pub mod hybrid_kem; mod identity; mod keypackage; mod keystore; pub mod opaque_auth; // ── Public API ──────────────────────────────────────────────────────────────── pub use error::CoreError; pub use group::GroupMember; pub use hybrid_kem::{ hybrid_decrypt, hybrid_encrypt, HybridKemError, HybridKeypair, HybridKeypairBytes, HybridPublicKey, }; pub use identity::IdentityKeypair; pub use keypackage::{generate_key_package, validate_keypackage_ciphersuite}; pub use keystore::DiskKeyStore;