pqcrypto_mlkem/
lib.rs

1//! # mlkem
2//!
3//! This crate provides bindings to and wrappers around the following
4//! implementations from [PQClean][pqc]:
5//!
6//! * ml-kem-512 - clean
7//! * ml-kem-768 - clean
8//! * ml-kem-1024 - clean
9//!
10//! [pqc]: https://github.com/pqclean/pqclean/
11//!
12
13#![no_std]
14#![allow(clippy::len_without_is_empty)]
15
16// For no-std vectors
17extern crate alloc;
18
19// For tests
20#[cfg(feature = "std")]
21extern crate std;
22
23pub mod ffi;
24pub mod mlkem1024;
25pub mod mlkem512;
26pub mod mlkem768;
27
28pub use crate::mlkem1024::{
29    ciphertext_bytes as mlkem1024_ciphertext_bytes, decapsulate as mlkem1024_decapsulate,
30    encapsulate as mlkem1024_encapsulate, keypair as mlkem1024_keypair,
31    public_key_bytes as mlkem1024_public_key_bytes, secret_key_bytes as mlkem1024_secret_key_bytes,
32    shared_secret_bytes as mlkem1024_shared_secret_bytes,
33};
34pub use crate::mlkem512::{
35    ciphertext_bytes as mlkem512_ciphertext_bytes, decapsulate as mlkem512_decapsulate,
36    encapsulate as mlkem512_encapsulate, keypair as mlkem512_keypair,
37    public_key_bytes as mlkem512_public_key_bytes, secret_key_bytes as mlkem512_secret_key_bytes,
38    shared_secret_bytes as mlkem512_shared_secret_bytes,
39};
40pub use crate::mlkem768::{
41    ciphertext_bytes as mlkem768_ciphertext_bytes, decapsulate as mlkem768_decapsulate,
42    encapsulate as mlkem768_encapsulate, keypair as mlkem768_keypair,
43    public_key_bytes as mlkem768_public_key_bytes, secret_key_bytes as mlkem768_secret_key_bytes,
44    shared_secret_bytes as mlkem768_shared_secret_bytes,
45};