9#include "../../fields/field.hpp"
10#include "../../groups/group.hpp"
18 static constexpr uint64_t
modulus_0 = 0xFFFFFFFFFFFFFFFFULL;
19 static constexpr uint64_t
modulus_1 = 0x00000000FFFFFFFFULL;
20 static constexpr uint64_t
modulus_2 = 0x0000000000000000ULL;
21 static constexpr uint64_t
modulus_3 = 0xFFFFFFFF00000001ULL;
25 static constexpr uint64_t
r_squared_1 = 18446744056529682431ULL;
26 static constexpr uint64_t
r_squared_2 = 18446744073709551614ULL;
33 static constexpr uint64_t
r_inv = 1;
39 static constexpr uint64_t
r_inv_0 = 0x100000000UL;
40 static constexpr uint64_t
r_inv_1 = 0x0UL;
41 static constexpr uint64_t
r_inv_2 = 0xffffffff00000001UL;
42 static constexpr uint64_t
r_inv_3 = 0x0UL;
61 0x3ULL, 0x4ULL, 0x5ULL, 0x6ULL, 0x7ULL, 0x8ULL, 0x9ULL, 0xaULL,
64 0xfffffffd00000000ULL, 0xfffffffc00000000ULL, 0xfffffffb00000000ULL, 0xfffffffa00000000ULL,
65 0xfffffff900000000ULL, 0xfffffff800000000ULL, 0xfffffff700000000ULL, 0xfffffff600000000ULL,
68 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL,
69 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL, 0xffffffffffffffffULL,
72 0x2fffffffcULL, 0x3fffffffbULL, 0x4fffffffaULL, 0x5fffffff9ULL,
73 0x6fffffff8ULL, 0x7fffffff7ULL, 0x8fffffff6ULL, 0x9fffffff5ULL,
122 0x00000000000000a0ULL, 0x00000000000000c0ULL,
123 0x00000000000000e0ULL, 0x0000000000000100ULL,
124 0x0000000000000120ULL, 0x0000000000000140ULL };
126 0xffffff6000000000ULL, 0xffffff4000000000ULL,
127 0xffffff2000000000ULL, 0xffffff0000000000ULL,
128 0xfffffee000000000ULL, 0xfffffec000000000ULL };
130 0xffffffffffffffffULL, 0xffffffffffffffffULL,
131 0xffffffffffffffffULL, 0xffffffffffffffffULL,
132 0xffffffffffffffffULL, 0xffffffffffffffffULL };
134 0x0000009fffffff5fULL, 0x000000bfffffff3fULL,
135 0x000000dfffffff1fULL, 0x000000fffffffeffULL,
136 0x0000011ffffffedfULL, 0x0000013ffffffebfULL };
148 static constexpr uint64_t
modulus_0 = 0xF3B9CAC2FC632551ULL;
149 static constexpr uint64_t
modulus_1 = 0xBCE6FAADA7179E84ULL;
150 static constexpr uint64_t
modulus_2 = 0xFFFFFFFFFFFFFFFFULL;
151 static constexpr uint64_t
modulus_3 = 0xFFFFFFFF00000000ULL;
163 static constexpr uint64_t
r_inv = 14758798090332847183ULL;
169 static constexpr uint64_t
r_inv_0 = 0x230102a06d6251dcUL;
170 static constexpr uint64_t
r_inv_1 = 0xca5113bcafc4ea28UL;
171 static constexpr uint64_t
r_inv_2 = 0xded10c5bee00bc4eUL;
172 static constexpr uint64_t
r_inv_3 = 0xccd1c8aa212ef3a4UL;
191 0x55eb74ab1949fac9ULL, 0x6231a9e81ce6d578ULL, 0x6e77df252083b027ULL, 0x7abe146224208ad6ULL,
192 0x8704499f27bd6585ULL, 0x934a7edc2b5a4034ULL, 0x9f90b4192ef71ae3ULL, 0xabd6e9563293f592ULL,
195 0xd5af25406e5aaa5dULL, 0x18c82a92c7430bd8ULL, 0x5be12fe5202b6d53ULL, 0x9efa35377913ceceULL,
196 0xe2133a89d1fc3049ULL, 0x252c3fdc2ae491c4ULL, 0x6845452e83ccf33fULL, 0xab5e4a80dcb554baULL,
199 0x1ULL, 0x2ULL, 0x2ULL, 0x2ULL, 0x2ULL, 0x3ULL, 0x3ULL, 0x3ULL,
202 0x6fffffff9ULL, 0x7fffffff8ULL, 0x8fffffff7ULL, 0x9fffffff6ULL,
203 0xafffffff5ULL, 0xbfffffff4ULL, 0xcfffffff3ULL, 0xdfffffff2ULL,
252 0xcefbe4a4107604e0ULL, 0x57c28c4484115ac0ULL,
253 0xe08933e4f7acb0a0ULL, 0x694fdb856b480680ULL,
254 0xf2168325dee35c60ULL, 0x7add2ac6527eb240ULL };
256 0x7c25fca4056daa6dULL, 0xdf46a6ef2279d9cfULL,
257 0x4267513a3f860930ULL, 0xa587fb855c923892ULL,
258 0x08a8a5d0799e67f3ULL, 0x6bc9501b96aa9755ULL };
260 0x000000000000004bULL, 0x0000000000000053ULL,
261 0x000000000000005cULL, 0x0000000000000064ULL,
262 0x000000000000006dULL, 0x0000000000000075ULL };
264 0x0000011ffffffee0ULL, 0x0000013ffffffec0ULL,
265 0x0000015ffffffea0ULL, 0x0000017ffffffe80ULL,
266 0x0000019ffffffe60ULL, 0x000001bffffffe40ULL };
281 fq(0x3BCE3C3E27D2604B, 0x651D06B0CC53B0F6, 0xB3EBBD55769886BC, 0x5AC635D8AA3A93E7).
to_montgomery_form();
283 fq(0xFFFFFFFFFFFFFFFC, 0x00000000FFFFFFFF, 0x0000000000000000, 0xFFFFFFFF00000001).
to_montgomery_form();
286 fq(0xF4A13945D898C296, 0x77037D812DEB33A0, 0xF8BCE6E563A440F2, 0x6B17D1F2E12C4247).
to_montgomery_form();
288 fq(0xCBB6406837BF51F5, 0x2BCE33576B315ECE, 0x8EE7EB4A7C0F9E16, 0x4FE342E2FE1A7F9B).
to_montgomery_form();
296 return "Secp256r1Point";
typename Group::affine_element AffineElement
typename Group::element Element
group class. Represents an elliptic curve group element. Group is parametrised by Fq and Fr
group_elements::affine_element< Fq, Fr, Params > affine_element
group_elements::element< Fq, Fr, Params > element
group< fq, fr, G1Params > g1
std::string msgpack_schema_name(g1::affine_element const &)
General class for prime fields see Prime field documentation["field documentation"] for general imple...
BB_INLINE constexpr field to_montgomery_form() const noexcept
static constexpr uint64_t modulus_wasm_2
static constexpr uint64_t coset_generators_wasm_3[8]
static constexpr uint64_t r_squared_1
static constexpr uint64_t primitive_root_wasm_3
static constexpr size_t PUBLIC_INPUTS_SIZE
static constexpr uint64_t coset_generators_wasm_2[8]
static constexpr uint64_t cube_root_3
static constexpr uint64_t primitive_root_0
static constexpr uint64_t r_squared_0
static constexpr uint64_t cube_root_wasm_1
static constexpr uint64_t r_inv_3
static constexpr uint64_t r_inv_0
static constexpr uint64_t primitive_root_3
static constexpr uint64_t r_inv_wasm_8
static constexpr uint64_t modulus_3
static constexpr uint64_t r_squared_wasm_1
static constexpr uint64_t primitive_root_1
static constexpr uint64_t primitive_root_wasm_2
static constexpr uint64_t coset_generators_wasm_0[8]
static constexpr uint64_t modulus_wasm_8
static constexpr uint64_t r_squared_wasm_3
static constexpr uint64_t coset_generators_0[8]
static constexpr uint64_t modulus_wasm_3
static constexpr uint64_t coset_generators_wasm_1[8]
static constexpr uint64_t cube_root_1
static constexpr uint64_t modulus_wasm_7
static constexpr const char * schema_name
static constexpr uint64_t cube_root_0
static constexpr uint64_t modulus_wasm_5
static constexpr uint64_t r_squared_wasm_2
static constexpr uint64_t cube_root_wasm_2
static constexpr uint64_t modulus_wasm_1
static constexpr uint64_t primitive_root_wasm_1
static constexpr uint64_t primitive_root_2
static constexpr uint64_t cube_root_wasm_3
static constexpr uint64_t r_inv
static constexpr uint64_t r_inv_wasm_7
static constexpr uint64_t r_squared_3
static constexpr uint64_t modulus_2
static constexpr uint64_t r_inv_wasm_4
static constexpr uint64_t modulus_0
static constexpr uint64_t cube_root_2
static constexpr uint64_t r_inv_wasm_5
static constexpr uint64_t coset_generators_1[8]
static constexpr uint64_t coset_generators_3[8]
static constexpr uint64_t cube_root_wasm_0
static constexpr uint64_t r_squared_2
static constexpr uint64_t r_inv_wasm_6
static constexpr uint64_t r_inv_wasm_2
static constexpr uint64_t r_squared_wasm_0
static constexpr uint64_t r_inv_2
static constexpr uint64_t r_inv_1
static constexpr uint64_t r_inv_wasm_0
static constexpr uint64_t primitive_root_wasm_0
static constexpr uint64_t modulus_wasm_4
static constexpr uint64_t coset_generators_2[8]
static constexpr uint64_t modulus_wasm_6
static constexpr uint64_t modulus_1
static constexpr uint64_t r_inv_wasm_3
static constexpr uint64_t r_inv_wasm_1
static constexpr uint64_t modulus_wasm_0
static constexpr uint64_t r_squared_wasm_0
static constexpr uint64_t coset_generators_3[8]
static constexpr uint64_t r_inv_1
static constexpr uint64_t r_squared_1
static constexpr uint64_t r_inv
static constexpr uint64_t primitive_root_wasm_0
static constexpr uint64_t modulus_wasm_6
static constexpr uint64_t coset_generators_wasm_2[8]
static constexpr uint64_t modulus_2
static constexpr uint64_t coset_generators_2[8]
static constexpr uint64_t primitive_root_wasm_3
static constexpr uint64_t r_inv_wasm_5
static constexpr uint64_t primitive_root_0
static constexpr uint64_t modulus_wasm_7
static constexpr uint64_t r_inv_wasm_0
static constexpr uint64_t r_squared_0
static constexpr uint64_t modulus_wasm_0
static constexpr uint64_t modulus_wasm_8
static constexpr uint64_t r_inv_2
static constexpr uint64_t cube_root_0
static constexpr uint64_t primitive_root_3
static constexpr uint64_t r_inv_wasm_3
static constexpr uint64_t r_inv_wasm_8
static constexpr uint64_t modulus_wasm_1
static constexpr uint64_t primitive_root_1
static constexpr uint64_t r_inv_wasm_7
static constexpr uint64_t modulus_wasm_5
static constexpr const char * schema_name
static constexpr uint64_t primitive_root_wasm_1
static constexpr uint64_t primitive_root_wasm_2
static constexpr uint64_t cube_root_wasm_1
static constexpr uint64_t modulus_wasm_2
static constexpr uint64_t cube_root_wasm_3
static constexpr uint64_t coset_generators_wasm_0[8]
static constexpr uint64_t r_inv_wasm_4
static constexpr uint64_t modulus_1
static constexpr uint64_t r_inv_wasm_2
static constexpr size_t PUBLIC_INPUTS_SIZE
static constexpr uint64_t r_inv_3
static constexpr uint64_t modulus_3
static constexpr uint64_t modulus_wasm_3
static constexpr uint64_t r_squared_wasm_2
static constexpr uint64_t r_inv_wasm_1
static constexpr uint64_t coset_generators_0[8]
static constexpr uint64_t r_inv_0
static constexpr uint64_t cube_root_2
static constexpr uint64_t r_squared_2
static constexpr uint64_t modulus_wasm_4
static constexpr uint64_t coset_generators_wasm_1[8]
static constexpr uint64_t r_squared_3
static constexpr uint64_t r_inv_wasm_6
static constexpr uint64_t cube_root_wasm_0
static constexpr uint64_t r_squared_wasm_3
static constexpr uint64_t coset_generators_wasm_3[8]
static constexpr uint64_t cube_root_1
static constexpr uint64_t coset_generators_1[8]
static constexpr uint64_t cube_root_wasm_2
static constexpr uint64_t modulus_0
static constexpr uint64_t r_squared_wasm_1
static constexpr uint64_t primitive_root_2
static constexpr uint64_t cube_root_3
static constexpr bool can_hash_to_curve
static constexpr bool has_a
static constexpr fq one_y
static constexpr bool USE_ENDOMORPHISM
static constexpr bool small_elements
static constexpr fq one_x