Skip to main content

Crate kylix_pqc

Crate kylix_pqc 

Source
Expand description

§Kylix

A post-quantum cryptography library implementing NIST FIPS standards.

§Features

  • std (default): Enable standard library support
  • ml-kem (default): Enable ML-KEM (FIPS 203) key encapsulation
  • ml-dsa (default): Enable ML-DSA (FIPS 204) digital signatures
  • slh-dsa (default): Enable SLH-DSA (FIPS 205) SHAKE-based hash signatures
  • slh-dsa-sha2: Enable SLH-DSA (FIPS 205) SHA2-based hash signatures

§Supported Algorithms

  • ML-KEM (FIPS 203): Module-Lattice-Based Key Encapsulation Mechanism
    • ML-KEM-512
    • ML-KEM-768
    • ML-KEM-1024
  • ML-DSA (FIPS 204): Module-Lattice-Based Digital Signature Algorithm
    • ML-DSA-44
    • ML-DSA-65
    • ML-DSA-87
  • SLH-DSA (FIPS 205): Stateless Hash-Based Digital Signature Algorithm
    • SHAKE-based variants (default): 128s/128f, 192s/192f, 256s/256f
    • SHA2-based variants (slh-dsa-sha2 feature): 128s/128f, 192s/192f, 256s/256f

§Example

use kylix_pqc::ml_kem::{MlKem768, Kem};
use rand::rng;

// Generate a key pair
let (dk, ek) = MlKem768::keygen(&mut rng())?;

// Encapsulate a shared secret
let (ct, ss_sender) = MlKem768::encaps(&ek, &mut rng())?;

// Decapsulate the shared secret
let ss_receiver = MlKem768::decaps(&dk, &ct)?;

assert_eq!(ss_sender.as_ref(), ss_receiver.as_ref());

Modules§

ml_dsa
ML-DSA (FIPS 204) digital signature algorithm.
ml_kem
ML-KEM (FIPS 203) key encapsulation mechanism.
slh_dsa
SLH-DSA (FIPS 205) stateless hash-based digital signature algorithm.
traits
Core traits for cryptographic primitives.

Enums§

Error
Errors that can occur during cryptographic operations.

Type Aliases§

Result
Result type alias using Error.