qp_rusty_crystals_dilithium/
lib.rs

1#![no_std]
2#![allow(clippy::identity_op)]
3#![allow(clippy::needless_range_loop)]
4#![allow(clippy::precedence)]
5#![allow(clippy::unnecessary_cast)]
6#![allow(clippy::enum_variant_names)]
7
8extern crate alloc;
9
10pub mod drbg;
11mod errors;
12pub mod fips202;
13pub mod ml_dsa_87;
14pub mod ntt;
15pub mod packing;
16pub mod params;
17pub mod poly;
18pub mod polyvec;
19pub mod reduce;
20pub mod rounding;
21pub mod sign;
22
23pub enum PH {
24	SHA256,
25	SHA512,
26}
27
28#[cfg(test)]
29mod tests {
30	#[test]
31	fn params() {
32		assert_eq!(crate::params::Q, 8380417);
33		assert_eq!(crate::params::N, 256);
34		assert_eq!(crate::params::R, 1753);
35		assert_eq!(crate::params::D, 13);
36	}
37	#[test]
38	fn params_lvl5() {
39		assert_eq!(crate::params::TAU, 60);
40		assert_eq!(crate::params::CHALLENGE_ENTROPY, 257);
41		assert_eq!(crate::params::GAMMA1, 524288);
42		assert_eq!(crate::params::GAMMA2, 261888);
43		assert_eq!(crate::params::K, 8);
44		assert_eq!(crate::params::L, 7);
45		assert_eq!(crate::params::ETA, 2);
46		assert_eq!(crate::params::BETA, 120);
47		assert_eq!(crate::params::OMEGA, 75);
48	}
49}