blob: ea3e2da59025ea67675ed8512008b14b0ec2a064 [file] [log] [blame]
Fabio Utzig3efe6b62017-09-22 16:03:24 -03001/* test_aes.c - TinyCrypt AES-128 tests (including NIST tests) */
David Brownfecda2d2017-09-07 10:20:34 -06002
3/*
Fabio Utzig3efe6b62017-09-22 16:03:24 -03004 * Copyright (C) 2017 by Intel Corporation, All Rights Reserved.
David Brownfecda2d2017-09-07 10:20:34 -06005 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are met:
8 *
9 * - Redistributions of source code must retain the above copyright notice,
10 * this list of conditions and the following disclaimer.
11 *
12 * - Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * - Neither the name of Intel Corporation nor the names of its contributors
17 * may be used to endorse or promote products derived from this software
18 * without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/*
34 * DESCRIPTION
35 * This module tests the following AES routines:
36 *
37 * Scenarios tested include:
38 * - AES128 NIST key schedule test
39 * - AES128 NIST encryption test
40 * - AES128 NIST fixed-key and variable-text
41 * - AES128 NIST variable-key and fixed-text
42 */
43
44#include <tinycrypt/aes.h>
45#include <tinycrypt/constants.h>
46#include <test_utils.h>
47
48#include <stdlib.h>
49#include <stdio.h>
50#include <string.h>
51
52#include <stdint.h>
53#include <stddef.h>
54
55#define NUM_OF_NIST_KEYS 16
56#define NUM_OF_FIXED_KEYS 128
57
58
59struct kat_table {
60 uint8_t in[NUM_OF_NIST_KEYS];
61 uint8_t out[NUM_OF_NIST_KEYS];
62};
63
64/*
65 * NIST test key schedule.
66 */
67int test_1(void)
68{
69 int result = TC_PASS;
70 const uint8_t nist_key[NUM_OF_NIST_KEYS] = {
71 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
72 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
73 };
Fabio Utzig3efe6b62017-09-22 16:03:24 -030074 const struct tc_aes_key_sched_struct expected = {
75 {
David Brownfecda2d2017-09-07 10:20:34 -060076 0x2b7e1516, 0x28aed2a6, 0xabf71588, 0x09cf4f3c,
77 0xa0fafe17, 0x88542cb1, 0x23a33939, 0x2a6c7605,
78 0xf2c295f2, 0x7a96b943, 0x5935807a, 0x7359f67f,
79 0x3d80477d, 0x4716fe3e, 0x1e237e44, 0x6d7a883b,
80 0xef44a541, 0xa8525b7f, 0xb671253b, 0xdb0bad00,
81 0xd4d1c6f8, 0x7c839d87, 0xcaf2b8bc, 0x11f915bc,
82 0x6d88a37a, 0x110b3efd, 0xdbf98641, 0xca0093fd,
83 0x4e54f70e, 0x5f5fc9f3, 0x84a64fb2, 0x4ea6dc4f,
84 0xead27321, 0xb58dbad2, 0x312bf560, 0x7f8d292f,
85 0xac7766f3, 0x19fadc21, 0x28d12941, 0x575c006e,
86 0xd014f9a8, 0xc9ee2589, 0xe13f0cc8, 0xb6630ca6
Fabio Utzig3efe6b62017-09-22 16:03:24 -030087 }
88 };
David Brownfecda2d2017-09-07 10:20:34 -060089 struct tc_aes_key_sched_struct s;
90
91 TC_PRINT("AES128 %s (NIST key schedule test):\n", __func__);
92
93 if (tc_aes128_set_encrypt_key(&s, nist_key) == 0) {
94 TC_ERROR("AES128 test %s (NIST key schedule test) failed.\n",
95 __func__);
96 result = TC_FAIL;
97 goto exitTest1;
98 }
99
Fabio Utzig3efe6b62017-09-22 16:03:24 -0300100 result = check_result(1, expected.words, sizeof(expected.words), s.words,
101 sizeof(s.words));
David Brownfecda2d2017-09-07 10:20:34 -0600102
Fabio Utzig3efe6b62017-09-22 16:03:24 -0300103exitTest1:
David Brownfecda2d2017-09-07 10:20:34 -0600104 TC_END_RESULT(result);
105 return result;
106}
107
108/*
109 * NIST test vectors for encryption.
110 */
111int test_2(void)
112{
113 int result = TC_PASS;
114 const uint8_t nist_key[NUM_OF_NIST_KEYS] = {
115 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
116 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
117 };
118 const uint8_t nist_input[NUM_OF_NIST_KEYS] = {
119 0x32, 0x43, 0xf6, 0xa8, 0x88, 0x5a, 0x30, 0x8d,
120 0x31, 0x31, 0x98, 0xa2, 0xe0, 0x37, 0x07, 0x34
121 };
122 const uint8_t expected[NUM_OF_NIST_KEYS] = {
123 0x39, 0x25, 0x84, 0x1d, 0x02, 0xdc, 0x09, 0xfb,
124 0xdc, 0x11, 0x85, 0x97, 0x19, 0x6a, 0x0b, 0x32
125 };
126 struct tc_aes_key_sched_struct s;
127 uint8_t ciphertext[NUM_OF_NIST_KEYS];
128
129 TC_PRINT("AES128 %s (NIST encryption test):\n", __func__);
130
131 (void)tc_aes128_set_encrypt_key(&s, nist_key);
132 if (tc_aes_encrypt(ciphertext, nist_input, &s) == 0) {
133 TC_ERROR("AES128 %s (NIST encryption test) failed.\n",
134 __func__);
135 result = TC_FAIL;
136 goto exitTest2;
137 }
138
Fabio Utzig3efe6b62017-09-22 16:03:24 -0300139 result = check_result(2, expected, sizeof(expected), ciphertext,
140 sizeof(ciphertext));
David Brownfecda2d2017-09-07 10:20:34 -0600141
Fabio Utzig3efe6b62017-09-22 16:03:24 -0300142exitTest2:
David Brownfecda2d2017-09-07 10:20:34 -0600143 TC_END_RESULT(result);
144
145 return result;
146}
147
Fabio Utzig3efe6b62017-09-22 16:03:24 -0300148int var_text_test(unsigned int r, const uint8_t *in, const uint8_t *out,
David Brownfecda2d2017-09-07 10:20:34 -0600149 TCAesKeySched_t s)
150{
151 uint8_t ciphertext[NUM_OF_NIST_KEYS];
152 uint8_t decrypted[NUM_OF_NIST_KEYS];
153 int result = TC_PASS;
154
155 (void)tc_aes_encrypt(ciphertext, in, s);
Fabio Utzig3efe6b62017-09-22 16:03:24 -0300156 result = check_result(r, out, NUM_OF_NIST_KEYS, ciphertext,
157 sizeof(ciphertext));
David Brownfecda2d2017-09-07 10:20:34 -0600158 if (result != TC_FAIL) {
159 if (tc_aes_decrypt(decrypted, ciphertext, s) == 0) {
160 TC_ERROR("aes_decrypt failed\n");
161 result = TC_FAIL;
162 } else {
163 result = check_result(r, in, NUM_OF_NIST_KEYS,
164 decrypted, sizeof(decrypted));
165 }
166 }
167
168 return result;
169}
170
171/*
172 * All NIST tests with fixed key and variable text.
173 */
174int test_3(void)
175{
176 int result = TC_PASS;
177 const uint8_t key[NUM_OF_NIST_KEYS] = {
178 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
179 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
180 };
181 const struct kat_table kat_tbl[NUM_OF_FIXED_KEYS] = {
182 {{
183 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
184 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
185 }, {
186 0x3a, 0xd7, 0x8e, 0x72, 0x6c, 0x1e, 0xc0, 0x2b,
187 0x7e, 0xbf, 0xe9, 0x2b, 0x23, 0xd9, 0xec, 0x34
188 } },
189 {{
190 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
191 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
192 }, {
193 0xaa, 0xe5, 0x93, 0x9c, 0x8e, 0xfd, 0xf2, 0xf0,
194 0x4e, 0x60, 0xb9, 0xfe, 0x71, 0x17, 0xb2, 0xc2
195 } },
196 {{
197 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
198 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
199 }, {
200 0xf0, 0x31, 0xd4, 0xd7, 0x4f, 0x5d, 0xcb, 0xf3,
201 0x9d, 0xaa, 0xf8, 0xca, 0x3a, 0xf6, 0xe5, 0x27
202 } },
203 {{
204 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
205 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
206 }, {
207 0x96, 0xd9, 0xfd, 0x5c, 0xc4, 0xf0, 0x74, 0x41,
208 0x72, 0x7d, 0xf0, 0xf3, 0x3e, 0x40, 0x1a, 0x36
209 } },
210 {{
211 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
212 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
213 }, {
214 0x30, 0xcc, 0xdb, 0x04, 0x46, 0x46, 0xd7, 0xe1,
215 0xf3, 0xcc, 0xea, 0x3d, 0xca, 0x08, 0xb8, 0xc0
216 } },
217 {{
218 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
220 }, {
221 0x16, 0xae, 0x4c, 0xe5, 0x04, 0x2a, 0x67, 0xee,
222 0x8e, 0x17, 0x7b, 0x7c, 0x58, 0x7e, 0xcc, 0x82
223 } },
224 {{
225 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
227 }, {
228 0xb6, 0xda, 0x0b, 0xb1, 0x1a, 0x23, 0x85, 0x5d,
229 0x9c, 0x5c, 0xb1, 0xb4, 0xc6, 0x41, 0x2e, 0x0a
230 } },
231 {{
232 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
233 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
234 }, {
235 0xdb, 0x4f, 0x1a, 0xa5, 0x30, 0x96, 0x7d, 0x67,
236 0x32, 0xce, 0x47, 0x15, 0xeb, 0x0e, 0xe2, 0x4b
237 } },
238 {{
239 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
240 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
241 }, {
242 0xa8, 0x17, 0x38, 0x25, 0x26, 0x21, 0xdd, 0x18,
243 0x0a, 0x34, 0xf3, 0x45, 0x5b, 0x4b, 0xaa, 0x2f
244 } },
245 {{
246 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
247 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
248 }, {
249 0x77, 0xe2, 0xb5, 0x08, 0xdb, 0x7f, 0xd8, 0x92,
250 0x34, 0xca, 0xf7, 0x93, 0x9e, 0xe5, 0x62, 0x1a
251 } },
252 {{
253 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
254 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
255 }, {
256 0xb8, 0x49, 0x9c, 0x25, 0x1f, 0x84, 0x42, 0xee,
257 0x13, 0xf0, 0x93, 0x3b, 0x68, 0x8f, 0xcd, 0x19
258 } },
259 {{
260 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
261 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
262 }, {
263 0x96, 0x51, 0x35, 0xf8, 0xa8, 0x1f, 0x25, 0xc9,
264 0xd6, 0x30, 0xb1, 0x75, 0x02, 0xf6, 0x8e, 0x53
265 } },
266 {{
267 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
268 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
269 }, {
270 0x8b, 0x87, 0x14, 0x5a, 0x01, 0xad, 0x1c, 0x6c,
271 0xed, 0xe9, 0x95, 0xea, 0x36, 0x70, 0x45, 0x4f
272 } },
273 {{
274 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
275 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
276 }, {
277 0x8e, 0xae, 0x3b, 0x10, 0xa0, 0xc8, 0xca, 0x6d,
278 0x1d, 0x3b, 0x0f, 0xa6, 0x1e, 0x56, 0xb0, 0xb2
279 } },
280 {{
281 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
282 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
283 }, {
284 0x64, 0xb4, 0xd6, 0x29, 0x81, 0x0f, 0xda, 0x6b,
285 0xaf, 0xdf, 0x08, 0xf3, 0xb0, 0xd8, 0xd2, 0xc5
286 } },
287 {{
288 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
289 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
290 }, {
291 0xd7, 0xe5, 0xdb, 0xd3, 0x32, 0x45, 0x95, 0xf8,
292 0xfd, 0xc7, 0xd7, 0xc5, 0x71, 0xda, 0x6c, 0x2a
293 } },
294 {{
295 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
296 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
297 }, {
298 0xf3, 0xf7, 0x23, 0x75, 0x26, 0x4e, 0x16, 0x7f,
299 0xca, 0x9d, 0xe2, 0xc1, 0x52, 0x7d, 0x96, 0x06
300 } },
301 {{
302 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
304 }, {
305 0x8e, 0xe7, 0x9d, 0xd4, 0xf4, 0x01, 0xff, 0x9b,
306 0x7e, 0xa9, 0x45, 0xd8, 0x66, 0x66, 0xc1, 0x3b
307 } },
308 {{
309 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
310 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
311 }, {
312 0xdd, 0x35, 0xce, 0xa2, 0x79, 0x99, 0x40, 0xb4,
313 0x0d, 0xb3, 0xf8, 0x19, 0xcb, 0x94, 0xc0, 0x8b
314 } },
315 {{
316 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
317 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
318 }, {
319 0x69, 0x41, 0xcb, 0x6b, 0x3e, 0x08, 0xc2, 0xb7,
320 0xaf, 0xa5, 0x81, 0xeb, 0xdd, 0x60, 0x7b, 0x87
321 } },
322 {{
323 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
325 }, {
326 0x2c, 0x20, 0xf4, 0x39, 0xf6, 0xbb, 0x09, 0x7b,
327 0x29, 0xb8, 0xbd, 0x6d, 0x99, 0xaa, 0xd7, 0x99
328 } },
329 {{
330 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
331 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
332 }, {
333 0x62, 0x5d, 0x01, 0xf0, 0x58, 0xe5, 0x65, 0xf7,
334 0x7a, 0xe8, 0x63, 0x78, 0xbd, 0x2c, 0x49, 0xb3
335 } },
336 {{
337 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
338 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
339 }, {
340 0xc0, 0xb5, 0xfd, 0x98, 0x19, 0x0e, 0xf4, 0x5f,
341 0xbb, 0x43, 0x01, 0x43, 0x8d, 0x09, 0x59, 0x50
342 } },
343 {{
344 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
345 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
346 }, {
347 0x13, 0x00, 0x1f, 0xf5, 0xd9, 0x98, 0x06, 0xef,
348 0xd2, 0x5d, 0xa3, 0x4f, 0x56, 0xbe, 0x85, 0x4b
349 } },
350 {{
351 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
352 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
353 }, {
354 0x3b, 0x59, 0x4c, 0x60, 0xf5, 0xc8, 0x27, 0x7a,
355 0x51, 0x13, 0x67, 0x7f, 0x94, 0x20, 0x8d, 0x82
356 } },
357 {{
358 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
359 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
360 }, {
361 0xe9, 0xc0, 0xfc, 0x18, 0x18, 0xe4, 0xaa, 0x46,
362 0xbd, 0x2e, 0x39, 0xd6, 0x38, 0xf8, 0x9e, 0x05
363 } },
364 {{
365 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
366 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
367 }, {
368 0xf8, 0x02, 0x3e, 0xe9, 0xc3, 0xfd, 0xc4, 0x5a,
369 0x01, 0x9b, 0x4e, 0x98, 0x5c, 0x7e, 0x1a, 0x54
370 } },
371 {{
372 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
373 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
374 }, {
375 0x35, 0xf4, 0x01, 0x82, 0xab, 0x46, 0x62, 0xf3,
376 0x02, 0x3b, 0xae, 0xc1, 0xee, 0x79, 0x6b, 0x57
377 } },
378 {{
379 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
380 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
381 }, {
382 0x3a, 0xeb, 0xba, 0xd7, 0x30, 0x36, 0x49, 0xb4,
383 0x19, 0x4a, 0x69, 0x45, 0xc6, 0xcc, 0x36, 0x94
384 } },
385 {{
386 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
387 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
388 }, {
389 0xa2, 0x12, 0x4b, 0xea, 0x53, 0xec, 0x28, 0x34,
390 0x27, 0x9b, 0xed, 0x7f, 0x7e, 0xb0, 0xf9, 0x38
391 } },
392 {{
393 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
394 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
395 }, {
396 0xb9, 0xfb, 0x43, 0x99, 0xfa, 0x4f, 0xac, 0xc7,
397 0x30, 0x9e, 0x14, 0xec, 0x98, 0x36, 0x0b, 0x0a
398 } },
399 {{
400 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
401 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
402 }, {
403 0xc2, 0x62, 0x77, 0x43, 0x74, 0x20, 0xc5, 0xd6,
404 0x34, 0xf7, 0x15, 0xae, 0xa8, 0x1a, 0x91, 0x32
405 } },
406 {{
407 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00,
408 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
409 }, {
410 0x17, 0x1a, 0x0e, 0x1b, 0x2d, 0xd4, 0x24, 0xf0,
411 0xe0, 0x89, 0xaf, 0x2c, 0x4c, 0x10, 0xf3, 0x2f
412 } },
413 {{
414 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00,
415 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
416 }, {
417 0x7c, 0xad, 0xbe, 0x40, 0x2d, 0x1b, 0x20, 0x8f,
418 0xe7, 0x35, 0xed, 0xce, 0x00, 0xae, 0xe7, 0xce
419 } },
420 {{
421 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00,
422 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
423 }, {
424 0x43, 0xb0, 0x2f, 0xf9, 0x29, 0xa1, 0x48, 0x5a,
425 0xf6, 0xf5, 0xc6, 0xd6, 0x55, 0x8b, 0xaa, 0x0f
426 } },
427 {{
428 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
429 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
430 }, {
431 0x09, 0x2f, 0xaa, 0xcc, 0x9b, 0xf4, 0x35, 0x08,
432 0xbf, 0x8f, 0xa8, 0x61, 0x3c, 0xa7, 0x5d, 0xea
433 } },
434 {{
435 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
436 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
437 }, {
438 0xcb, 0x2b, 0xf8, 0x28, 0x0f, 0x3f, 0x97, 0x42,
439 0xc7, 0xed, 0x51, 0x3f, 0xe8, 0x02, 0x62, 0x9c
440 } },
441 {{
442 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
443 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
444 }, {
445 0x21, 0x5a, 0x41, 0xee, 0x44, 0x2f, 0xa9, 0x92,
446 0xa6, 0xe3, 0x23, 0x98, 0x6d, 0xed, 0x3f, 0x68
447 } },
448 {{
449 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
450 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
451 }, {
452 0xf2, 0x1e, 0x99, 0xcf, 0x4f, 0x0f, 0x77, 0xce,
453 0xa8, 0x36, 0xe1, 0x1a, 0x2f, 0xe7, 0x5f, 0xb1
454 } },
455 {{
456 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
457 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
458 }, {
459 0x95, 0xe3, 0xa0, 0xca, 0x90, 0x79, 0xe6, 0x46,
460 0x33, 0x1d, 0xf8, 0xb4, 0xe7, 0x0d, 0x2c, 0xd6
461 } },
462 {{
463 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
464 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
465 }, {
466 0x4a, 0xfe, 0x7f, 0x12, 0x0c, 0xe7, 0x61, 0x3f,
467 0x74, 0xfc, 0x12, 0xa0, 0x1a, 0x82, 0x80, 0x73
468 } },
469 {{
470 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
471 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
472 }, {
473 0x82, 0x7f, 0x00, 0x0e, 0x75, 0xe2, 0xc8, 0xb9,
474 0xd4, 0x79, 0xbe, 0xed, 0x91, 0x3f, 0xe6, 0x78
475 } },
476 {{
477 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
478 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
479 }, {
480 0x35, 0x83, 0x0c, 0x8e, 0x7a, 0xae, 0xfe, 0x2d,
481 0x30, 0x31, 0x0e, 0xf3, 0x81, 0xcb, 0xf6, 0x91
482 } },
483 {{
484 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00,
485 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
486 }, {
487 0x19, 0x1a, 0xa0, 0xf2, 0xc8, 0x57, 0x01, 0x44,
488 0xf3, 0x86, 0x57, 0xea, 0x40, 0x85, 0xeb, 0xe5
489 } },
490 {{
491 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
492 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
493 }, {
494 0x85, 0x06, 0x2c, 0x2c, 0x90, 0x9f, 0x15, 0xd9,
495 0x26, 0x9b, 0x6c, 0x18, 0xce, 0x99, 0xc4, 0xf0
496 } },
497 {{
498 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
499 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
500 }, {
501 0x67, 0x80, 0x34, 0xdc, 0x9e, 0x41, 0xb5, 0xa5,
502 0x60, 0xed, 0x23, 0x9e, 0xea, 0xb1, 0xbc, 0x78
503 } },
504 {{
505 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
506 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
507 }, {
508 0xc2, 0xf9, 0x3a, 0x4c, 0xe5, 0xab, 0x6d, 0x5d,
509 0x56, 0xf1, 0xb9, 0x3c, 0xf1, 0x99, 0x11, 0xc1
510 } },
511 {{
512 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
513 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
514 }, {
515 0x1c, 0x31, 0x12, 0xbc, 0xb0, 0xc1, 0xdc, 0xc7,
516 0x49, 0xd7, 0x99, 0x74, 0x36, 0x91, 0xbf, 0x82
517 } },
518 {{
519 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
520 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
521 }, {
522 0x00, 0xc5, 0x5b, 0xd7, 0x5c, 0x7f, 0x9c, 0x88,
523 0x19, 0x89, 0xd3, 0xec, 0x19, 0x11, 0xc0, 0xd4
524 } },
525 {{
526 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
527 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
528 }, {
529 0xea, 0x2e, 0x6b, 0x5e, 0xf1, 0x82, 0xb7, 0xdf,
530 0xf3, 0x62, 0x9a, 0xbd, 0x6a, 0x12, 0x04, 0x5f
531 } },
532 {{
533 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
534 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
535 }, {
536 0x22, 0x32, 0x23, 0x27, 0xe0, 0x17, 0x80, 0xb1,
537 0x73, 0x97, 0xf2, 0x40, 0x87, 0xf8, 0xcc, 0x6f
538 } },
539 {{
540 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
541 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
542 }, {
543 0xc9, 0xca, 0xcb, 0x5c, 0xd1, 0x16, 0x92, 0xc3,
544 0x73, 0xb2, 0x41, 0x17, 0x68, 0x14, 0x9e, 0xe7
545 } },
546 {{
547 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
548 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
549 }, {
550 0xa1, 0x8e, 0x3d, 0xbb, 0xca, 0x57, 0x78, 0x60,
551 0xda, 0xb6, 0xb8, 0x0d, 0xa3, 0x13, 0x92, 0x56
552 } },
553 {{
554 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
555 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
556 }, {
557 0x79, 0xb6, 0x1c, 0x37, 0xbf, 0x32, 0x8e, 0xcc,
558 0xa8, 0xd7, 0x43, 0x26, 0x5a, 0x3d, 0x42, 0x5c
559 } },
560 {{
561 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
562 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
563 }, {
564 0xd2, 0xd9, 0x9c, 0x6b, 0xcc, 0x1f, 0x06, 0xfd,
565 0xa8, 0xe2, 0x7e, 0x8a, 0xe3, 0xf1, 0xcc, 0xc7
566 } },
567 {{
568 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
569 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
570 }, {
571 0x1b, 0xfd, 0x4b, 0x91, 0xc7, 0x01, 0xfd, 0x6b,
572 0x61, 0xb7, 0xf9, 0x97, 0x82, 0x9d, 0x66, 0x3b
573 } },
574 {{
575 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
576 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
577 }, {
578 0x11, 0x00, 0x5d, 0x52, 0xf2, 0x5f, 0x16, 0xbd,
579 0xc9, 0x54, 0x5a, 0x87, 0x6a, 0x63, 0x49, 0x0a
580 } },
581 {{
582 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
583 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
584 }, {
585 0x3a, 0x4d, 0x35, 0x4f, 0x02, 0xbb, 0x5a, 0x5e,
586 0x47, 0xd3, 0x96, 0x66, 0x86, 0x7f, 0x24, 0x6a
587 } },
588 {{
589 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
590 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
591 }, {
592 0xd4, 0x51, 0xb8, 0xd6, 0xe1, 0xe1, 0xa0, 0xeb,
593 0xb1, 0x55, 0xfb, 0xbf, 0x6e, 0x7b, 0x7d, 0xc3
594 } },
595 {{
596 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
597 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
598 }, {
599 0x68, 0x98, 0xd4, 0xf4, 0x2f, 0xa7, 0xba, 0x6a,
600 0x10, 0xac, 0x05, 0xe8, 0x7b, 0x9f, 0x20, 0x80
601 } },
602 {{
603 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
604 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
605 }, {
606 0xb6, 0x11, 0x29, 0x5e, 0x73, 0x9c, 0xa7, 0xd9,
607 0xb5, 0x0f, 0x8e, 0x4c, 0x0e, 0x75, 0x4a, 0x3f
608 } },
609 {{
610 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
611 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
612 }, {
613 0x7d, 0x33, 0xfc, 0x7d, 0x8a, 0xbe, 0x3c, 0xa1,
614 0x93, 0x67, 0x59, 0xf8, 0xf5, 0xde, 0xaf, 0x20
615 } },
616 {{
617 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
618 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
619 }, {
620 0x3b, 0x5e, 0x0f, 0x56, 0x6d, 0xc9, 0x6c, 0x29,
621 0x8f, 0x0c, 0x12, 0x63, 0x75, 0x39, 0xb2, 0x5c
622 } },
623 {{
624 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
625 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
626 }, {
627 0xf8, 0x07, 0xc3, 0xe7, 0x98, 0x5f, 0xe0, 0xf5,
628 0xa5, 0x0e, 0x2c, 0xdb, 0x25, 0xc5, 0x10, 0x9e
629 } },
630 {{
631 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
632 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
633 }, {
634 0x41, 0xf9, 0x92, 0xa8, 0x56, 0xfb, 0x27, 0x8b,
635 0x38, 0x9a, 0x62, 0xf5, 0xd2, 0x74, 0xd7, 0xe9
636 } },
637 {{
638 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
639 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
640 }, {
641 0x10, 0xd3, 0xed, 0x7a, 0x6f, 0xe1, 0x5a, 0xb4,
642 0xd9, 0x1a, 0xcb, 0xc7, 0xd0, 0x76, 0x7a, 0xb1
643 } },
644 {{
645 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
646 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
647 }, {
648 0x21, 0xfe, 0xec, 0xd4, 0x5b, 0x2e, 0x67, 0x59,
649 0x73, 0xac, 0x33, 0xbf, 0x0c, 0x54, 0x24, 0xfc
650 } },
651 {{
652 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
653 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
654 }, {
655 0x14, 0x80, 0xcb, 0x39, 0x55, 0xba, 0x62, 0xd0,
656 0x9e, 0xea, 0x66, 0x8f, 0x7c, 0x70, 0x88, 0x17
657 } },
658 {{
659 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
660 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
661 }, {
662 0x66, 0x40, 0x40, 0x33, 0xd6, 0xb7, 0x2b, 0x60,
663 0x93, 0x54, 0xd5, 0x49, 0x6e, 0x7e, 0xb5, 0x11
664 } },
665 {{
666 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
667 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
668 }, {
669 0x1c, 0x31, 0x7a, 0x22, 0x0a, 0x7d, 0x70, 0x0d,
670 0xa2, 0xb1, 0xe0, 0x75, 0xb0, 0x02, 0x66, 0xe1
671 } },
672 {{
673 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
674 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
675 }, {
676 0xab, 0x3b, 0x89, 0x54, 0x22, 0x33, 0xf1, 0x27,
677 0x1b, 0xf8, 0xfd, 0x0c, 0x0f, 0x40, 0x35, 0x45
678 } },
679 {{
680 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
681 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
682 }, {
683 0xd9, 0x3e, 0xae, 0x96, 0x6f, 0xac, 0x46, 0xdc,
684 0xa9, 0x27, 0xd6, 0xb1, 0x14, 0xfa, 0x3f, 0x9e
685 } },
686 {{
687 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
688 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
689 }, {
690 0x1b, 0xde, 0xc5, 0x21, 0x31, 0x65, 0x03, 0xd9,
691 0xd5, 0xee, 0x65, 0xdf, 0x3e, 0xa9, 0x4d, 0xdf
692 } },
693 {{
694 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
695 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
696 }, {
697 0xee, 0xf4, 0x56, 0x43, 0x1d, 0xea, 0x8b, 0x4a,
698 0xcf, 0x83, 0xbd, 0xae, 0x37, 0x17, 0xf7, 0x5f
699 } },
700 {{
701 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
702 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
703 }, {
704 0x06, 0xf2, 0x51, 0x9a, 0x2f, 0xaf, 0xaa, 0x59,
705 0x6b, 0xfe, 0xf5, 0xcf, 0xa1, 0x5c, 0x21, 0xb9
706 } },
707 {{
708 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
709 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
710 }, {
711 0x25, 0x1a, 0x7e, 0xac, 0x7e, 0x2f, 0xe8, 0x09,
712 0xe4, 0xaa, 0x8d, 0x0d, 0x70, 0x12, 0x53, 0x1a
713 } },
714 {{
715 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
716 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
717 }, {
718 0x3b, 0xff, 0xc1, 0x6e, 0x4c, 0x49, 0xb2, 0x68,
719 0xa2, 0x0f, 0x8d, 0x96, 0xa6, 0x0b, 0x40, 0x58
720 } },
721 {{
722 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
723 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
724 }, {
725 0xe8, 0x86, 0xf9, 0x28, 0x19, 0x99, 0xc5, 0xbb,
726 0x3b, 0x3e, 0x88, 0x62, 0xe2, 0xf7, 0xc9, 0x88
727 } },
728 {{
729 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
730 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
731 }, {
732 0x56, 0x3b, 0xf9, 0x0d, 0x61, 0xbe, 0xef, 0x39,
733 0xf4, 0x8d, 0xd6, 0x25, 0xfc, 0xef, 0x13, 0x61
734 } },
735 {{
736 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
737 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
738 }, {
739 0x4d, 0x37, 0xc8, 0x50, 0x64, 0x45, 0x63, 0xc6,
740 0x9f, 0xd0, 0xac, 0xd9, 0xa0, 0x49, 0x32, 0x5b
741 } },
742 {{
743 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
744 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
745 }, {
746 0xb8, 0x7c, 0x92, 0x1b, 0x91, 0x82, 0x9e, 0xf3,
747 0xb1, 0x3c, 0xa5, 0x41, 0xee, 0x11, 0x30, 0xa6
748 } },
749 {{
750 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
751 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00
752 }, {
753 0x2e, 0x65, 0xeb, 0x6b, 0x6e, 0xa3, 0x83, 0xe1,
754 0x09, 0xac, 0xcc, 0xe8, 0x32, 0x6b, 0x03, 0x93
755 } },
756 {{
757 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
758 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00
759 }, {
760 0x9c, 0xa5, 0x47, 0xf7, 0x43, 0x9e, 0xdc, 0x3e,
761 0x25, 0x5c, 0x0f, 0x4d, 0x49, 0xaa, 0x89, 0x90
762 } },
763 {{
764 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
765 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00
766 }, {
767 0xa5, 0xe6, 0x52, 0x61, 0x4c, 0x93, 0x00, 0xf3,
768 0x78, 0x16, 0xb1, 0xf9, 0xfd, 0x0c, 0x87, 0xf9
769 } },
770 {{
771 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
772 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00
773 }, {
774 0x14, 0x95, 0x4f, 0x0b, 0x46, 0x97, 0x77, 0x6f,
775 0x44, 0x49, 0x4f, 0xe4, 0x58, 0xd8, 0x14, 0xed
776 } },
777 {{
778 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
779 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00
780 }, {
781 0x7c, 0x8d, 0x9a, 0xb6, 0xc2, 0x76, 0x17, 0x23,
782 0xfe, 0x42, 0xf8, 0xbb, 0x50, 0x6c, 0xbc, 0xf7
783 } },
784 {{
785 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
786 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00
787 }, {
788 0xdb, 0x7e, 0x19, 0x32, 0x67, 0x9f, 0xdd, 0x99,
789 0x74, 0x2a, 0xab, 0x04, 0xaa, 0x0d, 0x5a, 0x80
790 } },
791 {{
792 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
793 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
794 }, {
795 0x4c, 0x6a, 0x1c, 0x83, 0xe5, 0x68, 0xcd, 0x10,
796 0xf2, 0x7c, 0x2d, 0x73, 0xde, 0xd1, 0x9c, 0x28
797 } },
798 {{
799 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
800 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00
801 }, {
802 0x90, 0xec, 0xbe, 0x61, 0x77, 0xe6, 0x74, 0xc9,
803 0x8d, 0xe4, 0x12, 0x41, 0x3f, 0x7a, 0xc9, 0x15
804 } },
805 {{
806 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
807 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00
808 }, {
809 0x90, 0x68, 0x4a, 0x2a, 0xc5, 0x5f, 0xe1, 0xec,
810 0x2b, 0x8e, 0xbd, 0x56, 0x22, 0x52, 0x0b, 0x73
811 } },
812 {{
813 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
814 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00
815 }, {
816 0x74, 0x72, 0xf9, 0xa7, 0x98, 0x86, 0x07, 0xca,
817 0x79, 0x70, 0x77, 0x95, 0x99, 0x10, 0x35, 0xe6
818 } },
819 {{
820 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
821 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00
822 }, {
823 0x56, 0xaf, 0xf0, 0x89, 0x87, 0x8b, 0xf3, 0x35,
824 0x2f, 0x8d, 0xf1, 0x72, 0xa3, 0xae, 0x47, 0xd8
825 } },
826 {{
827 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
828 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00
829 }, {
830 0x65, 0xc0, 0x52, 0x6c, 0xbe, 0x40, 0x16, 0x1b,
831 0x80, 0x19, 0xa2, 0xa3, 0x17, 0x1a, 0xbd, 0x23
832 } },
833 {{
834 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
835 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00
836 }, {
837 0x37, 0x7b, 0xe0, 0xbe, 0x33, 0xb4, 0xe3, 0xe3,
838 0x10, 0xb4, 0xaa, 0xbd, 0xa1, 0x73, 0xf8, 0x4f
839 } },
840 {{
841 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
842 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00
843 }, {
844 0x94, 0x02, 0xe9, 0xaa, 0x6f, 0x69, 0xde, 0x65,
845 0x04, 0xda, 0x8d, 0x20, 0xc4, 0xfc, 0xaa, 0x2f
846 } },
847 {{
848 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
849 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00
850 }, {
851 0x12, 0x3c, 0x1f, 0x4a, 0xf3, 0x13, 0xad, 0x8c,
852 0x2c, 0xe6, 0x48, 0xb2, 0xe7, 0x1f, 0xb6, 0xe1
853 } },
854 {{
855 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
856 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00
857 }, {
858 0x1f, 0xfc, 0x62, 0x6d, 0x30, 0x20, 0x3d, 0xcd,
859 0xb0, 0x01, 0x9f, 0xb8, 0x0f, 0x72, 0x6c, 0xf4
860 } },
861 {{
862 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
863 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00
864 }, {
865 0x76, 0xda, 0x1f, 0xbe, 0x3a, 0x50, 0x72, 0x8c,
866 0x50, 0xfd, 0x2e, 0x62, 0x1b, 0x5a, 0xd8, 0x85
867 } },
868 {{
869 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
870 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00
871 }, {
872 0x08, 0x2e, 0xb8, 0xbe, 0x35, 0xf4, 0x42, 0xfb,
873 0x52, 0x66, 0x8e, 0x16, 0xa5, 0x91, 0xd1, 0xd6
874 } },
875 {{
876 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
877 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00
878 }, {
879 0xe6, 0x56, 0xf9, 0xec, 0xf5, 0xfe, 0x27, 0xec,
880 0x3e, 0x4a, 0x73, 0xd0, 0x0c, 0x28, 0x2f, 0xb3
881 } },
882 {{
883 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
884 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00
885 }, {
886 0x2c, 0xa8, 0x20, 0x9d, 0x63, 0x27, 0x4c, 0xd9,
887 0xa2, 0x9b, 0xb7, 0x4b, 0xcd, 0x77, 0x68, 0x3a
888 } },
889 {{
890 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
891 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00
892 }, {
893 0x79, 0xbf, 0x5d, 0xce, 0x14, 0xbb, 0x7d, 0xd7,
894 0x3a, 0x8e, 0x36, 0x11, 0xde, 0x7c, 0xe0, 0x26
895 } },
896 {{
897 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
898 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00
899 }, {
900 0x3c, 0x84, 0x99, 0x39, 0xa5, 0xd2, 0x93, 0x99,
901 0xf3, 0x44, 0xc4, 0xa0, 0xec, 0xa8, 0xa5, 0x76
902 } },
903 {{
904 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
905 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00
906 }, {
907 0xed, 0x3c, 0x0a, 0x94, 0xd5, 0x9b, 0xec, 0xe9,
908 0x88, 0x35, 0xda, 0x7a, 0xa4, 0xf0, 0x7c, 0xa2
909 } },
910 {{
911 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
912 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00
913 }, {
914 0x63, 0x91, 0x9e, 0xd4, 0xce, 0x10, 0x19, 0x64,
915 0x38, 0xb6, 0xad, 0x09, 0xd9, 0x9c, 0xd7, 0x95
916 } },
917 {{
918 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
919 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00
920 }, {
921 0x76, 0x78, 0xf3, 0xa8, 0x33, 0xf1, 0x9f, 0xea,
922 0x95, 0xf3, 0xc6, 0x02, 0x9e, 0x2b, 0xc6, 0x10
923 } },
924 {{
925 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
926 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00
927 }, {
928 0x3a, 0xa4, 0x26, 0x83, 0x10, 0x67, 0xd3, 0x6b,
929 0x92, 0xbe, 0x7c, 0x5f, 0x81, 0xc1, 0x3c, 0x56
930 } },
931 {{
932 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
933 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00
934 }, {
935 0x92, 0x72, 0xe2, 0xd2, 0xcd, 0xd1, 0x10, 0x50,
936 0x99, 0x8c, 0x84, 0x50, 0x77, 0xa3, 0x0e, 0xa0
937 } },
938 {{
939 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
940 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00
941 }, {
942 0x08, 0x8c, 0x4b, 0x53, 0xf5, 0xec, 0x0f, 0xf8,
943 0x14, 0xc1, 0x9a, 0xda, 0xe7, 0xf6, 0x24, 0x6c
944 } },
945 {{
946 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
947 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00
948 }, {
949 0x40, 0x10, 0xa5, 0xe4, 0x01, 0xfd, 0xf0, 0xa0,
950 0x35, 0x4d, 0xdb, 0xcc, 0x0d, 0x01, 0x2b, 0x17
951 } },
952 {{
953 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
954 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00
955 }, {
956 0xa8, 0x7a, 0x38, 0x57, 0x36, 0xc0, 0xa6, 0x18,
957 0x9b, 0xd6, 0x58, 0x9b, 0xd8, 0x44, 0x5a, 0x93
958 } },
959 {{
960 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
961 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00
962 }, {
963 0x54, 0x5f, 0x2b, 0x83, 0xd9, 0x61, 0x6d, 0xcc,
964 0xf6, 0x0f, 0xa9, 0x83, 0x0e, 0x9c, 0xd2, 0x87
965 } },
966 {{
967 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
968 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00
969 }, {
970 0x4b, 0x70, 0x6f, 0x7f, 0x92, 0x40, 0x63, 0x52,
971 0x39, 0x40, 0x37, 0xa6, 0xd4, 0xf4, 0x68, 0x8d
972 } },
973 {{
974 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
975 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00
976 }, {
977 0xb7, 0x97, 0x2b, 0x39, 0x41, 0xc4, 0x4b, 0x90,
978 0xaf, 0xa7, 0xb2, 0x64, 0xbf, 0xba, 0x73, 0x87
979 } },
980 {{
981 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
982 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00
983 }, {
984 0x6f, 0x45, 0x73, 0x2c, 0xf1, 0x08, 0x81, 0x54,
985 0x6f, 0x0f, 0xd2, 0x38, 0x96, 0xd2, 0xbb, 0x60
986 } },
987 {{
988 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
989 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00
990 }, {
991 0x2e, 0x35, 0x79, 0xca, 0x15, 0xaf, 0x27, 0xf6,
992 0x4b, 0x3c, 0x95, 0x5a, 0x5b, 0xfc, 0x30, 0xba
993 } },
994 {{
995 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
996 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00
997 }, {
998 0x34, 0xa2, 0xc5, 0xa9, 0x1a, 0xe2, 0xae, 0xc9,
999 0x9b, 0x7d, 0x1b, 0x5f, 0xa6, 0x78, 0x04, 0x47
1000 } },
1001 {{
1002 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1003 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00
1004 }, {
1005 0xa4, 0xd6, 0x61, 0x6b, 0xd0, 0x4f, 0x87, 0x33,
1006 0x5b, 0x0e, 0x53, 0x35, 0x12, 0x27, 0xa9, 0xee
1007 } },
1008 {{
1009 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1010 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00
1011 }, {
1012 0x7f, 0x69, 0x2b, 0x03, 0x94, 0x58, 0x67, 0xd1,
1013 0x61, 0x79, 0xa8, 0xce, 0xfc, 0x83, 0xea, 0x3f
1014 } },
1015 {{
1016 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1017 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00
1018 }, {
1019 0x3b, 0xd1, 0x41, 0xee, 0x84, 0xa0, 0xe6, 0x41,
1020 0x4a, 0x26, 0xe7, 0xa4, 0xf2, 0x81, 0xf8, 0xa2
1021 } },
1022 {{
1023 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1024 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80
1025 }, {
1026 0xd1, 0x78, 0x8f, 0x57, 0x2d, 0x98, 0xb2, 0xb1,
1027 0x6e, 0xc5, 0xd5, 0xf3, 0x92, 0x2b, 0x99, 0xbc
1028 } },
1029 {{
1030 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1031 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
1032 }, {
1033 0x08, 0x33, 0xff, 0x6f, 0x61, 0xd9, 0x8a, 0x57,
1034 0xb2, 0x88, 0xe8, 0xc3, 0x58, 0x6b, 0x85, 0xa6
1035 } },
1036 {{
1037 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1038 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0
1039 }, {
1040 0x85, 0x68, 0x26, 0x17, 0x97, 0xde, 0x17, 0x6b,
1041 0xf0, 0xb4, 0x3b, 0xec, 0xc6, 0x28, 0x5a, 0xfb
1042 } },
1043 {{
1044 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1045 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0
1046 }, {
1047 0xf9, 0xb0, 0xfd, 0xa0, 0xc4, 0xa8, 0x98, 0xf5,
1048 0xb9, 0xe6, 0xf6, 0x61, 0xc4, 0xce, 0x4d, 0x07
1049 } },
1050 {{
1051 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1052 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8
1053 }, {
1054 0x8a, 0xde, 0x89, 0x59, 0x13, 0x68, 0x5c, 0x67,
1055 0xc5, 0x26, 0x9f, 0x8a, 0xae, 0x42, 0x98, 0x3e
1056 } },
1057 {{
1058 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1059 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc
1060 }, {
1061 0x39, 0xbd, 0xe6, 0x7d, 0x5c, 0x8e, 0xd8, 0xa8,
1062 0xb1, 0xc3, 0x7e, 0xb8, 0xfa, 0x9f, 0x5a, 0xc0
1063 } },
1064 {{
1065 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1066 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe
1067 }, {
1068 0x5c, 0x00, 0x5e, 0x72, 0xc1, 0x41, 0x8c, 0x44,
1069 0xf5, 0x69, 0xf2, 0xea, 0x33, 0xba, 0x54, 0xf3
1070 } },
1071 {{
1072 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1073 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1074 }, {
1075 0x3f, 0x5b, 0x8c, 0xc9, 0xea, 0x85, 0x5a, 0x0a,
1076 0xfa, 0x73, 0x47, 0xd2, 0x3e, 0x8d, 0x66, 0x4e
1077 } }
1078 };
1079 struct tc_aes_key_sched_struct s;
Fabio Utzig3efe6b62017-09-22 16:03:24 -03001080 unsigned int i;
David Brownfecda2d2017-09-07 10:20:34 -06001081
1082 TC_PRINT("AES128 %s (NIST fixed-key and variable-text):\n", __func__);
1083
1084 (void)tc_aes128_set_encrypt_key(&s, key);
1085
1086 for (i = 0; i < 128; ++i) {
1087 result = var_text_test(i, kat_tbl[i].in, kat_tbl[i].out, &s);
1088 if (result == TC_FAIL) {
1089 break;
1090 }
1091 }
1092
1093 TC_END_RESULT(result);
1094
1095 return result;
1096}
1097
Fabio Utzig3efe6b62017-09-22 16:03:24 -03001098int var_key_test(unsigned int r, const uint8_t *in, const uint8_t *out)
David Brownfecda2d2017-09-07 10:20:34 -06001099{
1100 int result = TC_PASS;
1101
1102 const uint8_t plaintext[NUM_OF_NIST_KEYS] = {
1103 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1104 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1105 };
1106 uint8_t ciphertext[NUM_OF_NIST_KEYS];
1107 struct tc_aes_key_sched_struct s;
1108
1109 (void)tc_aes128_set_encrypt_key(&s, in);
1110
1111 (void)tc_aes_encrypt(ciphertext, plaintext, &s);
Fabio Utzig3efe6b62017-09-22 16:03:24 -03001112 result = check_result(r, out, NUM_OF_NIST_KEYS, ciphertext,
1113 sizeof(ciphertext));
David Brownfecda2d2017-09-07 10:20:34 -06001114
1115 return result;
1116}
1117
1118/*
1119 * All NIST tests with variable key and fixed text.
1120 */
1121int test_4(void)
1122{
1123 int result = TC_PASS;
1124 const struct kat_table kat_tbl[NUM_OF_FIXED_KEYS] = {
1125 {{
1126 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1127 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1128 }, {
1129 0x0e, 0xdd, 0x33, 0xd3, 0xc6, 0x21, 0xe5, 0x46,
1130 0x45, 0x5b, 0xd8, 0xba, 0x14, 0x18, 0xbe, 0xc8
1131 } },
1132 {{
1133 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1134 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1135 }, {
1136 0x4b, 0xc3, 0xf8, 0x83, 0x45, 0x0c, 0x11, 0x3c,
1137 0x64, 0xca, 0x42, 0xe1, 0x11, 0x2a, 0x9e, 0x87
1138 } },
1139 {{
1140 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1141 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1142 }, {
1143 0x72, 0xa1, 0xda, 0x77, 0x0f, 0x5d, 0x7a, 0xc4,
1144 0xc9, 0xef, 0x94, 0xd8, 0x22, 0xaf, 0xfd, 0x97
1145 } },
1146 {{
1147 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1148 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1149 }, {
1150 0x97, 0x00, 0x14, 0xd6, 0x34, 0xe2, 0xb7, 0x65,
1151 0x07, 0x77, 0xe8, 0xe8, 0x4d, 0x03, 0xcc, 0xd8
1152 } },
1153 {{
1154 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1155 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1156 }, {
1157 0xf1, 0x7e, 0x79, 0xae, 0xd0, 0xdb, 0x7e, 0x27,
1158 0x9e, 0x95, 0x5b, 0x5f, 0x49, 0x38, 0x75, 0xa7
1159 } },
1160 {{
1161 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1162 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1163 }, {
1164 0x9e, 0xd5, 0xa7, 0x51, 0x36, 0xa9, 0x40, 0xd0,
1165 0x96, 0x3d, 0xa3, 0x79, 0xdb, 0x4a, 0xf2, 0x6a
1166 } },
1167 {{
1168 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1169 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1170 }, {
1171 0xc4, 0x29, 0x5f, 0x83, 0x46, 0x5c, 0x77, 0x55,
1172 0xe8, 0xfa, 0x36, 0x4b, 0xac, 0x6a, 0x7e, 0xa5
1173 } },
1174 {{
1175 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1176 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1177 }, {
1178 0xb1, 0xd7, 0x58, 0x25, 0x6b, 0x28, 0xfd, 0x85,
1179 0x0a, 0xd4, 0x94, 0x42, 0x08, 0xcf, 0x11, 0x55
1180 } },
1181 {{
1182 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1183 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1184 }, {
1185 0x42, 0xff, 0xb3, 0x4c, 0x74, 0x3d, 0xe4, 0xd8,
1186 0x8c, 0xa3, 0x80, 0x11, 0xc9, 0x90, 0x89, 0x0b
1187 } },
1188 {{
1189 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1190 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1191 }, {
1192 0x99, 0x58, 0xf0, 0xec, 0xea, 0x8b, 0x21, 0x72,
1193 0xc0, 0xc1, 0x99, 0x5f, 0x91, 0x82, 0xc0, 0xf3
1194 } },
1195 {{
1196 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1197 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1198 }, {
1199 0x95, 0x6d, 0x77, 0x98, 0xfa, 0xc2, 0x0f, 0x82,
1200 0xa8, 0x82, 0x3f, 0x98, 0x4d, 0x06, 0xf7, 0xf5
1201 } },
1202 {{
1203 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1204 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1205 }, {
1206 0xa0, 0x1b, 0xf4, 0x4f, 0x2d, 0x16, 0xbe, 0x92,
1207 0x8c, 0xa4, 0x4a, 0xaf, 0x7b, 0x9b, 0x10, 0x6b
1208 } },
1209 {{
1210 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1211 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1212 }, {
1213 0xb5, 0xf1, 0xa3, 0x3e, 0x50, 0xd4, 0x0d, 0x10,
1214 0x37, 0x64, 0xc7, 0x6b, 0xd4, 0xc6, 0xb6, 0xf8
1215 } },
1216 {{
1217 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1218 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1219 }, {
1220 0x26, 0x37, 0x05, 0x0c, 0x9f, 0xc0, 0xd4, 0x81,
1221 0x7e, 0x2d, 0x69, 0xde, 0x87, 0x8a, 0xee, 0x8d
1222 } },
1223 {{
1224 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1225 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1226 }, {
1227 0x11, 0x3e, 0xcb, 0xe4, 0xa4, 0x53, 0x26, 0x9a,
1228 0x0d, 0xd2, 0x60, 0x69, 0x46, 0x7f, 0xb5, 0xb5
1229 } },
1230 {{
1231 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1232 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1233 }, {
1234 0x97, 0xd0, 0x75, 0x4f, 0xe6, 0x8f, 0x11, 0xb9,
1235 0xe3, 0x75, 0xd0, 0x70, 0xa6, 0x08, 0xc8, 0x84
1236 } },
1237 {{
1238 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
1239 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1240 }, {
1241 0xc6, 0xa0, 0xb3, 0xe9, 0x98, 0xd0, 0x50, 0x68,
1242 0xa5, 0x39, 0x97, 0x78, 0x40, 0x52, 0x00, 0xb4
1243 } },
1244 {{
1245 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
1246 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1247 }, {
1248 0xdf, 0x55, 0x6a, 0x33, 0x43, 0x8d, 0xb8, 0x7b,
1249 0xc4, 0x1b, 0x17, 0x52, 0xc5, 0x5e, 0x5e, 0x49
1250 } },
1251 {{
1252 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
1253 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1254 }, {
1255 0x90, 0xfb, 0x12, 0x8d, 0x3a, 0x1a, 0xf6, 0xe5,
1256 0x48, 0x52, 0x1b, 0xb9, 0x62, 0xbf, 0x1f, 0x05
1257 } },
1258 {{
1259 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
1260 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1261 }, {
1262 0x26, 0x29, 0x8e, 0x9c, 0x1d, 0xb5, 0x17, 0xc2,
1263 0x15, 0xfa, 0xdf, 0xb7, 0xd2, 0xa8, 0xd6, 0x91
1264 } },
1265 {{
1266 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
1267 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1268 }, {
1269 0xa6, 0xcb, 0x76, 0x1d, 0x61, 0xf8, 0x29, 0x2d,
1270 0x0d, 0xf3, 0x93, 0xa2, 0x79, 0xad, 0x03, 0x80
1271 } },
1272 {{
1273 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
1274 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1275 }, {
1276 0x12, 0xac, 0xd8, 0x9b, 0x13, 0xcd, 0x5f, 0x87,
1277 0x26, 0xe3, 0x4d, 0x44, 0xfd, 0x48, 0x61, 0x08
1278 } },
1279 {{
1280 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
1281 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1282 }, {
1283 0x95, 0xb1, 0x70, 0x3f, 0xc5, 0x7b, 0xa0, 0x9f,
1284 0xe0, 0xc3, 0x58, 0x0f, 0xeb, 0xdd, 0x7e, 0xd4
1285 } },
1286 {{
1287 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
1288 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1289 }, {
1290 0xde, 0x11, 0x72, 0x2d, 0x89, 0x3e, 0x9f, 0x91,
1291 0x21, 0xc3, 0x81, 0xbe, 0xcc, 0x1d, 0xa5, 0x9a
1292 } },
1293 {{
1294 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
1295 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1296 }, {
1297 0x6d, 0x11, 0x4c, 0xcb, 0x27, 0xbf, 0x39, 0x10,
1298 0x12, 0xe8, 0x97, 0x4c, 0x54, 0x6d, 0x9b, 0xf2
1299 } },
1300 {{
1301 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
1302 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1303 }, {
1304 0x5c, 0xe3, 0x7e, 0x17, 0xeb, 0x46, 0x46, 0xec,
1305 0xfa, 0xc2, 0x9b, 0x9c, 0xc3, 0x8d, 0x93, 0x40
1306 } },
1307 {{
1308 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
1309 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1310 }, {
1311 0x18, 0xc1, 0xb6, 0xe2, 0x15, 0x71, 0x22, 0x05,
1312 0x6d, 0x02, 0x43, 0xd8, 0xa1, 0x65, 0xcd, 0xdb
1313 } },
1314 {{
1315 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
1316 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1317 }, {
1318 0x99, 0x69, 0x3e, 0x6a, 0x59, 0xd1, 0x36, 0x6c,
1319 0x74, 0xd8, 0x23, 0x56, 0x2d, 0x7e, 0x14, 0x31
1320 } },
1321 {{
1322 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
1323 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1324 }, {
1325 0x6c, 0x7c, 0x64, 0xdc, 0x84, 0xa8, 0xbb, 0xa7,
1326 0x58, 0xed, 0x17, 0xeb, 0x02, 0x5a, 0x57, 0xe3
1327 } },
1328 {{
1329 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
1330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1331 }, {
1332 0xe1, 0x7b, 0xc7, 0x9f, 0x30, 0xea, 0xab, 0x2f,
1333 0xac, 0x2c, 0xbb, 0xe3, 0x45, 0x8d, 0x68, 0x7a
1334 } },
1335 {{
1336 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
1337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1338 }, {
1339 0x11, 0x14, 0xbc, 0x20, 0x28, 0x00, 0x9b, 0x92,
1340 0x3f, 0x0b, 0x01, 0x91, 0x5c, 0xe5, 0xe7, 0xc4
1341 } },
1342 {{
1343 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
1344 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1345 }, {
1346 0x9c, 0x28, 0x52, 0x4a, 0x16, 0xa1, 0xe1, 0xc1,
1347 0x45, 0x29, 0x71, 0xca, 0xa8, 0xd1, 0x34, 0x76
1348 } },
1349 {{
1350 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00,
1351 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1352 }, {
1353 0xed, 0x62, 0xe1, 0x63, 0x63, 0x63, 0x83, 0x60,
1354 0xfd, 0xd6, 0xad, 0x62, 0x11, 0x27, 0x94, 0xf0
1355 } },
1356 {{
1357 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00,
1358 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1359 }, {
1360 0x5a, 0x86, 0x88, 0xf0, 0xb2, 0xa2, 0xc1, 0x62,
1361 0x24, 0xc1, 0x61, 0x65, 0x8f, 0xfd, 0x40, 0x44
1362 } },
1363 {{
1364 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00,
1365 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1366 }, {
1367 0x23, 0xf7, 0x10, 0x84, 0x2b, 0x9b, 0xb9, 0xc3,
1368 0x2f, 0x26, 0x64, 0x8c, 0x78, 0x68, 0x07, 0xca
1369 } },
1370 {{
1371 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
1372 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1373 }, {
1374 0x44, 0xa9, 0x8b, 0xf1, 0x1e, 0x16, 0x3f, 0x63,
1375 0x2c, 0x47, 0xec, 0x6a, 0x49, 0x68, 0x3a, 0x89
1376 } },
1377 {{
1378 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
1379 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1380 }, {
1381 0x0f, 0x18, 0xaf, 0xf9, 0x42, 0x74, 0x69, 0x6d,
1382 0x9b, 0x61, 0x84, 0x8b, 0xd5, 0x0a, 0xc5, 0xe5
1383 } },
1384 {{
1385 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
1386 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1387 }, {
1388 0x82, 0x40, 0x85, 0x71, 0xc3, 0xe2, 0x42, 0x45,
1389 0x40, 0x20, 0x7f, 0x83, 0x3b, 0x6d, 0xda, 0x69
1390 } },
1391 {{
1392 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
1393 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1394 }, {
1395 0x30, 0x3f, 0xf9, 0x96, 0x94, 0x7f, 0x0c, 0x7d,
1396 0x1f, 0x43, 0xc8, 0xf3, 0x02, 0x7b, 0x9b, 0x75
1397 } },
1398 {{
1399 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
1400 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1401 }, {
1402 0x7d, 0xf4, 0xda, 0xf4, 0xad, 0x29, 0xa3, 0x61,
1403 0x5a, 0x9b, 0x6e, 0xce, 0x5c, 0x99, 0x51, 0x8a
1404 } },
1405 {{
1406 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
1407 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1408 }, {
1409 0xc7, 0x29, 0x54, 0xa4, 0x8d, 0x07, 0x74, 0xdb,
1410 0x0b, 0x49, 0x71, 0xc5, 0x26, 0x26, 0x04, 0x15
1411 } },
1412 {{
1413 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
1414 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1415 }, {
1416 0x1d, 0xf9, 0xb7, 0x61, 0x12, 0xdc, 0x65, 0x31,
1417 0xe0, 0x7d, 0x2c, 0xfd, 0xa0, 0x44, 0x11, 0xf0
1418 } },
1419 {{
1420 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
1421 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1422 }, {
1423 0x8e, 0x4d, 0x8e, 0x69, 0x91, 0x19, 0xe1, 0xfc,
1424 0x87, 0x54, 0x5a, 0x64, 0x7f, 0xb1, 0xd3, 0x4f
1425 } },
1426 {{
1427 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00,
1428 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1429 }, {
1430 0xe6, 0xc4, 0x80, 0x7a, 0xe1, 0x1f, 0x36, 0xf0,
1431 0x91, 0xc5, 0x7d, 0x9f, 0xb6, 0x85, 0x48, 0xd1
1432 } },
1433 {{
1434 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
1435 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1436 }, {
1437 0x8e, 0xbf, 0x73, 0xaa, 0xd4, 0x9c, 0x82, 0x00,
1438 0x7f, 0x77, 0xa5, 0xc1, 0xcc, 0xec, 0x6a, 0xb4
1439 } },
1440 {{
1441 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
1442 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1443 }, {
1444 0x4f, 0xb2, 0x88, 0xcc, 0x20, 0x40, 0x04, 0x90,
1445 0x01, 0xd2, 0xc7, 0x58, 0x5a, 0xd1, 0x23, 0xfc
1446 } },
1447 {{
1448 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
1449 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1450 }, {
1451 0x04, 0x49, 0x71, 0x10, 0xef, 0xb9, 0xdc, 0xeb,
1452 0x13, 0xe2, 0xb1, 0x3f, 0xb4, 0x46, 0x55, 0x64
1453 } },
1454 {{
1455 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1456 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1457 }, {
1458 0x75, 0x55, 0x0e, 0x6c, 0xb5, 0xa8, 0x8e, 0x49,
1459 0x63, 0x4c, 0x9a, 0xb6, 0x9e, 0xda, 0x04, 0x30
1460 } },
1461 {{
1462 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
1463 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1464 }, {
1465 0xb6, 0x76, 0x84, 0x73, 0xce, 0x98, 0x43, 0xea,
1466 0x66, 0xa8, 0x14, 0x05, 0xdd, 0x50, 0xb3, 0x45
1467 } },
1468 {{
1469 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
1470 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1471 }, {
1472 0xcb, 0x2f, 0x43, 0x03, 0x83, 0xf9, 0x08, 0x4e,
1473 0x03, 0xa6, 0x53, 0x57, 0x1e, 0x06, 0x5d, 0xe6
1474 } },
1475 {{
1476 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
1477 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1478 }, {
1479 0xff, 0x4e, 0x66, 0xc0, 0x7b, 0xae, 0x3e, 0x79,
1480 0xfb, 0x7d, 0x21, 0x08, 0x47, 0xa3, 0xb0, 0xba
1481 } },
1482 {{
1483 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
1484 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1485 }, {
1486 0x7b, 0x90, 0x78, 0x51, 0x25, 0x50, 0x5f, 0xad,
1487 0x59, 0xb1, 0x3c, 0x18, 0x6d, 0xd6, 0x6c, 0xe3
1488 } },
1489 {{
1490 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
1491 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1492 }, {
1493 0x8b, 0x52, 0x7a, 0x6a, 0xeb, 0xda, 0xec, 0x9e,
1494 0xae, 0xf8, 0xed, 0xa2, 0xcb, 0x77, 0x83, 0xe5
1495 } },
1496 {{
1497 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
1498 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1499 }, {
1500 0x43, 0xfd, 0xaf, 0x53, 0xeb, 0xbc, 0x98, 0x80,
1501 0xc2, 0x28, 0x61, 0x7d, 0x6a, 0x9b, 0x54, 0x8b
1502 } },
1503 {{
1504 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
1505 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1506 }, {
1507 0x53, 0x78, 0x61, 0x04, 0xb9, 0x74, 0x4b, 0x98,
1508 0xf0, 0x52, 0xc4, 0x6f, 0x1c, 0x85, 0x0d, 0x0b
1509 } },
1510 {{
1511 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
1512 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1513 }, {
1514 0xb5, 0xab, 0x30, 0x13, 0xdd, 0x1e, 0x61, 0xdf,
1515 0x06, 0xcb, 0xaf, 0x34, 0xca, 0x2a, 0xee, 0x78
1516 } },
1517 {{
1518 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
1519 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1520 }, {
1521 0x74, 0x70, 0x46, 0x9b, 0xe9, 0x72, 0x30, 0x30,
1522 0xfd, 0xcc, 0x73, 0xa8, 0xcd, 0x4f, 0xbb, 0x10
1523 } },
1524 {{
1525 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
1526 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1527 }, {
1528 0xa3, 0x5a, 0x63, 0xf5, 0x34, 0x3e, 0xbe, 0x9e,
1529 0xf8, 0x16, 0x7b, 0xcb, 0x48, 0xad, 0x12, 0x2e
1530 } },
1531 {{
1532 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
1533 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1534 }, {
1535 0xfd, 0x86, 0x87, 0xf0, 0x75, 0x7a, 0x21, 0x0e,
1536 0x9f, 0xdf, 0x18, 0x12, 0x04, 0xc3, 0x08, 0x63
1537 } },
1538 {{
1539 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
1540 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1541 }, {
1542 0x7a, 0x18, 0x1e, 0x84, 0xbd, 0x54, 0x57, 0xd2,
1543 0x6a, 0x88, 0xfb, 0xae, 0x96, 0x01, 0x8f, 0xb0
1544 } },
1545 {{
1546 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
1547 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1548 }, {
1549 0x65, 0x33, 0x17, 0xb9, 0x36, 0x2b, 0x6f, 0x9b,
1550 0x9e, 0x1a, 0x58, 0x0e, 0x68, 0xd4, 0x94, 0xb5
1551 } },
1552 {{
1553 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
1554 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1555 }, {
1556 0x99, 0x5c, 0x9d, 0xc0, 0xb6, 0x89, 0xf0, 0x3c,
1557 0x45, 0x86, 0x7b, 0x5f, 0xaa, 0x5c, 0x18, 0xd1
1558 } },
1559 {{
1560 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
1561 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1562 }, {
1563 0x77, 0xa4, 0xd9, 0x6d, 0x56, 0xdd, 0xa3, 0x98,
1564 0xb9, 0xaa, 0xbe, 0xcf, 0xc7, 0x57, 0x29, 0xfd
1565 } },
1566 {{
1567 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1568 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1569 }, {
1570 0x84, 0xbe, 0x19, 0xe0, 0x53, 0x63, 0x5f, 0x09,
1571 0xf2, 0x66, 0x5e, 0x7b, 0xae, 0x85, 0xb4, 0x2d
1572 } },
1573 {{
1574 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1575 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1576 }, {
1577 0x32, 0xcd, 0x65, 0x28, 0x42, 0x92, 0x6a, 0xea,
1578 0x4a, 0xa6, 0x13, 0x7b, 0xb2, 0xbe, 0x2b, 0x5e
1579 } },
1580 {{
1581 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1582 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1583 }, {
1584 0x49, 0x3d, 0x4a, 0x4f, 0x38, 0xeb, 0xb3, 0x37,
1585 0xd1, 0x0a, 0xa8, 0x4e, 0x91, 0x71, 0xa5, 0x54
1586 } },
1587 {{
1588 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1589 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1590 }, {
1591 0xd9, 0xbf, 0xf7, 0xff, 0x45, 0x4b, 0x0e, 0xc5,
1592 0xa4, 0xa2, 0xa6, 0x95, 0x66, 0xe2, 0xcb, 0x84
1593 } },
1594 {{
1595 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1596 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1597 }, {
1598 0x35, 0x35, 0xd5, 0x65, 0xac, 0xe3, 0xf3, 0x1e,
1599 0xb2, 0x49, 0xba, 0x2c, 0xc6, 0x76, 0x5d, 0x7a
1600 } },
1601 {{
1602 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1603 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1604 }, {
1605 0xf6, 0x0e, 0x91, 0xfc, 0x32, 0x69, 0xee, 0xcf,
1606 0x32, 0x31, 0xc6, 0xe9, 0x94, 0x56, 0x97, 0xc6
1607 } },
1608 {{
1609 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1610 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1611 }, {
1612 0xab, 0x69, 0xcf, 0xad, 0xf5, 0x1f, 0x8e, 0x60,
1613 0x4d, 0x9c, 0xc3, 0x71, 0x82, 0xf6, 0x63, 0x5a
1614 } },
1615 {{
1616 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1617 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1618 }, {
1619 0x78, 0x66, 0x37, 0x3f, 0x24, 0xa0, 0xb6, 0xed,
1620 0x56, 0xe0, 0xd9, 0x6f, 0xcd, 0xaf, 0xb8, 0x77
1621 } },
1622 {{
1623 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1624 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1625 }, {
1626 0x1e, 0xa4, 0x48, 0xc2, 0xaa, 0xc9, 0x54, 0xf5,
1627 0xd8, 0x12, 0xe9, 0xd7, 0x84, 0x94, 0x44, 0x6a
1628 } },
1629 {{
1630 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1631 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1632 }, {
1633 0xac, 0xc5, 0x59, 0x9d, 0xd8, 0xac, 0x02, 0x23,
1634 0x9a, 0x0f, 0xef, 0x4a, 0x36, 0xdd, 0x16, 0x68
1635 } },
1636 {{
1637 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1638 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1639 }, {
1640 0xd8, 0x76, 0x44, 0x68, 0xbb, 0x10, 0x38, 0x28,
1641 0xcf, 0x7e, 0x14, 0x73, 0xce, 0x89, 0x50, 0x73
1642 } },
1643 {{
1644 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1645 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1646 }, {
1647 0x1b, 0x0d, 0x02, 0x89, 0x36, 0x83, 0xb9, 0xf1,
1648 0x80, 0x45, 0x8e, 0x4a, 0xa6, 0xb7, 0x39, 0x82
1649 } },
1650 {{
1651 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1652 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1653 }, {
1654 0x96, 0xd9, 0xb0, 0x17, 0xd3, 0x02, 0xdf, 0x41,
1655 0x0a, 0x93, 0x7d, 0xcd, 0xb8, 0xbb, 0x6e, 0x43
1656 } },
1657 {{
1658 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1659 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1660 }, {
1661 0xef, 0x16, 0x23, 0xcc, 0x44, 0x31, 0x3c, 0xff,
1662 0x44, 0x0b, 0x15, 0x94, 0xa7, 0xe2, 0x1c, 0xc6
1663 } },
1664 {{
1665 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1666 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1667 }, {
1668 0x28, 0x4c, 0xa2, 0xfa, 0x35, 0x80, 0x7b, 0x8b,
1669 0x0a, 0xe4, 0xd1, 0x9e, 0x11, 0xd7, 0xdb, 0xd7
1670 } },
1671 {{
1672 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1673 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1674 }, {
1675 0xf2, 0xe9, 0x76, 0x87, 0x57, 0x55, 0xf9, 0x40,
1676 0x1d, 0x54, 0xf3, 0x6e, 0x2a, 0x23, 0xa5, 0x94
1677 } },
1678 {{
1679 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1680 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1681 }, {
1682 0xec, 0x19, 0x8a, 0x18, 0xe1, 0x0e, 0x53, 0x24,
1683 0x03, 0xb7, 0xe2, 0x08, 0x87, 0xc8, 0xdd, 0x80
1684 } },
1685 {{
1686 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1687 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
1688 }, {
1689 0x54, 0x5d, 0x50, 0xeb, 0xd9, 0x19, 0xe4, 0xa6,
1690 0x94, 0x9d, 0x96, 0xad, 0x47, 0xe4, 0x6a, 0x80
1691 } },
1692 {{
1693 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1694 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00
1695 }, {
1696 0xdb, 0xdf, 0xb5, 0x27, 0x06, 0x0e, 0x0a, 0x71,
1697 0x00, 0x9c, 0x7b, 0xb0, 0xc6, 0x8f, 0x1d, 0x44
1698 } },
1699 {{
1700 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1701 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00
1702 }, {
1703 0x9c, 0xfa, 0x13, 0x22, 0xea, 0x33, 0xda, 0x21,
1704 0x73, 0xa0, 0x24, 0xf2, 0xff, 0x0d, 0x89, 0x6d
1705 } },
1706 {{
1707 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1708 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00
1709 }, {
1710 0x87, 0x85, 0xb1, 0xa7, 0x5b, 0x0f, 0x3b, 0xd9,
1711 0x58, 0xdc, 0xd0, 0xe2, 0x93, 0x18, 0xc5, 0x21
1712 } },
1713 {{
1714 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1715 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00
1716 }, {
1717 0x38, 0xf6, 0x7b, 0x9e, 0x98, 0xe4, 0xa9, 0x7b,
1718 0x6d, 0xf0, 0x30, 0xa9, 0xfc, 0xdd, 0x01, 0x04
1719 } },
1720 {{
1721 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1722 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00
1723 }, {
1724 0x19, 0x2a, 0xff, 0xfb, 0x2c, 0x88, 0x0e, 0x82,
1725 0xb0, 0x59, 0x26, 0xd0, 0xfc, 0x6c, 0x44, 0x8b
1726 } },
1727 {{
1728 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1729 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00
1730 }, {
1731 0x6a, 0x79, 0x80, 0xce, 0x7b, 0x10, 0x5c, 0xf5,
1732 0x30, 0x95, 0x2d, 0x74, 0xda, 0xaf, 0x79, 0x8c
1733 } },
1734 {{
1735 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1736 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
1737 }, {
1738 0xea, 0x36, 0x95, 0xe1, 0x35, 0x1b, 0x9d, 0x68,
1739 0x58, 0xbd, 0x95, 0x8c, 0xf5, 0x13, 0xef, 0x6c
1740 } },
1741 {{
1742 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1743 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00
1744 }, {
1745 0x6d, 0xa0, 0x49, 0x0b, 0xa0, 0xba, 0x03, 0x43,
1746 0xb9, 0x35, 0x68, 0x1d, 0x2c, 0xce, 0x5b, 0xa1
1747 } },
1748 {{
1749 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1750 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00
1751 }, {
1752 0xf0, 0xea, 0x23, 0xaf, 0x08, 0x53, 0x40, 0x11,
1753 0xc6, 0x00, 0x09, 0xab, 0x29, 0xad, 0xa2, 0xf1
1754 } },
1755 {{
1756 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1757 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00
1758 }, {
1759 0xff, 0x13, 0x80, 0x6c, 0xf1, 0x9c, 0xc3, 0x87,
1760 0x21, 0x55, 0x4d, 0x7c, 0x0f, 0xcd, 0xcd, 0x4b
1761 } },
1762 {{
1763 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1764 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00
1765 }, {
1766 0x68, 0x38, 0xaf, 0x1f, 0x4f, 0x69, 0xba, 0xe9,
1767 0xd8, 0x5d, 0xd1, 0x88, 0xdc, 0xdf, 0x06, 0x88
1768 } },
1769 {{
1770 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1771 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00
1772 }, {
1773 0x36, 0xcf, 0x44, 0xc9, 0x2d, 0x55, 0x0b, 0xfb,
1774 0x1e, 0xd2, 0x8e, 0xf5, 0x83, 0xdd, 0xf5, 0xd7
1775 } },
1776 {{
1777 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1778 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00
1779 }, {
1780 0xd0, 0x6e, 0x31, 0x95, 0xb5, 0x37, 0x6f, 0x10,
1781 0x9d, 0x5c, 0x4e, 0xc6, 0xc5, 0xd6, 0x2c, 0xed
1782 } },
1783 {{
1784 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1785 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00
1786 }, {
1787 0xc4, 0x40, 0xde, 0x01, 0x4d, 0x3d, 0x61, 0x07,
1788 0x07, 0x27, 0x9b, 0x13, 0x24, 0x2a, 0x5c, 0x36
1789 } },
1790 {{
1791 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1792 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00
1793 }, {
1794 0xf0, 0xc5, 0xc6, 0xff, 0xa5, 0xe0, 0xbd, 0x3a,
1795 0x94, 0xc8, 0x8f, 0x6b, 0x6f, 0x7c, 0x16, 0xb9
1796 } },
1797 {{
1798 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1799 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00
1800 }, {
1801 0x3e, 0x40, 0xc3, 0x90, 0x1c, 0xd7, 0xef, 0xfc,
1802 0x22, 0xbf, 0xfc, 0x35, 0xde, 0xe0, 0xb4, 0xd9
1803 } },
1804 {{
1805 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1806 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00
1807 }, {
1808 0xb6, 0x33, 0x05, 0xc7, 0x2b, 0xed, 0xfa, 0xb9,
1809 0x73, 0x82, 0xc4, 0x06, 0xd0, 0xc4, 0x9b, 0xc6
1810 } },
1811 {{
1812 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1813 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00
1814 }, {
1815 0x36, 0xbb, 0xaa, 0xb2, 0x2a, 0x6b, 0xd4, 0x92,
1816 0x5a, 0x99, 0xa2, 0xb4, 0x08, 0xd2, 0xdb, 0xae
1817 } },
1818 {{
1819 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1820 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00
1821 }, {
1822 0x30, 0x7c, 0x5b, 0x8f, 0xcd, 0x05, 0x33, 0xab,
1823 0x98, 0xbc, 0x51, 0xe2, 0x7a, 0x6c, 0xe4, 0x61
1824 } },
1825 {{
1826 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1827 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00
1828 }, {
1829 0x82, 0x9c, 0x04, 0xff, 0x4c, 0x07, 0x51, 0x3c,
1830 0x0b, 0x3e, 0xf0, 0x5c, 0x03, 0xe3, 0x37, 0xb5
1831 } },
1832 {{
1833 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1834 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00
1835 }, {
1836 0xf1, 0x7a, 0xf0, 0xe8, 0x95, 0xdd, 0xa5, 0xeb,
1837 0x98, 0xef, 0xc6, 0x80, 0x66, 0xe8, 0x4c, 0x54
1838 } },
1839 {{
1840 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1841 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00
1842 }, {
1843 0x27, 0x71, 0x67, 0xf3, 0x81, 0x2a, 0xff, 0xf1,
1844 0xff, 0xac, 0xb4, 0xa9, 0x34, 0x37, 0x9f, 0xc3
1845 } },
1846 {{
1847 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1848 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00
1849 }, {
1850 0x2c, 0xb1, 0xdc, 0x3a, 0x9c, 0x72, 0x97, 0x2e,
1851 0x42, 0x5a, 0xe2, 0xef, 0x3e, 0xb5, 0x97, 0xcd
1852 } },
1853 {{
1854 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1855 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00
1856 }, {
1857 0x36, 0xae, 0xaa, 0x3a, 0x21, 0x3e, 0x96, 0x8d,
1858 0x4b, 0x5b, 0x67, 0x9d, 0x3a, 0x2c, 0x97, 0xfe
1859 } },
1860 {{
1861 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1862 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00
1863 }, {
1864 0x92, 0x41, 0xda, 0xca, 0x4f, 0xdd, 0x03, 0x4a,
1865 0x82, 0x37, 0x2d, 0xb5, 0x0e, 0x1a, 0x0f, 0x3f
1866 } },
1867 {{
1868 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1869 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00
1870 }, {
1871 0xc1, 0x45, 0x74, 0xd9, 0xcd, 0x00, 0xcf, 0x2b,
1872 0x5a, 0x7f, 0x77, 0xe5, 0x3c, 0xd5, 0x78, 0x85
1873 } },
1874 {{
1875 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1876 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00
1877 }, {
1878 0x79, 0x3d, 0xe3, 0x92, 0x36, 0x57, 0x0a, 0xba,
1879 0x83, 0xab, 0x9b, 0x73, 0x7c, 0xb5, 0x21, 0xc9
1880 } },
1881 {{
1882 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1883 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00
1884 }, {
1885 0x16, 0x59, 0x1c, 0x0f, 0x27, 0xd6, 0x0e, 0x29,
1886 0xb8, 0x5a, 0x96, 0xc3, 0x38, 0x61, 0xa7, 0xef
1887 } },
1888 {{
1889 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1890 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00
1891 }, {
1892 0x44, 0xfb, 0x5c, 0x4d, 0x4f, 0x5c, 0xb7, 0x9b,
1893 0xe5, 0xc1, 0x74, 0xa3, 0xb1, 0xc9, 0x73, 0x48
1894 } },
1895 {{
1896 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1897 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00
1898 }, {
1899 0x67, 0x4d, 0x2b, 0x61, 0x63, 0x3d, 0x16, 0x2b,
1900 0xe5, 0x9d, 0xde, 0x04, 0x22, 0x2f, 0x47, 0x40
1901 } },
1902 {{
1903 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1904 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00
1905 }, {
1906 0xb4, 0x75, 0x0f, 0xf2, 0x63, 0xa6, 0x5e, 0x1f,
1907 0x9e, 0x92, 0x4c, 0xcf, 0xd9, 0x8f, 0x3e, 0x37
1908 } },
1909 {{
1910 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1911 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00
1912 }, {
1913 0x62, 0xd0, 0x66, 0x2d, 0x6e, 0xae, 0xdd, 0xed,
1914 0xeb, 0xae, 0x7f, 0x7e, 0xa3, 0xa4, 0xf6, 0xb6
1915 } },
1916 {{
1917 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1918 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00
1919 }, {
1920 0x70, 0xc4, 0x6b, 0xb3, 0x06, 0x92, 0xbe, 0x65,
1921 0x7f, 0x7e, 0xaa, 0x93, 0xeb, 0xad, 0x98, 0x97
1922 } },
1923 {{
1924 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1925 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00
1926 }, {
1927 0x32, 0x39, 0x94, 0xcf, 0xb9, 0xda, 0x28, 0x5a,
1928 0x5d, 0x96, 0x42, 0xe1, 0x75, 0x9b, 0x22, 0x4a
1929 } },
1930 {{
1931 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1932 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00
1933 }, {
1934 0x1d, 0xbf, 0x57, 0x87, 0x7b, 0x7b, 0x17, 0x38,
1935 0x5c, 0x85, 0xd0, 0xb5, 0x48, 0x51, 0xe3, 0x71
1936 } },
1937 {{
1938 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1939 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00
1940 }, {
1941 0xdf, 0xa5, 0xc0, 0x97, 0xcd, 0xc1, 0x53, 0x2a,
1942 0xc0, 0x71, 0xd5, 0x7b, 0x1d, 0x28, 0xd1, 0xbd
1943 } },
1944 {{
1945 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1946 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00
1947 }, {
1948 0x3a, 0x0c, 0x53, 0xfa, 0x37, 0x31, 0x1f, 0xc1,
1949 0x0b, 0xd2, 0xa9, 0x98, 0x1f, 0x51, 0x31, 0x74
1950 } },
1951 {{
1952 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1953 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00
1954 }, {
1955 0xba, 0x4f, 0x97, 0x0c, 0x0a, 0x25, 0xc4, 0x18,
1956 0x14, 0xbd, 0xae, 0x2e, 0x50, 0x6b, 0xe3, 0xb4
1957 } },
1958 {{
1959 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1960 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00
1961 }, {
1962 0x2d, 0xce, 0x3a, 0xcb, 0x72, 0x7c, 0xd1, 0x3c,
1963 0xcd, 0x76, 0xd4, 0x25, 0xea, 0x56, 0xe4, 0xf6
1964 } },
1965 {{
1966 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1967 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80
1968 }, {
1969 0x51, 0x60, 0x47, 0x4d, 0x50, 0x4b, 0x9b, 0x3e,
1970 0xef, 0xb6, 0x8d, 0x35, 0xf2, 0x45, 0xf4, 0xb3
1971 } },
1972 {{
1973 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1974 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
1975 }, {
1976 0x41, 0xa8, 0xa9, 0x47, 0x76, 0x66, 0x35, 0xde,
1977 0xc3, 0x75, 0x53, 0xd9, 0xa6, 0xc0, 0xcb, 0xb7
1978 } },
1979 {{
1980 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1981 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0
1982 }, {
1983 0x25, 0xd6, 0xcf, 0xe6, 0x88, 0x1f, 0x2b, 0xf4,
1984 0x97, 0xdd, 0x14, 0xcd, 0x4d, 0xdf, 0x44, 0x5b
1985 } },
1986 {{
1987 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1988 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0
1989 }, {
1990 0x41, 0xc7, 0x8c, 0x13, 0x5e, 0xd9, 0xe9, 0x8c,
1991 0x09, 0x66, 0x40, 0x64, 0x72, 0x65, 0xda, 0x1e
1992 } },
1993 {{
1994 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1995 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8
1996 }, {
1997 0x5a, 0x4d, 0x40, 0x4d, 0x89, 0x17, 0xe3, 0x53,
1998 0xe9, 0x2a, 0x21, 0x07, 0x2c, 0x3b, 0x23, 0x05
1999 } },
2000 {{
2001 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2002 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc
2003 }, {
2004 0x02, 0xbc, 0x96, 0x84, 0x6b, 0x3f, 0xdc, 0x71,
2005 0x64, 0x3f, 0x38, 0x4c, 0xd3, 0xcc, 0x3e, 0xaf
2006 } },
2007 {{
2008 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2009 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe
2010 }, {
2011 0x9b, 0xa4, 0xa9, 0x14, 0x3f, 0x4e, 0x5d, 0x40,
2012 0x48, 0x52, 0x1c, 0x4f, 0x88, 0x77, 0xd8, 0x8e
2013 } },
2014 {{
2015 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2016 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
2017 }, {
2018 0xa1, 0xf6, 0x25, 0x8c, 0x87, 0x7d, 0x5f, 0xcd,
2019 0x89, 0x64, 0x48, 0x45, 0x38, 0xbf, 0xc9, 0x2c
2020 } }
2021 };
Fabio Utzig3efe6b62017-09-22 16:03:24 -03002022 unsigned int i;
David Brownfecda2d2017-09-07 10:20:34 -06002023
2024 TC_PRINT("AES128 test #4 (NIST variable-key and fixed-text):\n");
2025
2026 for (i = 0; i < NUM_OF_FIXED_KEYS; ++i) {
2027 result = var_key_test(i, kat_tbl[i].in, kat_tbl[i].out);
2028 if (result == TC_FAIL) {
2029 break;
2030 }
2031
2032 }
2033
2034 TC_END_RESULT(result);
2035
2036 return result;
2037}
2038
2039/*
2040 * Main task to test AES
2041 */
2042int main(void)
2043{
2044 int result = TC_PASS;
2045
2046 TC_START("Performing AES128 tests:");
2047
2048 result = test_1();
2049 if (result == TC_FAIL) { /* terminate test */
2050 TC_ERROR("AES128 test #1 (NIST key schedule test) failed.\n");
2051 goto exitTest;
2052 }
2053 result = test_2();
2054 if (result == TC_FAIL) { /* terminate test */
2055 TC_ERROR("AES128 test #2 (NIST encryption test) failed.\n");
2056 goto exitTest;
2057 }
2058 result = test_3();
2059 if (result == TC_FAIL) { /* terminate test */
2060 TC_ERROR("AES128 test #3 (NIST fixed-key and variable-text) "
2061 "failed.\n");
2062 goto exitTest;
2063 }
2064 result = test_4();
2065 if (result == TC_FAIL) { /* terminate test */
2066 TC_ERROR("AES128 test #4 (NIST variable-key and fixed-text) "
2067 "failed.\n");
2068 goto exitTest;
2069 }
2070
2071 TC_PRINT("All AES128 tests succeeded!\n");
2072
2073 exitTest:
2074 TC_END_RESULT(result);
2075 TC_END_REPORT(result);
2076
2077 return result;
2078}