1use ring_math::polynomial_ring;
2use ring_math::Polynomial;
3use ring_math::PolynomialRingElement;
4
5use scalarff::alt_bn128::Bn128FieldElement;
6use scalarff::oxfoi::OxfoiFieldElement;
7use scalarff::scalar_ring;
8use scalarff::Curve25519FieldElement;
9use scalarff::FieldElement;
10
11polynomial_ring!(
12 Bn128PolynomialRing,
13 Bn128FieldElement,
14 {
15 let mut p = Polynomial::new(vec![Bn128FieldElement::one()]);
16 p.term(&Bn128FieldElement::one(), 64);
17 p
18 },
19 "alt_bn128 x^64+1 polynomial ring"
20);
21
22polynomial_ring!(
23 OxfoiPolynomialRing,
24 OxfoiFieldElement,
25 {
26 let mut p = Polynomial::new(vec![OxfoiFieldElement::one()]);
27 p.term(&OxfoiFieldElement::one(), 64);
28 p
29 },
30 "oxfoi x^64+1 polynomial ring"
31);
32
33polynomial_ring!(
34 Curve25519PolynomialRing,
35 Curve25519FieldElement,
36 {
37 let mut p = Polynomial::new(vec![Curve25519FieldElement::one()]);
38 p.term(&Curve25519FieldElement::one(), 64);
39 p
40 },
41 "curve25519 x^64+1 polynomial ring"
42);
43
44scalar_ring!(DilithiumRingElement, 8380417, "dilithium_23_bit");
46
47polynomial_ring!(
49 DilithiumPolynomialRingElement,
50 DilithiumRingElement,
51 {
52 let mut p = Polynomial::identity();
55 p.term(&DilithiumRingElement::one(), 64);
56 p
57 },
58 "dilithium x^64+1 polynomial ring"
59);