pqcrypto_kyber/
lib.rs

1//! # kyber
2//!
3//! This crate provides bindings to and wrappers around the following
4//! implementations from [PQClean][pqc]:
5//!
6//! * kyber512 - clean
7//! * kyber768 - clean
8//! * kyber1024 - 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 kyber1024;
25pub mod kyber512;
26pub mod kyber768;
27
28pub use crate::kyber1024::{
29    ciphertext_bytes as kyber1024_ciphertext_bytes, decapsulate as kyber1024_decapsulate,
30    encapsulate as kyber1024_encapsulate, keypair as kyber1024_keypair,
31    public_key_bytes as kyber1024_public_key_bytes, secret_key_bytes as kyber1024_secret_key_bytes,
32    shared_secret_bytes as kyber1024_shared_secret_bytes,
33};
34pub use crate::kyber512::{
35    ciphertext_bytes as kyber512_ciphertext_bytes, decapsulate as kyber512_decapsulate,
36    encapsulate as kyber512_encapsulate, keypair as kyber512_keypair,
37    public_key_bytes as kyber512_public_key_bytes, secret_key_bytes as kyber512_secret_key_bytes,
38    shared_secret_bytes as kyber512_shared_secret_bytes,
39};
40pub use crate::kyber768::{
41    ciphertext_bytes as kyber768_ciphertext_bytes, decapsulate as kyber768_decapsulate,
42    encapsulate as kyber768_encapsulate, keypair as kyber768_keypair,
43    public_key_bytes as kyber768_public_key_bytes, secret_key_bytes as kyber768_secret_key_bytes,
44    shared_secret_bytes as kyber768_shared_secret_bytes,
45};