1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2015-2017 Intel Corporation
5 #ifndef TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_
8 struct snow3g_test_data {
15 uint8_t data[64] __rte_aligned(16);
21 unsigned len; /* length must be in Bits */
26 unsigned len; /* length must be in Bits */
35 } validCipherLenInBits;
48 unsigned int len; /* length must be in Bytes */
49 unsigned int offset_bytes; /* offset must be in Bytes */
53 unsigned int len_bits; /* length must be in Bits */
54 unsigned int offset_bits;
58 unsigned int len_bits; /* length must be in Bits */
59 unsigned int offset_bits;
62 struct snow3g_test_data snow3g_test_case_1 = {
65 0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
66 0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
72 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
73 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
79 0x7E, 0xC6, 0x12, 0x72, 0x74, 0x3B, 0xF1, 0x61,
80 0x47, 0x26, 0x44, 0x6A, 0x6C, 0x38, 0xCE, 0xD1,
81 0x66, 0xF6, 0xCA, 0x76, 0xEB, 0x54, 0x30, 0x04,
82 0x42, 0x86, 0x34, 0x6C, 0xEF, 0x13, 0x0F, 0x92,
83 0x92, 0x2B, 0x03, 0x45, 0x0D, 0x3A, 0x99, 0x75,
84 0xE5, 0xBD, 0x2E, 0xA0, 0xEB, 0x55, 0xAD, 0x8E,
85 0x1B, 0x19, 0x9E, 0x3E, 0xC4, 0x31, 0x60, 0x20,
86 0xE9, 0xA1, 0xB2, 0x85, 0xE7, 0x62, 0x79, 0x53,
87 0x59, 0xB7, 0xBD, 0xFD, 0x39, 0xBE, 0xF4, 0xB2,
88 0x48, 0x45, 0x83, 0xD5, 0xAF, 0xE0, 0x82, 0xAE,
89 0xE6, 0x38, 0xBF, 0x5F, 0xD5, 0xA6, 0x06, 0x19,
90 0x39, 0x01, 0xA0, 0x8F, 0x4A, 0xB4, 0x1A, 0xAB,
91 0x9B, 0x13, 0x48, 0x80
97 0x8C, 0xEB, 0xA6, 0x29, 0x43, 0xDC, 0xED, 0x3A,
98 0x09, 0x90, 0xB0, 0x6E, 0xA1, 0xB0, 0xA2, 0xC4,
99 0xFB, 0x3C, 0xED, 0xC7, 0x1B, 0x36, 0x9F, 0x42,
100 0xBA, 0x64, 0xC1, 0xEB, 0x66, 0x65, 0xE7, 0x2A,
101 0xA1, 0xC9, 0xBB, 0x0D, 0xEA, 0xA2, 0x0F, 0xE8,
102 0x60, 0x58, 0xB8, 0xBA, 0xEE, 0x2C, 0x2E, 0x7F,
103 0x0B, 0xEC, 0xCE, 0x48, 0xB5, 0x29, 0x32, 0xA5,
104 0x3C, 0x9D, 0x5F, 0x93, 0x1A, 0x3A, 0x7C, 0x53,
105 0x22, 0x59, 0xAF, 0x43, 0x25, 0xE2, 0xA6, 0x5E,
106 0x30, 0x84, 0xAD, 0x5F, 0x6A, 0x51, 0x3B, 0x7B,
107 0xDD, 0xC1, 0xB6, 0x5F, 0x0A, 0xA0, 0xD9, 0x7A,
108 0x05, 0x3D, 0xB5, 0x5A, 0x88, 0xC4, 0xC4, 0xF9,
109 0x60, 0x5E, 0x41, 0x40
116 .validDataLenInBits = {
119 .validCipherLenInBits = {
124 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
125 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
131 struct snow3g_test_data snow3g_test_case_2 = {
134 0xEF, 0xA8, 0xB2, 0x22, 0x9E, 0x72, 0x0C, 0x2A,
135 0x7C, 0x36, 0xEA, 0x55, 0xE9, 0x60, 0x56, 0x95
141 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
142 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
148 0x10, 0x11, 0x12, 0x31, 0xE0, 0x60, 0x25, 0x3A,
149 0x43, 0xFD, 0x3F, 0x57, 0xE3, 0x76, 0x07, 0xAB,
150 0x28, 0x27, 0xB5, 0x99, 0xB6, 0xB1, 0xBB, 0xDA,
151 0x37, 0xA8, 0xAB, 0xCC, 0x5A, 0x8C, 0x55, 0x0D,
152 0x1B, 0xFB, 0x2F, 0x49, 0x46, 0x24, 0xFB, 0x50,
153 0x36, 0x7F, 0xA3, 0x6C, 0xE3, 0xBC, 0x68, 0xF1,
154 0x1C, 0xF9, 0x3B, 0x15, 0x10, 0x37, 0x6B, 0x02,
155 0x13, 0x0F, 0x81, 0x2A, 0x9F, 0xA1, 0x69, 0xD8
161 0xE0, 0xDA, 0x15, 0xCA, 0x8E, 0x25, 0x54, 0xF5,
162 0xE5, 0x6C, 0x94, 0x68, 0xDC, 0x6C, 0x7C, 0x12,
163 0x9C, 0x56, 0x8A, 0xA5, 0x03, 0x23, 0x17, 0xE0,
164 0x4E, 0x07, 0x29, 0x64, 0x6C, 0xAB, 0xEF, 0xA6,
165 0x89, 0x86, 0x4C, 0x41, 0x0F, 0x24, 0xF9, 0x19,
166 0xE6, 0x1E, 0x3D, 0xFD, 0xFA, 0xD7, 0x7E, 0x56,
167 0x0D, 0xB0, 0xA9, 0xCD, 0x36, 0xC3, 0x4A, 0xE4,
168 0x18, 0x14, 0x90, 0xB2, 0x9F, 0x5F, 0xA2, 0xFC
175 .validDataLenInBits = {
178 .validCipherLenInBits = {
183 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
184 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
190 struct snow3g_test_data snow3g_test_case_3 = {
193 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
194 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
200 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
201 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
207 0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
208 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8
214 0xBA, 0x0F, 0x31, 0x30, 0x03, 0x34, 0xC5, 0x6B,
215 0x52, 0xA7, 0x49, 0x7C, 0xBA, 0xC0, 0x46
222 .validDataLenInBits = {
225 .validCipherLenInBits = {
230 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
231 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
236 .data = {0xE8, 0x60, 0x5A, 0x3E},
239 .validAuthLenInBits = {
244 struct snow3g_test_data snow3g_test_case_4 = {
247 0xD3, 0xC5, 0xD5, 0x92, 0x32, 0x7F, 0xB1, 0x1C,
248 0x40, 0x35, 0xC6, 0x68, 0x0A, 0xF8, 0xC6, 0xD1
254 0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00,
255 0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00
261 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB, 0x1A,
262 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D, 0x80,
263 0x8C, 0xE3, 0x3E, 0x2C, 0xC3, 0xC0, 0xB5, 0xFC,
264 0x1F, 0x3D, 0xE8, 0xA6, 0xDC, 0x66, 0xB1, 0xF0
270 0x98, 0x9B, 0x71, 0x9C, 0xDC, 0x33, 0xCE, 0xB7,
271 0xCF, 0x27, 0x6A, 0x52, 0x82, 0x7C, 0xEF, 0x94,
272 0xA5, 0x6C, 0x40, 0xC0, 0xAB, 0x9D, 0x81, 0xF7,
273 0xA2, 0xA9, 0xBA, 0xC6, 0x0E, 0x11, 0xC4, 0xB0
280 .validDataLenInBits = {
283 .validCipherLenInBits = {
288 struct snow3g_test_data snow3g_test_case_5 = {
291 0x60, 0x90, 0xEA, 0xE0, 0x4C, 0x83, 0x70, 0x6E,
292 0xEC, 0xBF, 0x65, 0x2B, 0xE8, 0xE3, 0x65, 0x66
298 0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00,
299 0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
304 0x40, 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB,
305 0x42, 0x86, 0xB2, 0x99, 0x78, 0x3D, 0xAF, 0x44,
306 0x2C, 0x09, 0x9F, 0x7A, 0xB0, 0xF5, 0x8D, 0x5C,
307 0x8E, 0x46, 0xB1, 0x04, 0xF0, 0x8F, 0x01, 0xB4,
308 0x1A, 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D,
309 0x36, 0xBD, 0x1A, 0x3D, 0x90, 0xDC, 0x3A, 0x41,
310 0xB4, 0x6D, 0x51, 0x67, 0x2A, 0xC4, 0xC9, 0x66,
311 0x3A, 0x2B, 0xE0, 0x63, 0xDA, 0x4B, 0xC8, 0xD2,
312 0x80, 0x8C, 0xE3, 0x3E, 0x2C, 0xCC, 0xBF, 0xC6,
313 0x34, 0xE1, 0xB2, 0x59, 0x06, 0x08, 0x76, 0xA0,
314 0xFB, 0xB5, 0xA4, 0x37, 0xEB, 0xCC, 0x8D, 0x31,
315 0xC1, 0x9E, 0x44, 0x54, 0x31, 0x87, 0x45, 0xE3,
316 0x98, 0x76, 0x45, 0x98, 0x7A, 0x98, 0x6F, 0x2C,
323 0x58, 0x92, 0xBB, 0xA8, 0x8B, 0xBB, 0xCA, 0xAE,
324 0xAE, 0x76, 0x9A, 0xA0, 0x6B, 0x68, 0x3D, 0x3A,
325 0x17, 0xCC, 0x04, 0xA3, 0x69, 0x88, 0x16, 0x97,
326 0x43, 0x5E, 0x44, 0xFE, 0xD5, 0xFF, 0x9A, 0xF5,
327 0x7B, 0x9E, 0x89, 0x0D, 0x4D, 0x5C, 0x64, 0x70,
328 0x98, 0x85, 0xD4, 0x8A, 0xE4, 0x06, 0x90, 0xEC,
329 0x04, 0x3B, 0xAA, 0xE9, 0x70, 0x57, 0x96, 0xE4,
330 0xA9, 0xFF, 0x5A, 0x4B, 0x8D, 0x8B, 0x36, 0xD7,
331 0xF3, 0xFE, 0x57, 0xCC, 0x6C, 0xFD, 0x6C, 0xD0,
332 0x05, 0xCD, 0x38, 0x52, 0xA8, 0x5E, 0x94, 0xCE,
333 0x6B, 0xCD, 0x90, 0xD0, 0xD0, 0x78, 0x39, 0xCE,
334 0x09, 0x73, 0x35, 0x44, 0xCA, 0x8E, 0x35, 0x08,
335 0x43, 0x24, 0x85, 0x50, 0x92, 0x2A, 0xC1, 0x28,
343 .validDataLenInBits = {
346 .validCipherLenInBits = {
350 struct snow3g_test_data snow3g_test_case_6 = {
353 0xC7, 0x36, 0xC6, 0xAA, 0xB2, 0x2B, 0xFF, 0xF9,
354 0x1E, 0x26, 0x98, 0xD2, 0xE2, 0x2A, 0xD5, 0x7E
360 0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
361 0x94, 0x79, 0x3E, 0x41, 0x03, 0x97, 0x68, 0xFD
367 0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
368 0x94, 0x79, 0x3E, 0x41, 0x03, 0x97, 0x68, 0xFD
374 0xD0, 0xA7, 0xD4, 0x63, 0xDF, 0x9F, 0xB2, 0xB2,
375 0x78, 0x83, 0x3F, 0xA0, 0x2E, 0x23, 0x5A, 0xA1,
376 0x72, 0xBD, 0x97, 0x0C, 0x14, 0x73, 0xE1, 0x29,
377 0x07, 0xFB, 0x64, 0x8B, 0x65, 0x99, 0xAA, 0xA0,
378 0xB2, 0x4A, 0x03, 0x86, 0x65, 0x42, 0x2B, 0x20,
379 0xA4, 0x99, 0x27, 0x6A, 0x50, 0x42, 0x70, 0x09
385 0x95, 0x2E, 0x5A, 0xE1, 0x50, 0xB8, 0x59, 0x2A,
386 0x9B, 0xA0, 0x38, 0xA9, 0x8E, 0x2F, 0xED, 0xAB,
387 0xFD, 0xC8, 0x3B, 0x47, 0x46, 0x0B, 0x50, 0x16,
388 0xEC, 0x88, 0x45, 0xB6, 0x05, 0xC7, 0x54, 0xF8,
389 0xBD, 0x91, 0xAA, 0xB6, 0xA4, 0xDC, 0x64, 0xB4,
390 0xCB, 0xEB, 0x97, 0x06, 0x4C, 0xF7, 0x02, 0x3D
403 .data = {0x38, 0xB5, 0x54, 0xC0 },
407 .validDataLenInBits = {
410 .validCipherLenInBits = {
413 .validAuthLenInBits = {
419 struct snow3g_test_data snow3g_test_case_7 = {
422 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
423 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
430 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
431 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
437 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
438 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
444 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
445 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
446 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
447 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
448 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
449 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
450 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
451 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
452 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
453 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
454 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
455 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
456 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
457 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
458 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
459 0x5A, 0x5A, 0x5A, 0x5A, 0xF1, 0x9E, 0x2B, 0x6F,
465 0x5A, 0x5A, 0xE4, 0xAD, 0x29, 0xA2, 0x6A, 0xA6,
466 0x20, 0x1D, 0xCD, 0x08, 0x50, 0xD6, 0xE6, 0x47,
467 0xBC, 0x88, 0x08, 0x01, 0x17, 0xFA, 0x47, 0x5B,
468 0x90, 0x40, 0xBA, 0x0C, 0xB5, 0x58, 0xF3, 0x0C,
469 0xA0, 0xD4, 0x98, 0x83, 0x1B, 0xCE, 0x54, 0xE3,
470 0x29, 0x00, 0x3C, 0xA4, 0xAD, 0x74, 0xEE, 0x05,
471 0xA3, 0x6C, 0xD4, 0xAC, 0xC6, 0x30, 0x33, 0xC9,
472 0x37, 0x57, 0x41, 0x9B, 0xD4, 0x73, 0xB9, 0x77,
473 0x70, 0x8B, 0x63, 0xDD, 0x22, 0xB8, 0xE1, 0x85,
474 0xB2, 0x92, 0x7C, 0x37, 0xD3, 0x2E, 0xD9, 0xF4,
475 0x4A, 0x69, 0x25, 0x30, 0xE3, 0x5B, 0x8B, 0xF6,
476 0x0F, 0xDE, 0x0B, 0x92, 0xD5, 0x25, 0x52, 0x6D,
477 0x26, 0xEB, 0x2F, 0x8A, 0x3B, 0x8B, 0x38, 0xE2,
478 0x48, 0xD3, 0x4A, 0x98, 0xF7, 0x3A, 0xC2, 0x46,
479 0x69, 0x8D, 0x73, 0x3E, 0x57, 0x88, 0x2C, 0x80,
480 0xF0, 0xF2, 0x75, 0xB8, 0x7D, 0x27, 0xC6, 0xDA,
486 .len_bits = 126 << 3,
487 .offset_bits = 2 << 3
490 .len_bits = 124 << 3,
495 0x7D, 0x27, 0xC6, 0xDA
500 .validDataLenInBits = {
503 .validCipherLenInBits = {
506 .validAuthLenInBits = {
511 #endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */