Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
poseidon_params.hpp
Go to the documentation of this file.
1#pragma once
2
3#ifdef STARKNET_GARAGA_FLAVORS
5
6namespace bb::starknet::crypto {
7
8struct PoseidonStark252BaseFieldParams {
9
10 using FF = bb::starknet::stark252::fq;
11 static constexpr size_t t = 3;
12 static constexpr size_t d = 3;
13 static constexpr size_t rounds_f = 8;
14 static constexpr size_t rounds_p = 83;
15 static constexpr size_t sbox_size = 252;
16 static constexpr std::array<FF, t> internal_matrix_diagonal = {
17 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000002")),
18 FF(std::string("0x0800000000000010ffffffffffffffffffffffffffffffffffffffffffffffff")),
19 FF(std::string("0x0800000000000010fffffffffffffffffffffffffffffffffffffffffffffffe")),
20 };
21
22 static constexpr std::array<std::array<FF, t>, t> internal_matrix = {
23 std::array<FF, t>{
24 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000002")),
25 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000001")),
26 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000001")),
27 },
28 std::array<FF, t>{
29 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000001")),
30 FF(std::string("0x0800000000000010ffffffffffffffffffffffffffffffffffffffffffffffff")),
31 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000001")),
32 },
33 std::array<FF, t>{
34 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000001")),
35 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000001")),
36 FF(std::string("0x0800000000000010fffffffffffffffffffffffffffffffffffffffffffffffe")),
37 },
38 };
39
40 static constexpr std::array<std::array<FF, t>, rounds_f + rounds_p> round_constants{
41 std::array<FF, t>{
42 FF(std::string("0x06861759ea556a2339dd92f9562a30b9e58e2ad98109ae4780b7fd8eac77fe6f")),
43 FF(std::string("0x03827681995d5af9ffc8397a3d00425a3da43f76abf28a64e4ab1a22f27508c4")),
44 FF(std::string("0x03a3956d2fad44d0e7f760a2277dc7cb2cac75dc279b2d687a0dbe17704a8309")),
45 },
46 std::array<FF, t>{
47 FF(std::string("0x0626c47a7d421fe1f13c4282214aa759291c78f926a2d1c6882031afe67ef4cd")),
48 FF(std::string("0x078985f8e16505035bd6df5518cfd41f2d327fcc948d772cadfe17baca05d6a6")),
49 FF(std::string("0x05427f10867514a3204c659875341243c6e26a68b456dc1d142dcf34341696ff")),
50 },
51 std::array<FF, t>{
52 FF(std::string("0x05af083f36e4c729454361733f0883c5847cd2c5d9d4cb8b0465e60edce699d7")),
53 FF(std::string("0x07d71701bde3d06d54fa3f74f7b352a52d3975f92ff84b1ac77e709bfd388882")),
54 FF(std::string("0x0603da06882019009c26f8a6320a1c5eac1b64f699ffea44e39584467a6b1d3e")),
55 },
56 std::array<FF, t>{
57 FF(std::string("0x04332a6f6bde2f288e79ce13f47ad1cdeebd8870fd13a36b613b9721f6453a5d")),
58 FF(std::string("0x053d0ebf61664c685310a04c4dec2e7e4b9a813aaeff60d6c9e8caeb5cba78e7")),
59 FF(std::string("0x05346a68894845835ae5ebcb88028d2a6c82f99f928494ee1bfc2d15eaabfebc")),
60 },
61 std::array<FF, t>{
62 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
63 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
64 FF(std::string("0x04b085eb1df4258c3453cc97445954bf3433b6ab9dd5a99592864c00f54a3f9a")),
65 },
66 std::array<FF, t>{
67 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
68 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
69 FF(std::string("0x0731cfd19d508285965f12a079b2a169fdfe0a8e610e6f2d5ca5d7b0961f6d96")),
70 },
71 std::array<FF, t>{
72 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
73 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
74 FF(std::string("0x0217d08b5339852bcc6f7a774936b3e72ecd9e1f9a73d743f8079c1e3587eeaa")),
75 },
76 std::array<FF, t>{
77 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
78 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
79 FF(std::string("0x000c935dd633b0fd63599b13c850dab3cb966ba510c81b20959e267008518c6e")),
80 },
81 std::array<FF, t>{
82 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
83 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
84 FF(std::string("0x052af8d378dd6772ee187ed23f79a7d98cf5a0a387103971467fe940e7b8b2be")),
85 },
86 std::array<FF, t>{
87 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
88 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
89 FF(std::string("0x0294851c98b2682f1ec9918b9f12fcceaa6e28a7b79b2e506362cda595f8ab75")),
90 },
91 std::array<FF, t>{
92 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
93 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
94 FF(std::string("0x011b59990bacc280824d1021418d4f589da8c30063471494c204b169ab086064")),
95 },
96 std::array<FF, t>{
97 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
98 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
99 FF(std::string("0x04b4df56e3d7753f91960d59ae099b9beb2ce690e6bbdcd0b599d49ceb2acd6a")),
100 },
101 std::array<FF, t>{
102 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
103 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
104 FF(std::string("0x005eecfa15a757dc3ecae9fbd8ff06e466243534f30629fc5f1cf09eb5161ac4")),
105 },
106 std::array<FF, t>{
107 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
108 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
109 FF(std::string("0x0680bfdd8b9680e04659227634a1ec5282e5a7cef81b15677f8448bda4279059")),
110 },
111 std::array<FF, t>{
112 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
113 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
114 FF(std::string("0x01d0bf8fab0a1a7a14e2930794f7a3065c17e10b1cedd791b8877d97acd85053")),
115 },
116 std::array<FF, t>{
117 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
118 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
119 FF(std::string("0x02c2c8c79f808ace54ba207053c0d412c0fc11a610f14c48876701a37e32f464")),
120 },
121 std::array<FF, t>{
122 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
123 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
124 FF(std::string("0x0354ec9ed01d20ec52aae19a9b858d3474d8234c11ad7bce630ad56c54afa562")),
125 },
126 std::array<FF, t>{
127 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
128 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
129 FF(std::string("0x030df20fcf6427bac38bb5d1a42287f4e4136ac5892340e994e6ea28deec1e55")),
130 },
131 std::array<FF, t>{
132 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
133 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
134 FF(std::string("0x0528cf329c64e7ee3040bafbdeff61e241d99b424091e31472eda296fc9c6778")),
135 },
136 std::array<FF, t>{
137 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
138 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
139 FF(std::string("0x040416f24f623534634789660df5435ebf0c3e0c69e6c5b5ff6e757930bd1960")),
140 },
141 std::array<FF, t>{
142 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
143 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
144 FF(std::string("0x00380c8f936e2ed9fd488ae3bac7dce315ba21b11e88339cd5444435ccc9ea38")),
145 },
146 std::array<FF, t>{
147 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
148 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
149 FF(std::string("0x01cc4f5d5603d176f1a8e344392efd2d03ad0541832829d245e0e2291f255b75")),
150 },
151 std::array<FF, t>{
152 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
153 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
154 FF(std::string("0x05728917af5da91f9539310d99f5d142e011d6c8e015ea5423c502aa99c09752")),
155 },
156 std::array<FF, t>{
157 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
158 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
159 FF(std::string("0x00efb450a9e86e1a46e295a348f0f23590925107d17c56d7c788fecc17219aa1")),
160 },
161 std::array<FF, t>{
162 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
163 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
164 FF(std::string("0x02020d74d36c421ae1a025616b342d0784b8fcd977de6c53a6c26693774dca99")),
165 },
166 std::array<FF, t>{
167 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
168 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
169 FF(std::string("0x07cfb309b75fd3bf2705558ae511dc82335050969f4bf84fa2b7b4f583989287")),
170 },
171 std::array<FF, t>{
172 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
173 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
174 FF(std::string("0x04651e48b2e9349a5365e009ece626809d7b7d02a617eb98c785a784812d75e9")),
175 },
176 std::array<FF, t>{
177 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
178 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
179 FF(std::string("0x00d77627b270f65122d0269719da923ccae822d9aad0f0947a3b5c8f71c0dcc7")),
180 },
181 std::array<FF, t>{
182 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
183 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
184 FF(std::string("0x0199ad3d641b54c4d571b3fe37773a8b82b003377f0dd8b7d3b7758c32908ea8")),
185 },
186 std::array<FF, t>{
187 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
188 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
189 FF(std::string("0x044f33640a8ecfd3973e2e9172a7333482b2d297be2da289319e72d137cdfe6e")),
190 },
191 std::array<FF, t>{
192 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
193 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
194 FF(std::string("0x07e4adf9894d964189d00a02dcf1e6be7f801234f5216eab6b6f366b6701abf7")),
195 },
196 std::array<FF, t>{
197 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
198 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
199 FF(std::string("0x03641fa5b3c90452f5ff808f8a9817eda7c6aecfb5471dfdca559fb4e711ee90")),
200 },
201 std::array<FF, t>{
202 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
203 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
204 FF(std::string("0x03de5729efd2fcbd897a49a78fa923fc306df32e6e2f0e02d0eee2c2cc3f3533")),
205 },
206 std::array<FF, t>{
207 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
208 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
209 FF(std::string("0x062691891a3fc1e27f622966ca0be20c06563500c8f06c9bdb77bd2882d6c994")),
210 },
211 std::array<FF, t>{
212 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
213 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
214 FF(std::string("0x06608d3bf11c18e4688739f72205763d1590cc4f9885ae1d86e96e0604baa0be")),
215 },
216 std::array<FF, t>{
217 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
218 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
219 FF(std::string("0x011c9c9b39cac71e3419726ce779116d07249f51cbdda4fd98c25cbbf593a316")),
220 },
221 std::array<FF, t>{
222 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
223 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
224 FF(std::string("0x061e23b58203269caef0850f74da27b9748e3312ea40c6844dd68c557c462ad7")),
225 },
226 std::array<FF, t>{
227 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
228 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
229 FF(std::string("0x04182cd9ab1d9488f870a572010bc2a3d9878440b25951e4ce010855cf83bdc8")),
230 },
231 std::array<FF, t>{
232 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
233 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
234 FF(std::string("0x0520fe6c4a096793f9055e6823116d15f1df2fe89d306f9965f6a59f4f3ecb71")),
235 },
236 std::array<FF, t>{
237 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
238 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
239 FF(std::string("0x0346b2b2d6e5810129e093093dcd3dfa99ed6d71f47723ea3fbe4d4e2fd4afa1")),
240 },
241 std::array<FF, t>{
242 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
243 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
244 FF(std::string("0x01359ca923e7f1448ec1dd2a3684bee4e8b682c8e8e973acea72877ce9f7e6cf")),
245 },
246 std::array<FF, t>{
247 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
248 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
249 FF(std::string("0x047c655f55cf307800dfefdad24de86fde9deadab145a1b392420f37b95d9675")),
250 },
251 std::array<FF, t>{
252 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
253 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
254 FF(std::string("0x04ab291f16555fa8a968cd7c9c285a9598efd925f2d58b7aa38ad87dca8441a8")),
255 },
256 std::array<FF, t>{
257 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
258 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
259 FF(std::string("0x039f409c7c782101223d1f6f7d86c21a22c44ef959510e392c9c7c5d17c629c5")),
260 },
261 std::array<FF, t>{
262 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
263 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
264 FF(std::string("0x044be36b782f882ad86eecb0cd6beb02e1a2f9fb5587a3babfacead0cafb6052")),
265 },
266 std::array<FF, t>{
267 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
268 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
269 FF(std::string("0x050a1dfde9b504ad2906db6eb5b507203cd1ceb394c52ce7107679a53a0d538b")),
270 },
271 std::array<FF, t>{
272 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
273 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
274 FF(std::string("0x05c753c14da89e287b181c0dd11ac6c3680bdd7f1017dae083e7aebbeab183ab")),
275 },
276 std::array<FF, t>{
277 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
278 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
279 FF(std::string("0x02cf6306ed32232106c8015a3b180f386eee93e15f7b4f4fa57746525fc0520c")),
280 },
281 std::array<FF, t>{
282 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
283 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
284 FF(std::string("0x02c2014634d52e27420873cf347429091dfc6380689bd4f54d7d8e502c1c3a09")),
285 },
286 std::array<FF, t>{
287 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
288 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
289 FF(std::string("0x03cfb9c5bd93e02b2fdacde2058e33e5975c446345f010d850fc09cdf86ed8a1")),
290 },
291 std::array<FF, t>{
292 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
293 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
294 FF(std::string("0x0363fa71a383cf3897933f1411fc5f806e311e84f72cb50a9ea4e1281f6b0299")),
295 },
296 std::array<FF, t>{
297 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
298 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
299 FF(std::string("0x0728199657067ee16947b3fc76271676b4901b2a3686cffebcb960da91b05df8")),
300 },
301 std::array<FF, t>{
302 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
303 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
304 FF(std::string("0x03fdfbd47d27f3d34f0723b728e8921dc9bde34a9872df5a652a078d7e4ee021")),
305 },
306 std::array<FF, t>{
307 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
308 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
309 FF(std::string("0x07f241379440cacd7dc0efbe7858eb7de53cc02ca7d24197945c453398eff449")),
310 },
311 std::array<FF, t>{
312 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
313 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
314 FF(std::string("0x05b2e8771ea9a0004e3bf056f3727797cbb457a27574d5f104354e52a5c25f0b")),
315 },
316 std::array<FF, t>{
317 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
318 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
319 FF(std::string("0x00a8ddbce708de44a7e0b3b0333146e1e910245be6bf822ea057a081bda2e23e")),
320 },
321 std::array<FF, t>{
322 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
323 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
324 FF(std::string("0x02d521e0daca24e431aa47cd90a0f551c12270e533835613edce2e19aa9b0f61")),
325 },
326 std::array<FF, t>{
327 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
328 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
329 FF(std::string("0x06cdbc0f2aa54d2cf7d5ac3b93f855af03eef7b07aaee00341a6266c30e08ae6")),
330 },
331 std::array<FF, t>{
332 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
333 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
334 FF(std::string("0x03dd96a17111ec8f4c5da3ad6794c0961ceee452cbe92c7a0941112b36ed9bf3")),
335 },
336 std::array<FF, t>{
337 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
338 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
339 FF(std::string("0x05eafb1edeedc5c07ac07fdd06159344a2cfb92196a65d9ec0c5e732c36687dc")),
340 },
341 std::array<FF, t>{
342 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
343 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
344 FF(std::string("0x04ab038d7b09eda9324577b260feaebdbcec5a7b7c7f449b312cfcd065c207e6")),
345 },
346 std::array<FF, t>{
347 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
348 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
349 FF(std::string("0x04ca71981e4df6b505d2b0d94e235608463c58052570f68e495fc80c7fdef220")),
350 },
351 std::array<FF, t>{
352 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
353 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
354 FF(std::string("0x06dee9c6da4617e32aa419899c8ea8137e9b59d7e2759ffe573c15b77e413d2f")),
355 },
356 std::array<FF, t>{
357 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
358 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
359 FF(std::string("0x058f9e60b34ddab84dcbe2396065a4305b4a795a4770e4541e625d0460c6f186")),
360 },
361 std::array<FF, t>{
362 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
363 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
364 FF(std::string("0x047b7b4a802a10c1e6c9c735db6c34042d290906f274bea8fcecef17fc9af632")),
365 },
366 std::array<FF, t>{
367 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
368 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
369 FF(std::string("0x01849bcdb9ad7171096ecc936a186774084a074be0bfc0fbb9463a06a2bd430c")),
370 },
371 std::array<FF, t>{
372 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
373 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
374 FF(std::string("0x041870fbe04438348af5767bddaecd8aea3b49b4217547dec4d699b1466736cc")),
375 },
376 std::array<FF, t>{
377 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
378 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
379 FF(std::string("0x0226c04e598076a9fa02aa64557daf28c0ec42e3d4da68d1965029d284738b07")),
380 },
381 std::array<FF, t>{
382 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
383 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
384 FF(std::string("0x01f0e971f0485a5b42eb92d6655c3ddb475cec4371f269a95335b2a7d6dac0fb")),
385 },
386 std::array<FF, t>{
387 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
388 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
389 FF(std::string("0x009f31cc2907dccbf994d35aa47ee3f4ebdf3703f795047a7b40dd3926431563")),
390 },
391 std::array<FF, t>{
392 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
393 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
394 FF(std::string("0x04b40cce78f3b641e31ce4df58ce5a42c22cfbc198c84451ffe8cca4c64bd7d2")),
395 },
396 std::array<FF, t>{
397 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
398 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
399 FF(std::string("0x0191660489e4bd8a3e4563173de4a226f3ac736962fdfb70f72cb93ce50f8b9f")),
400 },
401 std::array<FF, t>{
402 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
403 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
404 FF(std::string("0x018c0919618db971f74eb01f293f2daea814b475103373dc7ed8dd4c7b467410")),
405 },
406 std::array<FF, t>{
407 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
408 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
409 FF(std::string("0x035b60253848530e845c8753121577d0ef37002e941c3dc1fb240bd57eadc803")),
410 },
411 std::array<FF, t>{
412 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
413 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
414 FF(std::string("0x01ae99db1575ae91c8b43a9f71a5f362581ad9b413d97fa6fd029134957451d5")),
415 },
416 std::array<FF, t>{
417 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
418 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
419 FF(std::string("0x03e6e1d0f3f8a0f728148ebcbd5d7d337d7cb8feb58a37d2d1dfb357e172647b")),
420 },
421 std::array<FF, t>{
422 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
423 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
424 FF(std::string("0x018bc36dffa8f96a659e1a171b55d2706ee3e9ad619e16f5c38dd1f4a209b8f3")),
425 },
426 std::array<FF, t>{
427 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
428 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
429 FF(std::string("0x02c7a3ef1afb6a302b54afc3a107ff9199a16efe9a1cc3ab83fa5b64893de4ed")),
430 },
431 std::array<FF, t>{
432 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
433 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
434 FF(std::string("0x053a7bd889bed07bf5e27dd8e92f6ae85e4fe4e84b0c6dde9856e94469de4bd7")),
435 },
436 std::array<FF, t>{
437 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
438 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
439 FF(std::string("0x04d383ff7ffc6318fda704aca35995f86bec5a02ce9a0bf9d3cc0cc2f03ccea9")),
440 },
441 std::array<FF, t>{
442 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
443 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
444 FF(std::string("0x04667b6762fb8ad53d07ef7e8a65b21ca96e0b3503037710d1292519c326f5cd")),
445 },
446 std::array<FF, t>{
447 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
448 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
449 FF(std::string("0x002cc8b43e75cf0b42a93c39ea98bcd46055dccc9589f02eb7fb536422e5921f")),
450 },
451 std::array<FF, t>{
452 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
453 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
454 FF(std::string("0x06b32ee98680871d38751447bfd76086ba4df0e7be59c55f4b2ce25582bf9c60")),
455 },
456 std::array<FF, t>{
457 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
458 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
459 FF(std::string("0x03e907927c7182faaa3b3c81358b82e734efac1f0609f0862d635cb1387102a3")),
460 },
461 std::array<FF, t>{
462 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
463 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
464 FF(std::string("0x03f3a5057b3a08975f0253728e512af78d2f437973f6a93793ea5e8424fbc6ea")),
465 },
466 std::array<FF, t>{
467 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
468 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
469 FF(std::string("0x014b491d73724779f8aa74b3fd8aa5821c21e1017224726a7a946bb6ca68d8f5")),
470 },
471 std::array<FF, t>{
472 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
473 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
474 FF(std::string("0x05c8278c7bbfc30ae7f60e514fe3b9367aca84c54ad1373861695ea4abb814ef")),
475 },
476 std::array<FF, t>{
477 FF(std::string("0x064851937f9836ee5a08a7dde65e44b467018a82ba3bf99bba0b4502755c8074")),
478 FF(std::string("0x06a9ac84251294769eca450ffb52b441882be77cb85f422ff9ea5e73f1d971dc")),
479 FF(std::string("0x037ec35b710b0d04c9a2b71f2f7bd098c6a81d991d27f0fc1884f5ca545064de")),
480 },
481 std::array<FF, t>{
482 FF(std::string("0x005334f75b052c0235119816883040da72c6d0a61538bdfff46d6a242bfeb7a1")),
483 FF(std::string("0x05d0af4fcbd9e056c1020cca9d871ae68f80ee4af2ec6547cd49d6dca50aa431")),
484 FF(std::string("0x030131bce2fba5694114a19c46d24e00b4699dc00f1d53ba5ab99537901b1e65")),
485 },
486 std::array<FF, t>{
487 FF(std::string("0x05646a95a7c1ae86b34c0750ed2e641c538f93f13161be3c4957660f2e788965")),
488 FF(std::string("0x04b9f291d7b430c79fac36230a11f43e78581f5259692b52c90df47b7d4ec01a")),
489 FF(std::string("0x05006d393d3480f41a98f19127072dc83e00becf6ceb4d73d890e74abae01a13")),
490 },
491 std::array<FF, t>{
492 FF(std::string("0x062c9d42199f3b260e7cb8a115143106acf4f702e6b346fd202dc3b26a679d80")),
493 FF(std::string("0x051274d092db5099f180b1a8a13b7f2c7606836eabd8af54bf1d9ac2dc5717a5")),
494 FF(std::string("0x061fc552b8eb75e17ad0fb7aaa4ca528f415e14f0d9cdbed861a8db0bfff0c5b")),
495 },
496 };
497
498 static constexpr std::array<FF, t> TEST_VECTOR_INPUT{
499 FF(std::string("0x0000000000000000000000000000000000000000537461726b6e6574486f6e6b")),
500 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000000")),
501 FF(std::string("0x0000000000000000000000000000000000000000000000000000000000000001")),
502 };
503 static constexpr std::array<FF, t> TEST_VECTOR_OUTPUT{
504 FF(std::string("0x05b65cb3dd09edcddac6731b71ec2eaa6c2974d97a1d5978a1c97fa1b00c80ff")),
505 FF(std::string("0x0257539df2ca7f054b6206fa85d6fb92c692ed7f51b34534fcbab8e9cf821071")),
506 FF(std::string("0x05c6798b795dabcf3dee9ae895a0a48b98458b78c7f7885959261ddd251606f5")),
507 };
508};
509
510} // namespace bb::starknet::crypto
511#endif
bb::fr FF
constexpr uint32_t round_constants[64]
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13