pqcrypto_ntru/
lib.rs

1//! # ntru
2//!
3//! This crate provides bindings to and wrappers around the following
4//! implementations from [PQClean][pqc]:
5//!
6//! * ntruhps2048509 - clean
7//! * ntruhps2048677 - clean
8//! * ntruhps4096821 - clean
9//! * ntruhps40961229 - clean
10//! * ntruhrss701 - clean
11//! * ntruhrss1373 - clean
12//!
13//! [pqc]: https://github.com/pqclean/pqclean/
14//!
15
16#![no_std]
17#![allow(clippy::len_without_is_empty)]
18
19// For no-std vectors
20extern crate alloc;
21
22// For tests
23#[cfg(feature = "std")]
24extern crate std;
25
26pub mod ffi;
27pub mod ntruhps2048509;
28pub mod ntruhps2048677;
29pub mod ntruhps40961229;
30pub mod ntruhps4096821;
31pub mod ntruhrss1373;
32pub mod ntruhrss701;
33
34pub use crate::ntruhps2048509::{
35    ciphertext_bytes as ntruhps2048509_ciphertext_bytes, decapsulate as ntruhps2048509_decapsulate,
36    encapsulate as ntruhps2048509_encapsulate, keypair as ntruhps2048509_keypair,
37    public_key_bytes as ntruhps2048509_public_key_bytes,
38    secret_key_bytes as ntruhps2048509_secret_key_bytes,
39    shared_secret_bytes as ntruhps2048509_shared_secret_bytes,
40};
41pub use crate::ntruhps2048677::{
42    ciphertext_bytes as ntruhps2048677_ciphertext_bytes, decapsulate as ntruhps2048677_decapsulate,
43    encapsulate as ntruhps2048677_encapsulate, keypair as ntruhps2048677_keypair,
44    public_key_bytes as ntruhps2048677_public_key_bytes,
45    secret_key_bytes as ntruhps2048677_secret_key_bytes,
46    shared_secret_bytes as ntruhps2048677_shared_secret_bytes,
47};
48pub use crate::ntruhps40961229::{
49    ciphertext_bytes as ntruhps40961229_ciphertext_bytes,
50    decapsulate as ntruhps40961229_decapsulate, encapsulate as ntruhps40961229_encapsulate,
51    keypair as ntruhps40961229_keypair, public_key_bytes as ntruhps40961229_public_key_bytes,
52    secret_key_bytes as ntruhps40961229_secret_key_bytes,
53    shared_secret_bytes as ntruhps40961229_shared_secret_bytes,
54};
55pub use crate::ntruhps4096821::{
56    ciphertext_bytes as ntruhps4096821_ciphertext_bytes, decapsulate as ntruhps4096821_decapsulate,
57    encapsulate as ntruhps4096821_encapsulate, keypair as ntruhps4096821_keypair,
58    public_key_bytes as ntruhps4096821_public_key_bytes,
59    secret_key_bytes as ntruhps4096821_secret_key_bytes,
60    shared_secret_bytes as ntruhps4096821_shared_secret_bytes,
61};
62pub use crate::ntruhrss1373::{
63    ciphertext_bytes as ntruhrss1373_ciphertext_bytes, decapsulate as ntruhrss1373_decapsulate,
64    encapsulate as ntruhrss1373_encapsulate, keypair as ntruhrss1373_keypair,
65    public_key_bytes as ntruhrss1373_public_key_bytes,
66    secret_key_bytes as ntruhrss1373_secret_key_bytes,
67    shared_secret_bytes as ntruhrss1373_shared_secret_bytes,
68};
69pub use crate::ntruhrss701::{
70    ciphertext_bytes as ntruhrss701_ciphertext_bytes, decapsulate as ntruhrss701_decapsulate,
71    encapsulate as ntruhrss701_encapsulate, keypair as ntruhrss701_keypair,
72    public_key_bytes as ntruhrss701_public_key_bytes,
73    secret_key_bytes as ntruhrss701_secret_key_bytes,
74    shared_secret_bytes as ntruhrss701_shared_secret_bytes,
75};