pqcrypto_hqc/
lib.rs

1//! # hqc
2//!
3//! This crate provides bindings to and wrappers around the following
4//! implementations from [PQClean][pqc]:
5//!
6//! * hqc-128 - clean
7//! * hqc-192 - clean
8//! * hqc-256 - 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 hqc128;
25pub mod hqc192;
26pub mod hqc256;
27
28pub use crate::hqc128::{
29    ciphertext_bytes as hqc128_ciphertext_bytes, decapsulate as hqc128_decapsulate,
30    encapsulate as hqc128_encapsulate, keypair as hqc128_keypair,
31    public_key_bytes as hqc128_public_key_bytes, secret_key_bytes as hqc128_secret_key_bytes,
32    shared_secret_bytes as hqc128_shared_secret_bytes,
33};
34pub use crate::hqc192::{
35    ciphertext_bytes as hqc192_ciphertext_bytes, decapsulate as hqc192_decapsulate,
36    encapsulate as hqc192_encapsulate, keypair as hqc192_keypair,
37    public_key_bytes as hqc192_public_key_bytes, secret_key_bytes as hqc192_secret_key_bytes,
38    shared_secret_bytes as hqc192_shared_secret_bytes,
39};
40pub use crate::hqc256::{
41    ciphertext_bytes as hqc256_ciphertext_bytes, decapsulate as hqc256_decapsulate,
42    encapsulate as hqc256_encapsulate, keypair as hqc256_keypair,
43    public_key_bytes as hqc256_public_key_bytes, secret_key_bytes as hqc256_secret_key_bytes,
44    shared_secret_bytes as hqc256_shared_secret_bytes,
45};