zkhash/gmimc/
gmimc_instance_bls12.rs

1use super::gmimc_params::GmimcParams;
2use crate::fields::bls12::FpBLS12;
3
4use lazy_static::lazy_static;
5use std::sync::Arc;
6
7type Scalar = FpBLS12;
8
9lazy_static! {
10    // Number of rounds:
11    // max(2 + 2 * (t + t^2), ceil(2 * log_d(p)) + 2 * t)
12    pub static ref GMIMC_BLS_2_PARAMS: Arc<GmimcParams<Scalar>> =
13        Arc::new(GmimcParams::new(2, 5, 224));
14    pub static ref GMIMC_BLS_3_PARAMS: Arc<GmimcParams<Scalar>> =
15        Arc::new(GmimcParams::new(3, 5, 226));
16    pub static ref GMIMC_BLS_4_PARAMS: Arc<GmimcParams<Scalar>> =
17        Arc::new(GmimcParams::new(4, 5, 228));
18    pub static ref GMIMC_BLS_5_PARAMS: Arc<GmimcParams<Scalar>> =
19        Arc::new(GmimcParams::new(5, 5, 230));
20    pub static ref GMIMC_BLS_8_PARAMS: Arc<GmimcParams<Scalar>> =
21        Arc::new(GmimcParams::new(8, 5, 236));
22    pub static ref GMIMC_BLS_9_PARAMS: Arc<GmimcParams<Scalar>> =
23        Arc::new(GmimcParams::new(9, 5, 238));
24    pub static ref GMIMC_BLS_12_PARAMS: Arc<GmimcParams<Scalar>> =
25        Arc::new(GmimcParams::new(12, 5, 314));
26    pub static ref GMIMC_BLS_16_PARAMS: Arc<GmimcParams<Scalar>> =
27        Arc::new(GmimcParams::new(16, 5, 546));
28    pub static ref GMIMC_BLS_20_PARAMS: Arc<GmimcParams<Scalar>> =
29        Arc::new(GmimcParams::new(20, 5, 842));
30    pub static ref GMIMC_BLS_24_PARAMS: Arc<GmimcParams<Scalar>> =
31        Arc::new(GmimcParams::new(24, 5, 1202));
32}