26 #ifndef CRYPTO3_ALGEBRA_CURVES_X962_P_HPP
27 #define CRYPTO3_ALGEBRA_CURVES_X962_P_HPP
29 #include <nil/crypto3/algebra/curves/detail/x962_p/g1.hpp>
30 #include <nil/crypto3/algebra/curves/detail/x962_p/g2.hpp>
42 template<std::
size_t PBits>
45 template<std::
size_t PBits>
48 template<std::
size_t PBits>
53 constexpr
static const std::size_t base_field_bits = 192;
56 constexpr
static const integral_type base_field_modulus = base_field_type::modulus;
58 constexpr
static const std::size_t scalar_field_bits = 192;
60 constexpr
static const integral_type scalar_field_modulus = scalar_field_type::modulus;
66 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC_cppui192;
68 0xCC22D6DFB95C6B25E49C0D6364A4E5980C393AA21668D953_cppui192;
70 0xEEA2BAE7E1497842F2DE7769CFE9C989C072AD696F48034A_cppui192;
72 0x6574D11D69B6EC7A672BB82A083DF2F2B0847DE970B2DE15_cppui192;
77 constexpr
static const std::size_t base_field_bits = 192;
80 constexpr
static const integral_type base_field_modulus = base_field_type::modulus;
82 constexpr
static const std::size_t scalar_field_bits = 192;
84 constexpr
static const integral_type scalar_field_modulus = scalar_field_type::modulus;
90 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC_cppui192;
92 0x22123DC2395A05CAA7423DAECCC94760A7D462256BD56916_cppui192;
94 0x7D29778100C65A1DA1783716588DCE2B8B4AEE8E228F1896_cppui192;
96 0x38A90F22637337334B49DCB66A6DC8F9978ACA7648A943B0_cppui192;
101 constexpr
static const std::size_t base_field_bits = 239;
104 constexpr
static const integral_type base_field_modulus = base_field_type::modulus;
106 constexpr
static const std::size_t scalar_field_bits = 239;
108 constexpr
static const integral_type scalar_field_modulus = scalar_field_type::modulus;
114 0x7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFC_cppui239;
116 0x6B016C3BDCF18941D0D654921475CA71A9DB2FB27D1D37796185C2942C0A_cppui239;
118 0xFFA963CDCA8816CCC33B8642BEDF905C3D358573D3F27FBBD3B3CB9AAAF_cppui239;
120 0x7DEBE8E4E90A5DAE6E4054CA530BA04654B36818CE226B39FCCB7B02F1AE_cppui239;
125 constexpr
static const std::size_t base_field_bits = 239;
128 constexpr
static const integral_type base_field_modulus = base_field_type::modulus;
130 constexpr
static const std::size_t scalar_field_bits = 239;
132 constexpr
static const integral_type scalar_field_modulus = scalar_field_type::modulus;
138 0x7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFC_cppui239;
140 0x617FAB6832576CBBFED50D99F0249C3FEE58B94BA0038C7AE84C8C832F2C_cppui239;
142 0x38AF09D98727705120C921BB5E9E26296A3CDCF2F35757A0EAFD87B830E7_cppui239;
144 0x5B0125E4DBEA0EC7206DA0FC01D9B081329FB555DE6EF460237DFF8BE4BA_cppui239;
149 constexpr
static const std::size_t base_field_bits = 239;
152 constexpr
static const integral_type base_field_modulus = base_field_type::modulus;
154 constexpr
static const std::size_t scalar_field_bits = 239;
156 constexpr
static const integral_type scalar_field_modulus = scalar_field_type::modulus;
162 0x7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFC_cppui239;
164 0x255705FA2A306654B1F4CB03D6A750A30C250102D4988717D9BA15AB6D3E_cppui239;
166 0x6768AE8E18BB92CFCF005C949AA2C6D94853D0E660BBF854B1C9505FE95A_cppui239;
168 0x1607E6898F390C06BC1D552BAD226F3B6FCFE48B6E818499AF18E3ED6CF3_cppui239;
x962_p_v2< 192 > x962_p192v2
Definition: x962_p.hpp:171
x962_p_v3< 192 > x962_p192v3
Definition: x962_p.hpp:172
x962_p_v2< 239 > x962_p239v2
Definition: x962_p.hpp:174
x962_p_v1< 239 > x962_p239v1
Definition: x962_p.hpp:173
x962_p_v3< 239 > x962_p239v3
Definition: x962_p.hpp:175
x962_p_v2_scalar_field_field< Version > x962_p_v2_fr
Definition: x962_p/scalar_field.hpp:164
x962_p_v1_scalar_field_field< Version > x962_p_v1_fr
Definition: x962_p/scalar_field.hpp:168
x962_p_v3_scalar_field_field< Version > x962_p_v3_fr
Definition: x962_p/scalar_field.hpp:166
Definition: x962_p.hpp:100
fields::x962_p_v1_fr< scalar_field_bits > scalar_field_type
Definition: x962_p.hpp:107
fields::x962_p_v1_fq< base_field_bits > base_field_type
Definition: x962_p.hpp:102
base_field_type::integral_type integral_type
Definition: x962_p.hpp:103
Definition: x962_p.hpp:43
Definition: x962_p.hpp:52
fields::x962_p_v2_fq< base_field_bits > base_field_type
Definition: x962_p.hpp:54
fields::x962_p_v2_fr< scalar_field_bits > scalar_field_type
Definition: x962_p.hpp:59
base_field_type::integral_type integral_type
Definition: x962_p.hpp:55
Definition: x962_p.hpp:124
fields::x962_p_v2_fr< scalar_field_bits > scalar_field_type
Definition: x962_p.hpp:131
fields::x962_p_v2_fq< base_field_bits > base_field_type
Definition: x962_p.hpp:126
base_field_type::integral_type integral_type
Definition: x962_p.hpp:127
Definition: x962_p.hpp:46
Definition: x962_p.hpp:76
fields::x962_p_v2_fr< scalar_field_bits > scalar_field_type
Definition: x962_p.hpp:83
base_field_type::integral_type integral_type
Definition: x962_p.hpp:79
fields::x962_p_v2_fq< base_field_bits > base_field_type
Definition: x962_p.hpp:78
Definition: x962_p.hpp:148
fields::x962_p_v3_fq< base_field_bits > base_field_type
Definition: x962_p.hpp:150
base_field_type::integral_type integral_type
Definition: x962_p.hpp:151
fields::x962_p_v3_fr< scalar_field_bits > scalar_field_type
Definition: x962_p.hpp:155
Definition: x962_p.hpp:49
nil::crypto3::multiprecision::number< nil::crypto3::multiprecision::backends::cpp_int_backend< modulus_bits, modulus_bits, nil::crypto3::multiprecision::unsigned_magnitude, nil::crypto3::multiprecision::unchecked, void > > integral_type
Definition: field.hpp:54
IETF IPsec groups.
Definition: x962_p/base_field.hpp:46
Definition: x962_p/base_field.hpp:49
Definition: x962_p/base_field.hpp:52