1 /* test_aes.c - TinyCrypt AES-128 tests (including NIST tests) */
2
3 /*
4 * Copyright (C) 2017 by Intel Corporation, All Rights Reserved.
5 *
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
59 struct 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 */
test_1(void)67 int 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 };
74 const struct tc_aes_key_sched_struct expected = {
75 {
76 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
87 }
88 };
89 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
100 result = check_result(1, expected.words, sizeof(expected.words), s.words,
101 sizeof(s.words));
102
103 exitTest1:
104 TC_END_RESULT(result);
105 return result;
106 }
107
108 /*
109 * NIST test vectors for encryption.
110 */
test_2(void)111 int 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
139 result = check_result(2, expected, sizeof(expected), ciphertext,
140 sizeof(ciphertext));
141
142 exitTest2:
143 TC_END_RESULT(result);
144
145 return result;
146 }
147
var_text_test(unsigned int r,const uint8_t * in,const uint8_t * out,TCAesKeySched_t s)148 int var_text_test(unsigned int r, const uint8_t *in, const uint8_t *out,
149 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);
156 result = check_result(r, out, NUM_OF_NIST_KEYS, ciphertext,
157 sizeof(ciphertext));
158 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 */
test_3(void)174 int 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;
1080 unsigned int i;
1081
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
var_key_test(unsigned int r,const uint8_t * in,const uint8_t * out)1098 int var_key_test(unsigned int r, const uint8_t *in, const uint8_t *out)
1099 {
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);
1112 result = check_result(r, out, NUM_OF_NIST_KEYS, ciphertext,
1113 sizeof(ciphertext));
1114
1115 return result;
1116 }
1117
1118 /*
1119 * All NIST tests with variable key and fixed text.
1120 */
test_4(void)1121 int 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 };
2022 unsigned int i;
2023
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 */
main(void)2042 int 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 }
2079