openzeppelin_crypto/field/
instance.rs1#![allow(missing_docs)]
4
5use crate::{
6 arithmetic::uint::{U256, U64},
7 field::fp::{Fp256, Fp64, FpParams, LIMBS_256, LIMBS_64},
8 fp_from_num, from_num,
9};
10
11pub type FpVesta = Fp256<VestaParam>;
12pub struct VestaParam;
13impl FpParams<LIMBS_256> for VestaParam {
14 const GENERATOR: Fp256<VestaParam> = fp_from_num!("5");
15 const MODULUS: U256 = from_num!("28948022309329048855892746252171976963363056481941647379679742748393362948097");
16}
17
18pub type FpBabyBear = Fp64<BabyBearParam>;
19pub struct BabyBearParam;
20impl FpParams<LIMBS_64> for BabyBearParam {
21 const GENERATOR: Fp64<BabyBearParam> = fp_from_num!("31");
22 const MODULUS: U64 = from_num!("2013265921");
23}
24
25pub type FpBLS12 = Fp256<BLS12Param>;
26pub struct BLS12Param;
27impl FpParams<LIMBS_256> for BLS12Param {
28 const GENERATOR: Fp256<BLS12Param> = fp_from_num!("7");
29 const MODULUS: U256 = from_num!("52435875175126190479447740508185965837690552500527637822603658699938581184513");
30}
31
32pub type FpBN256 = Fp256<BN256Param>;
33pub struct BN256Param;
34impl FpParams<LIMBS_256> for BN256Param {
35 const GENERATOR: Fp256<BN256Param> = fp_from_num!("7");
36 const MODULUS: U256 = from_num!("21888242871839275222246405745257275088548364400416034343698204186575808495617");
37}
38
39pub type FpGoldiLocks = Fp64<GoldiLocksParam>;
40pub struct GoldiLocksParam;
41impl FpParams<LIMBS_64> for GoldiLocksParam {
42 const GENERATOR: Fp64<GoldiLocksParam> = fp_from_num!("7");
43 const MODULUS: U64 = from_num!("18446744069414584321");
44}
45
46pub type FpPallas = Fp256<PallasParam>;
47pub struct PallasParam;
48impl FpParams<LIMBS_256> for PallasParam {
49 const GENERATOR: Fp256<PallasParam> = fp_from_num!("5");
50 const MODULUS: U256 = from_num!("28948022309329048855892746252171976963363056481941560715954676764349967630337");
51}