forked from dogecoinfoundation/libdogecoin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
aes_tests.c
601 lines (578 loc) · 96.2 KB
/
aes_tests.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
/**********************************************************************
* Copyright (c) 2015 Jonas Schnelli *
* Copyright (c) 2022 bluezr *
* Copyright (c) 2022 The Dogecoin Foundation *
* Distributed under the MIT software license, see the accompanying *
* file COPYING or http://www.opensource.org/licenses/mit-license.php.*
**********************************************************************/
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "utest.h"
#include <dogecoin/ctaes.h>
#include <dogecoin/aes.h>
#include <dogecoin/utils.h>
struct nist_aes_test_vector {
char key[65];
char iv[33];
char in[33];
char out[33];
};
static const struct nist_aes_test_vector nist_aes_test_vectors_encrypt[] =
{
{"8000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "e35a6dcb19b201a01ebcfa8aa22b5759"},
{"c000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "b29169cdcf2d83e838125a12ee6aa400"},
{"e000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d8f3a72fc3cdf74dfaf6c3e6b97b2fa6"},
{"f000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "1c777679d50037c79491a94da76a9a35"},
{"f800000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "9cf4893ecafa0a0247a898e040691559"},
{"fc00000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "8fbb413703735326310a269bd3aa94b2"},
{"fe00000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "60e32246bed2b0e859e55c1cc6b26502"},
{"ff00000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ec52a212f80a09df6317021bc2a9819e"},
{"ff80000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "f23e5b600eb70dbccf6c0b1d9a68182c"},
{"ffc0000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "a3f599d63a82a968c33fe26590745970"},
{"ffe0000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d1ccb9b1337002cbac42c520b5d67722"},
{"fff0000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "cc111f6c37cf40a1159d00fb59fb0488"},
{"fff8000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "dc43b51ab609052372989a26e9cdd714"},
{"fffc000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "4dcede8da9e2578f39703d4433dc6459"},
{"fffe000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "1a4c1c263bbccfafc11782894685e3a8"},
{"ffff000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "937ad84880db50613423d6d527a2823d"},
{"ffff800000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "610b71dfc688e150d8152c5b35ebc14d"},
{"ffffc00000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "27ef2495dabf323885aab39c80f18d8b"},
{"ffffe00000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "633cafea395bc03adae3a1e2068e4b4e"},
{"fffff00000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6e1b482b53761cf631819b749a6f3724"},
{"fffff80000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "976e6f851ab52c771998dbb2d71c75a9"},
{"fffffc0000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "85f2ba84f8c307cf525e124c3e22e6cc"},
{"fffffe0000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6bcca98bf6a835fa64955f72de4115fe"},
{"ffffff0000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "2c75e2d36eebd65411f14fd0eb1d2a06"},
{"ffffff8000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "bd49295006250ffca5100b6007a0eade"},
{"ffffffc000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "a190527d0ef7c70f459cd3940df316ec"},
{"ffffffe000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "bbd1097a62433f79449fa97d4ee80dbf"},
{"fffffff000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "07058e408f5b99b0e0f061a1761b5b3b"},
{"fffffff800000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "5fd1f13fa0f31e37fabde328f894eac2"},
{"fffffffc00000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "fc4af7c948df26e2ef3e01c1ee5b8f6f"},
{"fffffffe00000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "829fd7208fb92d44a074a677ee9861ac"},
{"ffffffff00000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ad9fc613a703251b54c64a0e76431711"},
{"ffffffff80000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "33ac9eccc4cc75e2711618f80b1548e8"},
{"ffffffffc0000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "2025c74b8ad8f4cda17ee2049c4c902d"},
{"ffffffffe0000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "f85ca05fe528f1ce9b790166e8d551e7"},
{"fffffffff0000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6f6238d8966048d4967154e0dad5a6c9"},
{"fffffffff8000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "f2b21b4e7640a9b3346de8b82fb41e49"},
{"fffffffffc000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "f836f251ad1d11d49dc344628b1884e1"},
{"fffffffffe000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "077e9470ae7abea5a9769d49182628c3"},
{"ffffffffff000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "e0dcc2d27fc9865633f85223cf0d611f"},
{"ffffffffff800000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "be66cfea2fecd6bf0ec7b4352c99bcaa"},
{"ffffffffffc00000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "df31144f87a2ef523facdcf21a427804"},
{"ffffffffffe00000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "b5bb0f5629fb6aae5e1839a3c3625d63"},
{"fffffffffff00000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "3c9db3335306fe1ec612bdbfae6b6028"},
{"fffffffffff80000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "3dd5c34634a79d3cfcc8339760e6f5f4"},
{"fffffffffffc0000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "82bda118a3ed7af314fa2ccc5c07b761"},
{"fffffffffffe0000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "2937a64f7d4f46fe6fea3b349ec78e38"},
{"ffffffffffff0000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "225f068c28476605735ad671bb8f39f3"},
{"ffffffffffff8000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ae682c5ecd71898e08942ac9aa89875c"},
{"ffffffffffffc000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "5e031cb9d676c3022d7f26227e85c38f"},
{"ffffffffffffe000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "a78463fb064db5d52bb64bfef64f2dda"},
{"fffffffffffff000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "8aa9b75e784593876c53a00eae5af52b"},
{"fffffffffffff800000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "3f84566df23da48af692722fe980573a"},
{"fffffffffffffc00000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "31690b5ed41c7eb42a1e83270a7ff0e6"},
{"fffffffffffffe00000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "77dd7702646d55f08365e477d3590eda"},
{"ffffffffffffff00000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "4c022ac62b3cb78d739cc67b3e20bb7e"},
{"ffffffffffffff80000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "092fa137ce18b5dfe7906f550bb13370"},
{"ffffffffffffffc0000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "3e0cdadf2e68353c0027672c97144dd3"},
{"ffffffffffffffe0000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d8c4b200b383fc1f2b2ea677618a1d27"},
{"fffffffffffffff0000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "11825f99b0e9bb3477c1c0713b015aac"},
{"fffffffffffffff8000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "f8b9fffb5c187f7ddc7ab10f4fb77576"},
{"fffffffffffffffc000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ffb4e87a32b37d6f2c8328d3b5377802"},
{"fffffffffffffffe000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d276c13a5d220f4da9224e74896391ce"},
{"ffffffffffffffff000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "94efe7a0e2e031e2536da01df799c927"},
{"ffffffffffffffff800000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "8f8fd822680a85974e53a5a8eb9d38de"},
{"ffffffffffffffffc00000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "e0f0a91b2e45f8cc37b7805a3042588d"},
{"ffffffffffffffffe00000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "597a6252255e46d6364dbeeda31e279c"},
{"fffffffffffffffff00000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "f51a0f694442b8f05571797fec7ee8bf"},
{"fffffffffffffffff80000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "9ff071b165b5198a93dddeebc54d09b5"},
{"fffffffffffffffffc0000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "c20a19fd5758b0c4bc1a5df89cf73877"},
{"fffffffffffffffffe0000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "97120166307119ca2280e9315668e96f"},
{"ffffffffffffffffff0000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "4b3b9f1e099c2a09dc091e90e4f18f0a"},
{"ffffffffffffffffff8000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "eb040b891d4b37f6851f7ec219cd3f6d"},
{"ffffffffffffffffffc000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "9f0fdec08b7fd79aa39535bea42db92a"},
{"ffffffffffffffffffe000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "2e70f168fc74bf911df240bcd2cef236"},
{"fffffffffffffffffff000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "462ccd7f5fd1108dbc152f3cacad328b"},
{"fffffffffffffffffff800000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "a4af534a7d0b643a01868785d86dfb95"},
{"fffffffffffffffffffc00000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ab980296197e1a5022326c31da4bf6f3"},
{"fffffffffffffffffffe00000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "f97d57b3333b6281b07d486db2d4e20c"},
{"ffffffffffffffffffff00000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "f33fa36720231afe4c759ade6bd62eb6"},
{"ffffffffffffffffffff80000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "fdcfac0c02ca538343c68117e0a15938"},
{"ffffffffffffffffffffc0000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ad4916f5ee5772be764fc027b8a6e539"},
{"ffffffffffffffffffffe0000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "2e16873e1678610d7e14c02d002ea845"},
{"fffffffffffffffffffff0000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "4e6e627c1acc51340053a8236d579576"},
{"fffffffffffffffffffff8000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ab0c8410aeeead92feec1eb430d652cb"},
{"fffffffffffffffffffffc000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "e86f7e23e835e114977f60e1a592202e"},
{"fffffffffffffffffffffe000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "e68ad5055a367041fade09d9a70a794b"},
{"ffffffffffffffffffffff000000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "0791823a3c666bb6162825e78606a7fe"},
{"ffffffffffffffffffffff800000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "dcca366a9bf47b7b868b77e25c18a364"},
{"ffffffffffffffffffffffc00000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "684c9efc237e4a442965f84bce20247a"},
{"ffffffffffffffffffffffe00000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "a858411ffbe63fdb9c8aa1bfaed67b52"},
{"fffffffffffffffffffffff00000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "04bc3da2179c3015498b0e03910db5b8"},
{"fffffffffffffffffffffff80000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "40071eeab3f935dbc25d00841460260f"},
{"fffffffffffffffffffffffc0000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "0ebd7c30ed2016e08ba806ddb008bcc8"},
{"fffffffffffffffffffffffe0000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "15c6becf0f4cec7129cbd22d1a79b1b8"},
{"ffffffffffffffffffffffff0000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "0aeede5b91f721700e9e62edbf60b781"},
{"ffffffffffffffffffffffff8000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "266581af0dcfbed1585e0a242c64b8df"},
{"ffffffffffffffffffffffffc000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6693dc911662ae473216ba22189a511a"},
{"ffffffffffffffffffffffffe000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "7606fa36d86473e6fb3a1bb0e2c0adf5"},
{"fffffffffffffffffffffffff000000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "112078e9e11fbb78e26ffb8899e96b9a"},
{"fffffffffffffffffffffffff800000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "40b264e921e9e4a82694589ef3798262"},
{"fffffffffffffffffffffffffc00000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "8d4595cb4fa7026715f55bd68e2882f9"},
{"fffffffffffffffffffffffffe00000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "b588a302bdbc09197df1edae68926ed9"},
{"ffffffffffffffffffffffffff00000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "33f7502390b8a4a221cfecd0666624ba"},
{"ffffffffffffffffffffffffff80000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "3d20253adbce3be2373767c4d822c566"},
{"ffffffffffffffffffffffffffc0000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "a42734a3929bf84cf0116c9856a3c18c"},
{"ffffffffffffffffffffffffffe0000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "e3abc4939457422bb957da3c56938c6d"},
{"fffffffffffffffffffffffffff0000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "972bdd2e7c525130fadc8f76fc6f4b3f"},
{"fffffffffffffffffffffffffff8000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "84a83d7b94c699cbcb8a7d9b61f64093"},
{"fffffffffffffffffffffffffffc000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ce61d63514aded03d43e6ebfc3a9001f"},
{"fffffffffffffffffffffffffffe000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6c839dd58eeae6b8a36af48ed63d2dc9"},
{"ffffffffffffffffffffffffffff000000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "cd5ece55b8da3bf622c4100df5de46f9"},
{"ffffffffffffffffffffffffffff800000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "3b6f46f40e0ac5fc0a9c1105f800f48d"},
{"ffffffffffffffffffffffffffffc00000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ba26d47da3aeb028de4fb5b3a854a24b"},
{"ffffffffffffffffffffffffffffe00000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "87f53bf620d3677268445212904389d5"},
{"fffffffffffffffffffffffffffff00000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "10617d28b5e0f4605492b182a5d7f9f6"},
{"fffffffffffffffffffffffffffff80000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "9aaec4fabbf6fae2a71feff02e372b39"},
{"fffffffffffffffffffffffffffffc0000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "3a90c62d88b5c42809abf782488ed130"},
{"fffffffffffffffffffffffffffffe0000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "f1f1c5a40899e15772857ccb65c7a09a"},
{"ffffffffffffffffffffffffffffff0000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "190843d29b25a3897c692ce1dd81ee52"},
{"ffffffffffffffffffffffffffffff8000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "a866bc65b6941d86e8420a7ffb0964db"},
{"ffffffffffffffffffffffffffffffc000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "8193c6ff85225ced4255e92f6e078a14"},
{"ffffffffffffffffffffffffffffffe000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "9661cb2424d7d4a380d547f9e7ec1cb9"},
{"fffffffffffffffffffffffffffffff000000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "86f93d9ec08453a071e2e2877877a9c8"},
{"fffffffffffffffffffffffffffffff800000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "27eefa80ce6a4a9d598e3fec365434d2"},
{"fffffffffffffffffffffffffffffffc00000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d62068444578e3ab39ce7ec95dd045dc"},
{"fffffffffffffffffffffffffffffffe00000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "b5f71d4dd9a71fe5d8bc8ba7e6ea3048"},
{"ffffffffffffffffffffffffffffffff00000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6825a347ac479d4f9d95c5cb8d3fd7e9"},
{"ffffffffffffffffffffffffffffffff80000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "e3714e94a5778955cc0346358e94783a"},
{"ffffffffffffffffffffffffffffffffc0000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d836b44bb29e0c7d89fa4b2d4b677d2a"},
{"ffffffffffffffffffffffffffffffffe0000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "5d454b75021d76d4b84f873a8f877b92"},
{"fffffffffffffffffffffffffffffffff0000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "c3498f7eced2095314fc28115885b33f"},
{"fffffffffffffffffffffffffffffffff8000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6e668856539ad8e405bd123fe6c88530"},
{"fffffffffffffffffffffffffffffffffc000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "8680db7f3a87b8605543cfdbe6754076"},
{"fffffffffffffffffffffffffffffffffe000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6c5d03b13069c3658b3179be91b0800c"},
{"ffffffffffffffffffffffffffffffffff000000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ef1b384ac4d93eda00c92add0995ea5f"},
{"ffffffffffffffffffffffffffffffffff800000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "bf8115805471741bd5ad20a03944790f"},
{"ffffffffffffffffffffffffffffffffffc00000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "c64c24b6894b038b3c0d09b1df068b0b"},
{"ffffffffffffffffffffffffffffffffffe00000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "3967a10cffe27d0178545fbf6a40544b"},
{"fffffffffffffffffffffffffffffffffff00000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "7c85e9c95de1a9ec5a5363a8a053472d"},
{"fffffffffffffffffffffffffffffffffff80000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "a9eec03c8abec7ba68315c2c8c2316e0"},
{"fffffffffffffffffffffffffffffffffffc0000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "cac8e414c2f388227ae14986fc983524"},
{"fffffffffffffffffffffffffffffffffffe0000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "5d942b7f4622ce056c3ce3ce5f1dd9d6"},
{"ffffffffffffffffffffffffffffffffffff0000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d240d648ce21a3020282c3f1b528a0b6"},
{"ffffffffffffffffffffffffffffffffffff8000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "45d089c36d5c5a4efc689e3b0de10dd5"},
{"ffffffffffffffffffffffffffffffffffffc000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "b4da5df4becb5462e03a0ed00d295629"},
{"ffffffffffffffffffffffffffffffffffffe000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "dcf4e129136c1a4b7a0f38935cc34b2b"},
{"fffffffffffffffffffffffffffffffffffff000000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d9a4c7618b0ce48a3d5aee1a1c0114c4"},
{"fffffffffffffffffffffffffffffffffffff800000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ca352df025c65c7b0bf306fbee0f36ba"},
{"fffffffffffffffffffffffffffffffffffffc00000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "238aca23fd3409f38af63378ed2f5473"},
{"fffffffffffffffffffffffffffffffffffffe00000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "59836a0e06a79691b36667d5380d8188"},
{"ffffffffffffffffffffffffffffffffffffff00000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "33905080f7acf1cdae0a91fc3e85aee4"},
{"ffffffffffffffffffffffffffffffffffffff80000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "72c9e4646dbc3d6320fc6689d93e8833"},
{"ffffffffffffffffffffffffffffffffffffffc0000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ba77413dea5925b7f5417ea47ff19f59"},
{"ffffffffffffffffffffffffffffffffffffffe0000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6cae8129f843d86dc786a0fb1a184970"},
{"fffffffffffffffffffffffffffffffffffffff0000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "fcfefb534100796eebbd990206754e19"},
{"fffffffffffffffffffffffffffffffffffffff8000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "8c791d5fdddf470da04f3e6dc4a5b5b5"},
{"fffffffffffffffffffffffffffffffffffffffc000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "c93bbdc07a4611ae4bb266ea5034a387"},
{"fffffffffffffffffffffffffffffffffffffffe000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "c102e38e489aa74762f3efc5bb23205a"},
{"ffffffffffffffffffffffffffffffffffffffff000000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "93201481665cbafc1fcc220bc545fb3d"},
{"ffffffffffffffffffffffffffffffffffffffff800000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "4960757ec6ce68cf195e454cfd0f32ca"},
{"ffffffffffffffffffffffffffffffffffffffffc00000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "feec7ce6a6cbd07c043416737f1bbb33"},
{"ffffffffffffffffffffffffffffffffffffffffe00000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "11c5413904487a805d70a8edd9c35527"},
{"fffffffffffffffffffffffffffffffffffffffff00000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "347846b2b2e36f1f0324c86f7f1b98e2"},
{"fffffffffffffffffffffffffffffffffffffffff80000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "332eee1a0cbd19ca2d69b426894044f0"},
{"fffffffffffffffffffffffffffffffffffffffffc0000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "866b5b3977ba6efa5128efbda9ff03cd"},
{"fffffffffffffffffffffffffffffffffffffffffe0000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "cc1445ee94c0f08cdee5c344ecd1e233"},
{"ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "be288319029363c2622feba4b05dfdfe"},
{"ffffffffffffffffffffffffffffffffffffffffff8000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "cfd1875523f3cd21c395651e6ee15e56"},
{"ffffffffffffffffffffffffffffffffffffffffffc000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "cb5a408657837c53bf16f9d8465dce19"},
{"ffffffffffffffffffffffffffffffffffffffffffe000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ca0bf42cb107f55ccff2fc09ee08ca15"},
{"fffffffffffffffffffffffffffffffffffffffffff000000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "fdd9bbb4a7dc2e4a23536a5880a2db67"},
{"fffffffffffffffffffffffffffffffffffffffffff800000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ede447b362c484993dec9442a3b46aef"},
{"fffffffffffffffffffffffffffffffffffffffffffc00000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "10dffb05904bff7c4781df780ad26837"},
{"fffffffffffffffffffffffffffffffffffffffffffe00000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "c33bc13e8de88ac25232aa7496398783"},
{"ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ca359c70803a3b2a3d542e8781dea975"},
{"ffffffffffffffffffffffffffffffffffffffffffff80000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "bcc65b526f88d05b89ce8a52021fdb06"},
{"ffffffffffffffffffffffffffffffffffffffffffffc0000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "db91a38855c8c4643851fbfb358b0109"},
{"ffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ca6e8893a114ae8e27d5ab03a5499610"},
{"fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6629d2b8df97da728cdd8b1e7f945077"},
{"fffffffffffffffffffffffffffffffffffffffffffff8000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "4570a5a18cfc0dd582f1d88d5c9a1720"},
{"fffffffffffffffffffffffffffffffffffffffffffffc000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "72bc65aa8e89562e3f274d45af1cd10b"},
{"fffffffffffffffffffffffffffffffffffffffffffffe000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "98551da1a6503276ae1c77625f9ea615"},
{"ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "0ddfe51ced7e3f4ae927daa3fe452cee"},
{"ffffffffffffffffffffffffffffffffffffffffffffff800000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "db826251e4ce384b80218b0e1da1dd4c"},
{"ffffffffffffffffffffffffffffffffffffffffffffffc00000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "2cacf728b88abbad7011ed0e64a1680c"},
{"ffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "330d8ee7c5677e099ac74c9994ee4cfb"},
{"fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "edf61ae362e882ddc0167474a7a77f3a"},
{"fffffffffffffffffffffffffffffffffffffffffffffff80000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6168b00ba7859e0970ecfd757efecf7c"},
{"fffffffffffffffffffffffffffffffffffffffffffffffc0000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d1415447866230d28bb1ea18a4cdfd02"},
{"fffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "516183392f7a8763afec68a060264141"},
{"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "77565c8d73cfd4130b4aa14d8911710f"},
{"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "37232a4ed21ccc27c19c9610078cabac"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffc000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "804f32ea71828c7d329077e712231666"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d64424f23cb97215e9c2c6f28d29eab7"},
{"fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "023e82b533f68c75c238cebdb2ee89a2"},
{"fffffffffffffffffffffffffffffffffffffffffffffffff800000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "193a3d24157a51f1ee0893f6777417e7"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffc00000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "84ecacfcd400084d078612b1945f2ef5"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "1dcd8bb173259eb33a5242b0de31a455"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "35e9eddbc375e792c19992c19165012b"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "8a772231c01dfdd7c98e4cfddcc0807a"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6eda7ff6b8319180ff0d6e65629d01c3"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "c267ef0e2d01a993944dd397101413cb"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "e9f80e9d845bcc0f62926af72eabca39"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "6702990727aa0878637b45dcd3a3b074"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffc000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "2e2e647d5360e09230a5d738ca33471e"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "1f56413c7add6f43d1d56e4f02190330"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "69cd0606e15af729d6bca143016d9842"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffff800000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "a085d7c1a500873a20099c4caa3c3f5b"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "4fc0d230f8891415b87b83f95f2e09d1"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "4327d08c523d8eba697a4336507d1f42"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "7a15aab82701efa5ae36ab1d6b76290f"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "5bf0051893a18bb30e139a58fed0fa54"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "97e8adf65638fd9cdf3bc22c17fe4dbd"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "1ee6ee326583a0586491c96418d1a35d"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "26b549c2ec756f82ecc48008e529956b"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "70377b6da669b072129e057cc28e9ca5"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "9c94b8b0cb8bcc919072262b3fa05ad9"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "2fbb83dfd0d7abcb05cd28cad2dfb523"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "96877803de77744bb970d0a91f4debae"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffff800000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "7379f3370cf6e5ce12ae5969c8eea312"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "02dc99fa3d4f98ce80985e7233889313"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "1e38e759075ba5cab6457da51844295a"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "70bed8dbf615868a1f9d9b05d3e7a267"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "234b148b8cb1d8c32b287e896903d150"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "294b033df4da853f4be3e243f7e513f4"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "3f58c950f0367160adec45f2441e7411"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "37f655536a704e5ace182d742a820cf4"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ea7bd6bb63418731aeac790fe42d61e8"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "e74a4c999b4c064e48bb1e413f51e5ea"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "ba9ebefdb4ccf30f296cecb3bc1943e8"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000", "00000000000000000000000000000000", "00000000000000000000000000000000", "3194367a4898c502c13bb7478640a72d"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000", "00000000000000000000000000000000", "00000000000000000000000000000000", "da797713263d6f33a5478a65ef60d412"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d1ac39bb1ef86b9c1344f214679aa376"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000", "00000000000000000000000000000000", "00000000000000000000000000000000", "2fdea9e650532be5bc0e7325337fd363"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d3a204dbd9c2af158b6ca67a5156ce4a"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000", "00000000000000000000000000000000", "00000000000000000000000000000000", "3a0a0e75a8da36735aee6684d965a778"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000", "00000000000000000000000000000000", "00000000000000000000000000000000", "52fc3e620492ea99641ea168da5b6d52"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d2e0c7f15b4772467d2cfc873000b2ca"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000", "00000000000000000000000000000000", "00000000000000000000000000000000", "563531135e0c4d70a38f8bdb190ba04e"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000", "00000000000000000000000000000000", "00000000000000000000000000000000", "a8a39a0f5663f4c0fe5f2d3cafff421a"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000", "00000000000000000000000000000000", "00000000000000000000000000000000", "d94b5e90db354c1e42f61fabe167b2c0"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000", "00000000000000000000000000000000", "00000000000000000000000000000000", "50e6d3c9b6698a7cd276f96b1473f35a"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000", "00000000000000000000000000000000", "00000000000000000000000000000000", "9338f08e0ebee96905d8f2e825208f43"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800", "00000000000000000000000000000000", "00000000000000000000000000000000", "8b378c86672aa54a3a266ba19d2580ca"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00", "00000000000000000000000000000000", "00000000000000000000000000000000", "cca7c3086f5f9511b31233da7cab9160"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00", "00000000000000000000000000000000", "00000000000000000000000000000000", "5b40ff4ec9be536ba23035fa4f06064c"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00", "00000000000000000000000000000000", "00000000000000000000000000000000", "60eb5af8416b257149372194e8b88749"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80", "00000000000000000000000000000000", "00000000000000000000000000000000", "2f005a8aed8a361c92e440c15520cbd1"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0", "00000000000000000000000000000000", "00000000000000000000000000000000", "7b03627611678a997717578807a800e2"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", "00000000000000000000000000000000", "00000000000000000000000000000000", "cf78618f74f6f3696e0a4779b90b5a77"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0", "00000000000000000000000000000000", "00000000000000000000000000000000", "03720371a04962eaea0a852e69972858"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8", "00000000000000000000000000000000", "00000000000000000000000000000000", "1f8a8133aa8ccf70e2bd3285831ca6b7"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc", "00000000000000000000000000000000", "00000000000000000000000000000000", "27936bd27fb1468fc8b48bc483321725"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", "00000000000000000000000000000000", "00000000000000000000000000000000", "b07d4f3e2cd2ef2eb545980754dfea0f"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "00000000000000000000000000000000", "00000000000000000000000000000000", "4bf85f1b5d54adbc307b0a048389adcb"}};
static const struct nist_aes_test_vector nist_aes_test_vectors_decrypt[] =
{
{"8000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "e35a6dcb19b201a01ebcfa8aa22b5759", "00000000000000000000000000000000"},
{"c000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "b29169cdcf2d83e838125a12ee6aa400", "00000000000000000000000000000000"},
{"e000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "d8f3a72fc3cdf74dfaf6c3e6b97b2fa6", "00000000000000000000000000000000"},
{"f000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "1c777679d50037c79491a94da76a9a35", "00000000000000000000000000000000"},
{"f800000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "9cf4893ecafa0a0247a898e040691559", "00000000000000000000000000000000"},
{"fc00000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "8fbb413703735326310a269bd3aa94b2", "00000000000000000000000000000000"},
{"fe00000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "60e32246bed2b0e859e55c1cc6b26502", "00000000000000000000000000000000"},
{"ff00000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "ec52a212f80a09df6317021bc2a9819e", "00000000000000000000000000000000"},
{"ff80000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "f23e5b600eb70dbccf6c0b1d9a68182c", "00000000000000000000000000000000"},
{"ffc0000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "a3f599d63a82a968c33fe26590745970", "00000000000000000000000000000000"},
{"ffe0000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "d1ccb9b1337002cbac42c520b5d67722", "00000000000000000000000000000000"},
{"fff0000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "cc111f6c37cf40a1159d00fb59fb0488", "00000000000000000000000000000000"},
{"fff8000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "dc43b51ab609052372989a26e9cdd714", "00000000000000000000000000000000"},
{"fffc000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "4dcede8da9e2578f39703d4433dc6459", "00000000000000000000000000000000"},
{"fffe000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "1a4c1c263bbccfafc11782894685e3a8", "00000000000000000000000000000000"},
{"ffff000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "937ad84880db50613423d6d527a2823d", "00000000000000000000000000000000"},
{"ffff800000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "610b71dfc688e150d8152c5b35ebc14d", "00000000000000000000000000000000"},
{"ffffc00000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "27ef2495dabf323885aab39c80f18d8b", "00000000000000000000000000000000"},
{"ffffe00000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "633cafea395bc03adae3a1e2068e4b4e", "00000000000000000000000000000000"},
{"fffff00000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "6e1b482b53761cf631819b749a6f3724", "00000000000000000000000000000000"},
{"fffff80000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "976e6f851ab52c771998dbb2d71c75a9", "00000000000000000000000000000000"},
{"fffffc0000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "85f2ba84f8c307cf525e124c3e22e6cc", "00000000000000000000000000000000"},
{"fffffe0000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "6bcca98bf6a835fa64955f72de4115fe", "00000000000000000000000000000000"},
{"ffffff0000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "2c75e2d36eebd65411f14fd0eb1d2a06", "00000000000000000000000000000000"},
{"ffffff8000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "bd49295006250ffca5100b6007a0eade", "00000000000000000000000000000000"},
{"ffffffc000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "a190527d0ef7c70f459cd3940df316ec", "00000000000000000000000000000000"},
{"ffffffe000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "bbd1097a62433f79449fa97d4ee80dbf", "00000000000000000000000000000000"},
{"fffffff000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "07058e408f5b99b0e0f061a1761b5b3b", "00000000000000000000000000000000"},
{"fffffff800000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "5fd1f13fa0f31e37fabde328f894eac2", "00000000000000000000000000000000"},
{"fffffffc00000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "fc4af7c948df26e2ef3e01c1ee5b8f6f", "00000000000000000000000000000000"},
{"fffffffe00000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "829fd7208fb92d44a074a677ee9861ac", "00000000000000000000000000000000"},
{"ffffffff00000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "ad9fc613a703251b54c64a0e76431711", "00000000000000000000000000000000"},
{"ffffffff80000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "33ac9eccc4cc75e2711618f80b1548e8", "00000000000000000000000000000000"},
{"ffffffffc0000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "2025c74b8ad8f4cda17ee2049c4c902d", "00000000000000000000000000000000"},
{"ffffffffe0000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "f85ca05fe528f1ce9b790166e8d551e7", "00000000000000000000000000000000"},
{"fffffffff0000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "6f6238d8966048d4967154e0dad5a6c9", "00000000000000000000000000000000"},
{"fffffffff8000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "f2b21b4e7640a9b3346de8b82fb41e49", "00000000000000000000000000000000"},
{"fffffffffc000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "f836f251ad1d11d49dc344628b1884e1", "00000000000000000000000000000000"},
{"fffffffffe000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "077e9470ae7abea5a9769d49182628c3", "00000000000000000000000000000000"},
{"ffffffffff000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "e0dcc2d27fc9865633f85223cf0d611f", "00000000000000000000000000000000"},
{"ffffffffff800000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "be66cfea2fecd6bf0ec7b4352c99bcaa", "00000000000000000000000000000000"},
{"ffffffffffc00000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "df31144f87a2ef523facdcf21a427804", "00000000000000000000000000000000"},
{"ffffffffffe00000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "b5bb0f5629fb6aae5e1839a3c3625d63", "00000000000000000000000000000000"},
{"fffffffffff00000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "3c9db3335306fe1ec612bdbfae6b6028", "00000000000000000000000000000000"},
{"fffffffffff80000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "3dd5c34634a79d3cfcc8339760e6f5f4", "00000000000000000000000000000000"},
{"fffffffffffc0000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "82bda118a3ed7af314fa2ccc5c07b761", "00000000000000000000000000000000"},
{"fffffffffffe0000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "2937a64f7d4f46fe6fea3b349ec78e38", "00000000000000000000000000000000"},
{"ffffffffffff0000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "225f068c28476605735ad671bb8f39f3", "00000000000000000000000000000000"},
{"ffffffffffff8000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "ae682c5ecd71898e08942ac9aa89875c", "00000000000000000000000000000000"},
{"ffffffffffffc000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "5e031cb9d676c3022d7f26227e85c38f", "00000000000000000000000000000000"},
{"ffffffffffffe000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "a78463fb064db5d52bb64bfef64f2dda", "00000000000000000000000000000000"},
{"fffffffffffff000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "8aa9b75e784593876c53a00eae5af52b", "00000000000000000000000000000000"},
{"fffffffffffff800000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "3f84566df23da48af692722fe980573a", "00000000000000000000000000000000"},
{"fffffffffffffc00000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "31690b5ed41c7eb42a1e83270a7ff0e6", "00000000000000000000000000000000"},
{"fffffffffffffe00000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "77dd7702646d55f08365e477d3590eda", "00000000000000000000000000000000"},
{"ffffffffffffff00000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "4c022ac62b3cb78d739cc67b3e20bb7e", "00000000000000000000000000000000"},
{"ffffffffffffff80000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "092fa137ce18b5dfe7906f550bb13370", "00000000000000000000000000000000"},
{"ffffffffffffffc0000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "3e0cdadf2e68353c0027672c97144dd3", "00000000000000000000000000000000"},
{"ffffffffffffffe0000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "d8c4b200b383fc1f2b2ea677618a1d27", "00000000000000000000000000000000"},
{"fffffffffffffff0000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "11825f99b0e9bb3477c1c0713b015aac", "00000000000000000000000000000000"},
{"fffffffffffffff8000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "f8b9fffb5c187f7ddc7ab10f4fb77576", "00000000000000000000000000000000"},
{"fffffffffffffffc000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "ffb4e87a32b37d6f2c8328d3b5377802", "00000000000000000000000000000000"},
{"fffffffffffffffe000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "d276c13a5d220f4da9224e74896391ce", "00000000000000000000000000000000"},
{"ffffffffffffffff000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "94efe7a0e2e031e2536da01df799c927", "00000000000000000000000000000000"},
{"ffffffffffffffff800000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "8f8fd822680a85974e53a5a8eb9d38de", "00000000000000000000000000000000"},
{"ffffffffffffffffc00000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "e0f0a91b2e45f8cc37b7805a3042588d", "00000000000000000000000000000000"},
{"ffffffffffffffffe00000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "597a6252255e46d6364dbeeda31e279c", "00000000000000000000000000000000"},
{"fffffffffffffffff00000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "f51a0f694442b8f05571797fec7ee8bf", "00000000000000000000000000000000"},
{"fffffffffffffffff80000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "9ff071b165b5198a93dddeebc54d09b5", "00000000000000000000000000000000"},
{"fffffffffffffffffc0000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "c20a19fd5758b0c4bc1a5df89cf73877", "00000000000000000000000000000000"},
{"fffffffffffffffffe0000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "97120166307119ca2280e9315668e96f", "00000000000000000000000000000000"},
{"ffffffffffffffffff0000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "4b3b9f1e099c2a09dc091e90e4f18f0a", "00000000000000000000000000000000"},
{"ffffffffffffffffff8000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "eb040b891d4b37f6851f7ec219cd3f6d", "00000000000000000000000000000000"},
{"ffffffffffffffffffc000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "9f0fdec08b7fd79aa39535bea42db92a", "00000000000000000000000000000000"},
{"ffffffffffffffffffe000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "2e70f168fc74bf911df240bcd2cef236", "00000000000000000000000000000000"},
{"fffffffffffffffffff000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "462ccd7f5fd1108dbc152f3cacad328b", "00000000000000000000000000000000"},
{"fffffffffffffffffff800000000000000000000000000000000000000000000", "00000000000000000000000000000000", "a4af534a7d0b643a01868785d86dfb95", "00000000000000000000000000000000"},
{"fffffffffffffffffffc00000000000000000000000000000000000000000000", "00000000000000000000000000000000", "ab980296197e1a5022326c31da4bf6f3", "00000000000000000000000000000000"},
{"fffffffffffffffffffe00000000000000000000000000000000000000000000", "00000000000000000000000000000000", "f97d57b3333b6281b07d486db2d4e20c", "00000000000000000000000000000000"},
{"ffffffffffffffffffff00000000000000000000000000000000000000000000", "00000000000000000000000000000000", "f33fa36720231afe4c759ade6bd62eb6", "00000000000000000000000000000000"},
{"ffffffffffffffffffff80000000000000000000000000000000000000000000", "00000000000000000000000000000000", "fdcfac0c02ca538343c68117e0a15938", "00000000000000000000000000000000"},
{"ffffffffffffffffffffc0000000000000000000000000000000000000000000", "00000000000000000000000000000000", "ad4916f5ee5772be764fc027b8a6e539", "00000000000000000000000000000000"},
{"ffffffffffffffffffffe0000000000000000000000000000000000000000000", "00000000000000000000000000000000", "2e16873e1678610d7e14c02d002ea845", "00000000000000000000000000000000"},
{"fffffffffffffffffffff0000000000000000000000000000000000000000000", "00000000000000000000000000000000", "4e6e627c1acc51340053a8236d579576", "00000000000000000000000000000000"},
{"fffffffffffffffffffff8000000000000000000000000000000000000000000", "00000000000000000000000000000000", "ab0c8410aeeead92feec1eb430d652cb", "00000000000000000000000000000000"},
{"fffffffffffffffffffffc000000000000000000000000000000000000000000", "00000000000000000000000000000000", "e86f7e23e835e114977f60e1a592202e", "00000000000000000000000000000000"},
{"fffffffffffffffffffffe000000000000000000000000000000000000000000", "00000000000000000000000000000000", "e68ad5055a367041fade09d9a70a794b", "00000000000000000000000000000000"},
{"ffffffffffffffffffffff000000000000000000000000000000000000000000", "00000000000000000000000000000000", "0791823a3c666bb6162825e78606a7fe", "00000000000000000000000000000000"},
{"ffffffffffffffffffffff800000000000000000000000000000000000000000", "00000000000000000000000000000000", "dcca366a9bf47b7b868b77e25c18a364", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffc00000000000000000000000000000000000000000", "00000000000000000000000000000000", "684c9efc237e4a442965f84bce20247a", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffe00000000000000000000000000000000000000000", "00000000000000000000000000000000", "a858411ffbe63fdb9c8aa1bfaed67b52", "00000000000000000000000000000000"},
{"fffffffffffffffffffffff00000000000000000000000000000000000000000", "00000000000000000000000000000000", "04bc3da2179c3015498b0e03910db5b8", "00000000000000000000000000000000"},
{"fffffffffffffffffffffff80000000000000000000000000000000000000000", "00000000000000000000000000000000", "40071eeab3f935dbc25d00841460260f", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffc0000000000000000000000000000000000000000", "00000000000000000000000000000000", "0ebd7c30ed2016e08ba806ddb008bcc8", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffe0000000000000000000000000000000000000000", "00000000000000000000000000000000", "15c6becf0f4cec7129cbd22d1a79b1b8", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffff0000000000000000000000000000000000000000", "00000000000000000000000000000000", "0aeede5b91f721700e9e62edbf60b781", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffff8000000000000000000000000000000000000000", "00000000000000000000000000000000", "266581af0dcfbed1585e0a242c64b8df", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffc000000000000000000000000000000000000000", "00000000000000000000000000000000", "6693dc911662ae473216ba22189a511a", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffe000000000000000000000000000000000000000", "00000000000000000000000000000000", "7606fa36d86473e6fb3a1bb0e2c0adf5", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffff000000000000000000000000000000000000000", "00000000000000000000000000000000", "112078e9e11fbb78e26ffb8899e96b9a", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffff800000000000000000000000000000000000000", "00000000000000000000000000000000", "40b264e921e9e4a82694589ef3798262", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffc00000000000000000000000000000000000000", "00000000000000000000000000000000", "8d4595cb4fa7026715f55bd68e2882f9", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffe00000000000000000000000000000000000000", "00000000000000000000000000000000", "b588a302bdbc09197df1edae68926ed9", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffff00000000000000000000000000000000000000", "00000000000000000000000000000000", "33f7502390b8a4a221cfecd0666624ba", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffff80000000000000000000000000000000000000", "00000000000000000000000000000000", "3d20253adbce3be2373767c4d822c566", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffc0000000000000000000000000000000000000", "00000000000000000000000000000000", "a42734a3929bf84cf0116c9856a3c18c", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffe0000000000000000000000000000000000000", "00000000000000000000000000000000", "e3abc4939457422bb957da3c56938c6d", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffff0000000000000000000000000000000000000", "00000000000000000000000000000000", "972bdd2e7c525130fadc8f76fc6f4b3f", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffff8000000000000000000000000000000000000", "00000000000000000000000000000000", "84a83d7b94c699cbcb8a7d9b61f64093", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffc000000000000000000000000000000000000", "00000000000000000000000000000000", "ce61d63514aded03d43e6ebfc3a9001f", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffe000000000000000000000000000000000000", "00000000000000000000000000000000", "6c839dd58eeae6b8a36af48ed63d2dc9", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffff000000000000000000000000000000000000", "00000000000000000000000000000000", "cd5ece55b8da3bf622c4100df5de46f9", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffff800000000000000000000000000000000000", "00000000000000000000000000000000", "3b6f46f40e0ac5fc0a9c1105f800f48d", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffc00000000000000000000000000000000000", "00000000000000000000000000000000", "ba26d47da3aeb028de4fb5b3a854a24b", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffe00000000000000000000000000000000000", "00000000000000000000000000000000", "87f53bf620d3677268445212904389d5", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffff00000000000000000000000000000000000", "00000000000000000000000000000000", "10617d28b5e0f4605492b182a5d7f9f6", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffff80000000000000000000000000000000000", "00000000000000000000000000000000", "9aaec4fabbf6fae2a71feff02e372b39", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffc0000000000000000000000000000000000", "00000000000000000000000000000000", "3a90c62d88b5c42809abf782488ed130", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffe0000000000000000000000000000000000", "00000000000000000000000000000000", "f1f1c5a40899e15772857ccb65c7a09a", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffff0000000000000000000000000000000000", "00000000000000000000000000000000", "190843d29b25a3897c692ce1dd81ee52", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffff8000000000000000000000000000000000", "00000000000000000000000000000000", "a866bc65b6941d86e8420a7ffb0964db", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffc000000000000000000000000000000000", "00000000000000000000000000000000", "8193c6ff85225ced4255e92f6e078a14", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffe000000000000000000000000000000000", "00000000000000000000000000000000", "9661cb2424d7d4a380d547f9e7ec1cb9", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffff000000000000000000000000000000000", "00000000000000000000000000000000", "86f93d9ec08453a071e2e2877877a9c8", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffff800000000000000000000000000000000", "00000000000000000000000000000000", "27eefa80ce6a4a9d598e3fec365434d2", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffc00000000000000000000000000000000", "00000000000000000000000000000000", "d62068444578e3ab39ce7ec95dd045dc", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffe00000000000000000000000000000000", "00000000000000000000000000000000", "b5f71d4dd9a71fe5d8bc8ba7e6ea3048", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffff00000000000000000000000000000000", "00000000000000000000000000000000", "6825a347ac479d4f9d95c5cb8d3fd7e9", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffff80000000000000000000000000000000", "00000000000000000000000000000000", "e3714e94a5778955cc0346358e94783a", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffc0000000000000000000000000000000", "00000000000000000000000000000000", "d836b44bb29e0c7d89fa4b2d4b677d2a", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffe0000000000000000000000000000000", "00000000000000000000000000000000", "5d454b75021d76d4b84f873a8f877b92", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffff0000000000000000000000000000000", "00000000000000000000000000000000", "c3498f7eced2095314fc28115885b33f", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffff8000000000000000000000000000000", "00000000000000000000000000000000", "6e668856539ad8e405bd123fe6c88530", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffc000000000000000000000000000000", "00000000000000000000000000000000", "8680db7f3a87b8605543cfdbe6754076", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffe000000000000000000000000000000", "00000000000000000000000000000000", "6c5d03b13069c3658b3179be91b0800c", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffff000000000000000000000000000000", "00000000000000000000000000000000", "ef1b384ac4d93eda00c92add0995ea5f", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffff800000000000000000000000000000", "00000000000000000000000000000000", "bf8115805471741bd5ad20a03944790f", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffc00000000000000000000000000000", "00000000000000000000000000000000", "c64c24b6894b038b3c0d09b1df068b0b", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffe00000000000000000000000000000", "00000000000000000000000000000000", "3967a10cffe27d0178545fbf6a40544b", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffff00000000000000000000000000000", "00000000000000000000000000000000", "7c85e9c95de1a9ec5a5363a8a053472d", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffff80000000000000000000000000000", "00000000000000000000000000000000", "a9eec03c8abec7ba68315c2c8c2316e0", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffc0000000000000000000000000000", "00000000000000000000000000000000", "cac8e414c2f388227ae14986fc983524", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffe0000000000000000000000000000", "00000000000000000000000000000000", "5d942b7f4622ce056c3ce3ce5f1dd9d6", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffff0000000000000000000000000000", "00000000000000000000000000000000", "d240d648ce21a3020282c3f1b528a0b6", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffff8000000000000000000000000000", "00000000000000000000000000000000", "45d089c36d5c5a4efc689e3b0de10dd5", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffc000000000000000000000000000", "00000000000000000000000000000000", "b4da5df4becb5462e03a0ed00d295629", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffe000000000000000000000000000", "00000000000000000000000000000000", "dcf4e129136c1a4b7a0f38935cc34b2b", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffff000000000000000000000000000", "00000000000000000000000000000000", "d9a4c7618b0ce48a3d5aee1a1c0114c4", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffff800000000000000000000000000", "00000000000000000000000000000000", "ca352df025c65c7b0bf306fbee0f36ba", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffc00000000000000000000000000", "00000000000000000000000000000000", "238aca23fd3409f38af63378ed2f5473", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffe00000000000000000000000000", "00000000000000000000000000000000", "59836a0e06a79691b36667d5380d8188", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffff00000000000000000000000000", "00000000000000000000000000000000", "33905080f7acf1cdae0a91fc3e85aee4", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffff80000000000000000000000000", "00000000000000000000000000000000", "72c9e4646dbc3d6320fc6689d93e8833", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffc0000000000000000000000000", "00000000000000000000000000000000", "ba77413dea5925b7f5417ea47ff19f59", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffe0000000000000000000000000", "00000000000000000000000000000000", "6cae8129f843d86dc786a0fb1a184970", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffff0000000000000000000000000", "00000000000000000000000000000000", "fcfefb534100796eebbd990206754e19", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffff8000000000000000000000000", "00000000000000000000000000000000", "8c791d5fdddf470da04f3e6dc4a5b5b5", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffc000000000000000000000000", "00000000000000000000000000000000", "c93bbdc07a4611ae4bb266ea5034a387", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffe000000000000000000000000", "00000000000000000000000000000000", "c102e38e489aa74762f3efc5bb23205a", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffff000000000000000000000000", "00000000000000000000000000000000", "93201481665cbafc1fcc220bc545fb3d", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffff800000000000000000000000", "00000000000000000000000000000000", "4960757ec6ce68cf195e454cfd0f32ca", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffc00000000000000000000000", "00000000000000000000000000000000", "feec7ce6a6cbd07c043416737f1bbb33", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffe00000000000000000000000", "00000000000000000000000000000000", "11c5413904487a805d70a8edd9c35527", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffff00000000000000000000000", "00000000000000000000000000000000", "347846b2b2e36f1f0324c86f7f1b98e2", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffff80000000000000000000000", "00000000000000000000000000000000", "332eee1a0cbd19ca2d69b426894044f0", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffc0000000000000000000000", "00000000000000000000000000000000", "866b5b3977ba6efa5128efbda9ff03cd", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffe0000000000000000000000", "00000000000000000000000000000000", "cc1445ee94c0f08cdee5c344ecd1e233", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000", "00000000000000000000000000000000", "be288319029363c2622feba4b05dfdfe", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffff8000000000000000000000", "00000000000000000000000000000000", "cfd1875523f3cd21c395651e6ee15e56", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffc000000000000000000000", "00000000000000000000000000000000", "cb5a408657837c53bf16f9d8465dce19", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffe000000000000000000000", "00000000000000000000000000000000", "ca0bf42cb107f55ccff2fc09ee08ca15", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffff000000000000000000000", "00000000000000000000000000000000", "fdd9bbb4a7dc2e4a23536a5880a2db67", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffff800000000000000000000", "00000000000000000000000000000000", "ede447b362c484993dec9442a3b46aef", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffc00000000000000000000", "00000000000000000000000000000000", "10dffb05904bff7c4781df780ad26837", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffe00000000000000000000", "00000000000000000000000000000000", "c33bc13e8de88ac25232aa7496398783", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000", "00000000000000000000000000000000", "ca359c70803a3b2a3d542e8781dea975", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffff80000000000000000000", "00000000000000000000000000000000", "bcc65b526f88d05b89ce8a52021fdb06", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffc0000000000000000000", "00000000000000000000000000000000", "db91a38855c8c4643851fbfb358b0109", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000", "00000000000000000000000000000000", "ca6e8893a114ae8e27d5ab03a5499610", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000", "00000000000000000000000000000000", "6629d2b8df97da728cdd8b1e7f945077", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffff8000000000000000000", "00000000000000000000000000000000", "4570a5a18cfc0dd582f1d88d5c9a1720", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffc000000000000000000", "00000000000000000000000000000000", "72bc65aa8e89562e3f274d45af1cd10b", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffe000000000000000000", "00000000000000000000000000000000", "98551da1a6503276ae1c77625f9ea615", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000", "00000000000000000000000000000000", "0ddfe51ced7e3f4ae927daa3fe452cee", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffff800000000000000000", "00000000000000000000000000000000", "db826251e4ce384b80218b0e1da1dd4c", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffc00000000000000000", "00000000000000000000000000000000", "2cacf728b88abbad7011ed0e64a1680c", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000", "00000000000000000000000000000000", "330d8ee7c5677e099ac74c9994ee4cfb", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000", "00000000000000000000000000000000", "edf61ae362e882ddc0167474a7a77f3a", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffff80000000000000000", "00000000000000000000000000000000", "6168b00ba7859e0970ecfd757efecf7c", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffc0000000000000000", "00000000000000000000000000000000", "d1415447866230d28bb1ea18a4cdfd02", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000", "00000000000000000000000000000000", "516183392f7a8763afec68a060264141", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000", "00000000000000000000000000000000", "77565c8d73cfd4130b4aa14d8911710f", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000", "00000000000000000000000000000000", "37232a4ed21ccc27c19c9610078cabac", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffc000000000000000", "00000000000000000000000000000000", "804f32ea71828c7d329077e712231666", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000", "00000000000000000000000000000000", "d64424f23cb97215e9c2c6f28d29eab7", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000", "00000000000000000000000000000000", "023e82b533f68c75c238cebdb2ee89a2", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffff800000000000000", "00000000000000000000000000000000", "193a3d24157a51f1ee0893f6777417e7", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffc00000000000000", "00000000000000000000000000000000", "84ecacfcd400084d078612b1945f2ef5", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000", "00000000000000000000000000000000", "1dcd8bb173259eb33a5242b0de31a455", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000", "00000000000000000000000000000000", "35e9eddbc375e792c19992c19165012b", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000", "00000000000000000000000000000000", "8a772231c01dfdd7c98e4cfddcc0807a", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000000", "00000000000000000000000000000000", "6eda7ff6b8319180ff0d6e65629d01c3", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000", "00000000000000000000000000000000", "c267ef0e2d01a993944dd397101413cb", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000", "00000000000000000000000000000000", "e9f80e9d845bcc0f62926af72eabca39", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000", "00000000000000000000000000000000", "6702990727aa0878637b45dcd3a3b074", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffc000000000000", "00000000000000000000000000000000", "2e2e647d5360e09230a5d738ca33471e", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000", "00000000000000000000000000000000", "1f56413c7add6f43d1d56e4f02190330", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000", "00000000000000000000000000000000", "69cd0606e15af729d6bca143016d9842", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffff800000000000", "00000000000000000000000000000000", "a085d7c1a500873a20099c4caa3c3f5b", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000000", "00000000000000000000000000000000", "4fc0d230f8891415b87b83f95f2e09d1", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000", "00000000000000000000000000000000", "4327d08c523d8eba697a4336507d1f42", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000", "00000000000000000000000000000000", "7a15aab82701efa5ae36ab1d6b76290f", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000", "00000000000000000000000000000000", "5bf0051893a18bb30e139a58fed0fa54", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000", "00000000000000000000000000000000", "97e8adf65638fd9cdf3bc22c17fe4dbd", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000", "00000000000000000000000000000000", "1ee6ee326583a0586491c96418d1a35d", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000", "00000000000000000000000000000000", "26b549c2ec756f82ecc48008e529956b", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000", "00000000000000000000000000000000", "70377b6da669b072129e057cc28e9ca5", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000000", "00000000000000000000000000000000", "9c94b8b0cb8bcc919072262b3fa05ad9", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000", "00000000000000000000000000000000", "2fbb83dfd0d7abcb05cd28cad2dfb523", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000", "00000000000000000000000000000000", "96877803de77744bb970d0a91f4debae", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffff800000000", "00000000000000000000000000000000", "7379f3370cf6e5ce12ae5969c8eea312", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000", "00000000000000000000000000000000", "02dc99fa3d4f98ce80985e7233889313", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000", "00000000000000000000000000000000", "1e38e759075ba5cab6457da51844295a", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000", "00000000000000000000000000000000", "70bed8dbf615868a1f9d9b05d3e7a267", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000", "00000000000000000000000000000000", "234b148b8cb1d8c32b287e896903d150", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000", "00000000000000000000000000000000", "294b033df4da853f4be3e243f7e513f4", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000", "00000000000000000000000000000000", "3f58c950f0367160adec45f2441e7411", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000", "00000000000000000000000000000000", "37f655536a704e5ace182d742a820cf4", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000", "00000000000000000000000000000000", "ea7bd6bb63418731aeac790fe42d61e8", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000", "00000000000000000000000000000000", "e74a4c999b4c064e48bb1e413f51e5ea", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000", "00000000000000000000000000000000", "ba9ebefdb4ccf30f296cecb3bc1943e8", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000", "00000000000000000000000000000000", "3194367a4898c502c13bb7478640a72d", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000", "00000000000000000000000000000000", "da797713263d6f33a5478a65ef60d412", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000", "00000000000000000000000000000000", "d1ac39bb1ef86b9c1344f214679aa376", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000", "00000000000000000000000000000000", "2fdea9e650532be5bc0e7325337fd363", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000", "00000000000000000000000000000000", "d3a204dbd9c2af158b6ca67a5156ce4a", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000", "00000000000000000000000000000000", "3a0a0e75a8da36735aee6684d965a778", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000", "00000000000000000000000000000000", "52fc3e620492ea99641ea168da5b6d52", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000", "00000000000000000000000000000000", "d2e0c7f15b4772467d2cfc873000b2ca", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000", "00000000000000000000000000000000", "563531135e0c4d70a38f8bdb190ba04e", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000", "00000000000000000000000000000000", "a8a39a0f5663f4c0fe5f2d3cafff421a", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000", "00000000000000000000000000000000", "d94b5e90db354c1e42f61fabe167b2c0", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000", "00000000000000000000000000000000", "50e6d3c9b6698a7cd276f96b1473f35a", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000", "00000000000000000000000000000000", "9338f08e0ebee96905d8f2e825208f43", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800", "00000000000000000000000000000000", "8b378c86672aa54a3a266ba19d2580ca", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00", "00000000000000000000000000000000", "cca7c3086f5f9511b31233da7cab9160", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00", "00000000000000000000000000000000", "5b40ff4ec9be536ba23035fa4f06064c", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00", "00000000000000000000000000000000", "60eb5af8416b257149372194e8b88749", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80", "00000000000000000000000000000000", "2f005a8aed8a361c92e440c15520cbd1", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0", "00000000000000000000000000000000", "7b03627611678a997717578807a800e2", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0", "00000000000000000000000000000000", "cf78618f74f6f3696e0a4779b90b5a77", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0", "00000000000000000000000000000000", "03720371a04962eaea0a852e69972858", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8", "00000000000000000000000000000000", "1f8a8133aa8ccf70e2bd3285831ca6b7", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc", "00000000000000000000000000000000", "27936bd27fb1468fc8b48bc483321725", "00000000000000000000000000000000"},
{"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", "00000000000000000000000000000000", "b07d4f3e2cd2ef2eb545980754dfea0f", "00000000000000000000000000000000"},
{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "00000000000000000000000000000000", "4bf85f1b5d54adbc307b0a048389adcb", "00000000000000000000000000000000"},
};
void test_aes()
{
/* TODO: add more NIST test vectors (non CBC / 128) */
uint8_t key_bin[128], iv_bin[128], plaintext_bin[65], ciphertext_bin[64], plaintext_bin_check[64];
unsigned int i;
for (i = 0; i < (sizeof(nist_aes_test_vectors_encrypt) / sizeof(nist_aes_test_vectors_encrypt[0])); i++) {
struct nist_aes_test_vector tv = nist_aes_test_vectors_encrypt[i];
size_t outlen_key;
utils_hex_to_bin(tv.key, key_bin, strlen(tv.key), &outlen_key);
size_t outlen_iv;
utils_hex_to_bin(tv.iv, iv_bin, strlen(tv.iv), &outlen_iv);
size_t outlen_plaintext;
utils_hex_to_bin(tv.in, plaintext_bin, strlen(tv.in), &outlen_plaintext);
size_t outlen_cipthertext;
utils_hex_to_bin(tv.out, ciphertext_bin, strlen(tv.out), &outlen_cipthertext);
aes256_cbc_encrypt(key_bin, iv_bin, plaintext_bin, outlen_plaintext, 1, ciphertext_bin);
aes256_cbc_decrypt(key_bin, iv_bin, ciphertext_bin, outlen_plaintext, 1, plaintext_bin_check);
u_assert_mem_eq(plaintext_bin_check, plaintext_bin, outlen_plaintext);
char hexout[128];
utils_bin_to_hex(ciphertext_bin, outlen_cipthertext, hexout);
u_assert_str_eq(tv.out, hexout);
}
for (i = 0; i < (sizeof(nist_aes_test_vectors_decrypt) / sizeof(nist_aes_test_vectors_decrypt[0])); i++) {
struct nist_aes_test_vector tv = nist_aes_test_vectors_decrypt[i];
size_t outlen_key;
utils_hex_to_bin(tv.key, key_bin, strlen(tv.key), &outlen_key);
size_t outlen_iv;
utils_hex_to_bin(tv.iv, iv_bin, strlen(tv.iv), &outlen_iv);
size_t outlen_plaintext;
utils_hex_to_bin(tv.in, plaintext_bin, strlen(tv.in), &outlen_plaintext);
size_t outlen_cipthertext;
utils_hex_to_bin(tv.out, ciphertext_bin, strlen(tv.out), &outlen_cipthertext);
aes256_cbc_decrypt(key_bin, iv_bin, plaintext_bin, outlen_plaintext, 1, ciphertext_bin);
aes256_cbc_encrypt(key_bin, iv_bin, ciphertext_bin, outlen_plaintext, 1, plaintext_bin_check);
u_assert_mem_eq(plaintext_bin_check, plaintext_bin, outlen_plaintext);
char hexout[128];
utils_bin_to_hex(ciphertext_bin, outlen_cipthertext, hexout);
u_assert_str_eq(tv.out, hexout);
}
}