| Crates.io | pqc-combo |
| lib.rs | pqc-combo |
| version | 0.1.0 |
| created_at | 2025-11-01 16:13:13.45425+00 |
| updated_at | 2025-11-19 09:46:23.88164+00 |
| description | Pure Rust ML-KEM-1024 + ML-DSA-65 + AES-256-GCM for no_std |
| homepage | https://www.pqc-combo.com/ |
| repository | https://github.com/AaronSchnacky1/pqc-combo |
| max_upload_size | |
| id | 1912141 |
| size | 257,111 |
Pure Rust Post-Quantum Cryptography Library with FIPS 140-3 Support
A production-ready, no_std compatible cryptography library implementing NIST-standardized post-quantum algorithms with optional FIPS 140-3 compliance features.
๐ Website: www.pqc-combo.com
๐ฆ Crate: crates.io/crates/pqc-combo
๐ Documentation: docs.rs/pqc-combo
๐ Repository: github.com/AaronSchnacky1/pqc-combo
cargo test --features std
cargo test --features "std,ml-kem,ml-dsa"
cargo test --features "std,fips_140_3"
cargo test --all-features
cargo test --no-default-features
cargo test --no-default-features --features alloc
cargo test --no-default-features --features "alloc,aes-gcm"
cargo bench
cargo bench --features "std,ml-kem,ml-dsa"
cargo bench keygen
cargo bench ML-KEM
ML-KEM-1024 (Kyber) - FIPS 203, Security Level 5
ML-DSA-65 (Dilithium) - FIPS 204, Security Level 3
AES-256-GCM - FIPS 197 & SP 800-38D
When the fips_140_3 feature is enabled, the library includes:
โ Pre-Operational Self-Tests (POST)
โ State Machine
โ CSP Controls
no_std + no_alloc - Bare metal / embedded systemsno_std + alloc - Embedded with allocatorstd - Full standard library with OS RNGAdd to your Cargo.toml:
[dependencies]
pqc-combo = "0.1"
use pqc_combo::*;
// Key Encapsulation (KEM)
let keys = KyberKeys::generate_key_pair();
let (ciphertext, shared_secret_sender) = encapsulate_shared_secret(&keys.pk);
let shared_secret_receiver = decapsulate_shared_secret(&keys.sk, &ciphertext);
assert_eq!(shared_secret_sender, shared_secret_receiver);
// Digital Signatures
let (pk, sk) = generate_dilithium_keypair();
let message = b"Hello, Post-Quantum World!";
let signature = sign_message(&sk, message);
assert!(verify_signature(&pk, message, &signature));
use pqc_combo::*;
// Run Pre-Operational Self-Tests
run_post().expect("POST failed");
// Generate keys with Pair-wise Consistency Test
let keys = KyberKeys::generate_key_pair_with_pct()
.expect("PCT failed");
// Use keys normally
let (ct, ss) = encapsulate_shared_secret(&keys.pk);
no_std Usage#![no_std]
use pqc_combo::*;
// Bring your own entropy source
let seed: [u8; 64] = get_hardware_entropy();
// Generate keys from seed
let keys = KyberKeys::generate_key_pair_with_seed(seed);
| Feature | Description | Default |
|---|---|---|
std |
Standard library support, enables OS RNG | โ |
alloc |
Allocator support, required for AES-GCM | โ |
ml-kem |
ML-KEM-1024 (Kyber) algorithm | โ |
ml-dsa |
ML-DSA-65 (Dilithium) algorithm | โ |
aes-gcm |
AES-256-GCM symmetric encryption | โ |
fips_140_3 |
FIPS 140-3 compliance features | โ |
# Default: Full featured with std
pqc-combo = "0.1"
# FIPS mode
pqc-combo = { version = "0.1", features = ["fips_140_3"] }
# Minimal no_std
pqc-combo = { version = "0.1", default-features = false, features = ["ml-kem", "ml-dsa"] }
# no_std with allocator and AES
pqc-combo = { version = "0.1", default-features = false, features = ["alloc", "ml-kem", "ml-dsa", "aes-gcm"] }
See SECURITY.md for more details.
Measured on modern x86_64 hardware (November 2024):
| Operation | Time | Throughput |
|---|---|---|
| ML-KEM-1024 KeyGen | 12.2 ยตs | ~81,900 ops/sec |
| ML-KEM-1024 Encapsulate | 12.9 ยตs | ~77,500 ops/sec |
| ML-KEM-1024 Decapsulate | 13.7 ยตs | ~72,900 ops/sec |
| ML-DSA-65 KeyGen | 29.8 ยตs | ~33,500 ops/sec |
| ML-DSA-65 Sign | 80.2 ยตs | ~12,470 ops/sec |
| ML-DSA-65 Verify | 29.1 ยตs | ~34,360 ops/sec |
Key Insights:
Run cargo bench to measure on your hardware. See PERFORMANCE_BENCHMARKS.md for detailed analysis.
no_std support (bare metal to full std)cargo doc --openThis project is licensed under the MIT License - see the LICENSE file for details.
Author: Aaron Schnacky
Email: aaronschnacky@gmail.com
Website: www.pqc-combo.com
GitHub: @AaronSchnacky1
For security issues, please see SECURITY.md for responsible disclosure process.
This software is provided "as is" without warranty of any kind. While it implements NIST-standardized algorithms and includes FIPS 140-3 compliance features, it has not yet completed FIPS 140-3 certification. Use in production environments should be evaluated based on your specific security requirements.
Built with โค๏ธ in Rust | Securing tomorrow's communications today