pqmagic_sys/
lib.rs

1//! # pqmagic-sys
2//!
3//! This sys-crate offers low-level *unsafe* FFI bindings to vendored or native [PQMagic](https://github.com/pqcrypto-cn/PQMagic) C library, and accessible kem/sig schemes and modes are controlled by specified features.
4
5#![no_std]
6pub mod util {
7  unsafe extern "C" {
8    pub fn randombytes(out: *mut u8, out_len: usize);
9  }
10}
11
12#[cfg(any(feature = "aigis_enc", feature = "ml_kem", feature = "kyber"))]
13pub mod kem {
14  #[cfg(feature = "aigis_enc")]
15  pub mod aigis_enc;
16  #[cfg(feature = "kyber")]
17  pub mod kyber;
18  #[cfg(feature = "ml_kem")]
19  pub mod ml_kem;
20}
21
22#[cfg(any(
23  feature = "aigis_sig",
24  feature = "dilithium",
25  feature = "ml_dsa",
26  feature = "slh_dsa",
27  feature = "sphincs_a"
28))]
29pub mod sig {
30  #[cfg(feature = "aigis_sig")]
31  pub mod aigis_sig;
32  #[cfg(feature = "dilithium")]
33  pub mod dilithium;
34  #[cfg(feature = "ml_dsa")]
35  pub mod ml_dsa;
36  #[allow(non_upper_case_globals)]
37  #[cfg(feature = "slh_dsa")]
38  pub mod slh_dsa;
39  #[allow(non_upper_case_globals)]
40  #[cfg(feature = "sphincs_a")]
41  pub mod sphincs_a;
42}