4 * Copyright(c) 2015 Intel Corporation. All rights reserved.
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
16 * * Neither the name of Intel Corporation nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 #ifndef TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_
34 #define TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_
36 struct snow3g_test_data {
43 uint8_t data[64] __rte_aligned(16);
49 unsigned len; /* length must be in Bits */
54 unsigned len; /* length must be in Bits */
63 } validCipherLenInBits;
67 } validCipherOffsetLenInBits;
75 } validAuthOffsetLenInBits;
87 struct snow3g_test_data snow3g_test_case_1 = {
90 0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
91 0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
97 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
98 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
104 0x7E, 0xC6, 0x12, 0x72, 0x74, 0x3B, 0xF1, 0x61,
105 0x47, 0x26, 0x44, 0x6A, 0x6C, 0x38, 0xCE, 0xD1,
106 0x66, 0xF6, 0xCA, 0x76, 0xEB, 0x54, 0x30, 0x04,
107 0x42, 0x86, 0x34, 0x6C, 0xEF, 0x13, 0x0F, 0x92,
108 0x92, 0x2B, 0x03, 0x45, 0x0D, 0x3A, 0x99, 0x75,
109 0xE5, 0xBD, 0x2E, 0xA0, 0xEB, 0x55, 0xAD, 0x8E,
110 0x1B, 0x19, 0x9E, 0x3E, 0xC4, 0x31, 0x60, 0x20,
111 0xE9, 0xA1, 0xB2, 0x85, 0xE7, 0x62, 0x79, 0x53,
112 0x59, 0xB7, 0xBD, 0xFD, 0x39, 0xBE, 0xF4, 0xB2,
113 0x48, 0x45, 0x83, 0xD5, 0xAF, 0xE0, 0x82, 0xAE,
114 0xE6, 0x38, 0xBF, 0x5F, 0xD5, 0xA6, 0x06, 0x19,
115 0x39, 0x01, 0xA0, 0x8F, 0x4A, 0xB4, 0x1A, 0xAB,
116 0x9B, 0x13, 0x48, 0x80
122 0x8C, 0xEB, 0xA6, 0x29, 0x43, 0xDC, 0xED, 0x3A,
123 0x09, 0x90, 0xB0, 0x6E, 0xA1, 0xB0, 0xA2, 0xC4,
124 0xFB, 0x3C, 0xED, 0xC7, 0x1B, 0x36, 0x9F, 0x42,
125 0xBA, 0x64, 0xC1, 0xEB, 0x66, 0x65, 0xE7, 0x2A,
126 0xA1, 0xC9, 0xBB, 0x0D, 0xEA, 0xA2, 0x0F, 0xE8,
127 0x60, 0x58, 0xB8, 0xBA, 0xEE, 0x2C, 0x2E, 0x7F,
128 0x0B, 0xEC, 0xCE, 0x48, 0xB5, 0x29, 0x32, 0xA5,
129 0x3C, 0x9D, 0x5F, 0x93, 0x1A, 0x3A, 0x7C, 0x53,
130 0x22, 0x59, 0xAF, 0x43, 0x25, 0xE2, 0xA6, 0x5E,
131 0x30, 0x84, 0xAD, 0x5F, 0x6A, 0x51, 0x3B, 0x7B,
132 0xDD, 0xC1, 0xB6, 0x5F, 0x0A, 0xA0, 0xD9, 0x7A,
133 0x05, 0x3D, 0xB5, 0x5A, 0x88, 0xC4, 0xC4, 0xF9,
134 0x60, 0x5E, 0x41, 0x40
138 .validDataLenInBits = {
141 .validCipherLenInBits = {
144 .validCipherOffsetLenInBits = {
149 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
150 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
156 struct snow3g_test_data snow3g_test_case_2 = {
159 0xEF, 0xA8, 0xB2, 0x22, 0x9E, 0x72, 0x0C, 0x2A,
160 0x7C, 0x36, 0xEA, 0x55, 0xE9, 0x60, 0x56, 0x95
166 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
167 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
173 0x10, 0x11, 0x12, 0x31, 0xE0, 0x60, 0x25, 0x3A,
174 0x43, 0xFD, 0x3F, 0x57, 0xE3, 0x76, 0x07, 0xAB,
175 0x28, 0x27, 0xB5, 0x99, 0xB6, 0xB1, 0xBB, 0xDA,
176 0x37, 0xA8, 0xAB, 0xCC, 0x5A, 0x8C, 0x55, 0x0D,
177 0x1B, 0xFB, 0x2F, 0x49, 0x46, 0x24, 0xFB, 0x50,
178 0x36, 0x7F, 0xA3, 0x6C, 0xE3, 0xBC, 0x68, 0xF1,
179 0x1C, 0xF9, 0x3B, 0x15, 0x10, 0x37, 0x6B, 0x02,
180 0x13, 0x0F, 0x81, 0x2A, 0x9F, 0xA1, 0x69, 0xD8
186 0xE0, 0xDA, 0x15, 0xCA, 0x8E, 0x25, 0x54, 0xF5,
187 0xE5, 0x6C, 0x94, 0x68, 0xDC, 0x6C, 0x7C, 0x12,
188 0x9C, 0x56, 0x8A, 0xA5, 0x03, 0x23, 0x17, 0xE0,
189 0x4E, 0x07, 0x29, 0x64, 0x6C, 0xAB, 0xEF, 0xA6,
190 0x89, 0x86, 0x4C, 0x41, 0x0F, 0x24, 0xF9, 0x19,
191 0xE6, 0x1E, 0x3D, 0xFD, 0xFA, 0xD7, 0x7E, 0x56,
192 0x0D, 0xB0, 0xA9, 0xCD, 0x36, 0xC3, 0x4A, 0xE4,
193 0x18, 0x14, 0x90, 0xB2, 0x9F, 0x5F, 0xA2, 0xFC
197 .validDataLenInBits = {
200 .validCipherLenInBits = {
203 .validCipherOffsetLenInBits = {
208 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
209 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
215 struct snow3g_test_data snow3g_test_case_3 = {
218 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
219 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
225 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
226 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
232 0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
233 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8
239 0xBA, 0x0F, 0x31, 0x30, 0x03, 0x34, 0xC5, 0x6B,
240 0x52, 0xA7, 0x49, 0x7C, 0xBA, 0xC0, 0x46
244 .validDataLenInBits = {
247 .validCipherLenInBits = {
250 .validCipherOffsetLenInBits = {
255 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
256 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
261 .data = {0xE8, 0x60, 0x5A, 0x3E},
264 .validAuthLenInBits = {
267 .validAuthOffsetLenInBits = {
272 struct snow3g_test_data snow3g_test_case_4 = {
275 0xD3, 0xC5, 0xD5, 0x92, 0x32, 0x7F, 0xB1, 0x1C,
276 0x40, 0x35, 0xC6, 0x68, 0x0A, 0xF8, 0xC6, 0xD1
282 0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00,
283 0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00
289 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB, 0x1A,
290 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D, 0x80,
291 0x8C, 0xE3, 0x3E, 0x2C, 0xC3, 0xC0, 0xB5, 0xFC,
292 0x1F, 0x3D, 0xE8, 0xA6, 0xDC, 0x66, 0xB1, 0xF0
298 0x98, 0x9B, 0x71, 0x9C, 0xDC, 0x33, 0xCE, 0xB7,
299 0xCF, 0x27, 0x6A, 0x52, 0x82, 0x7C, 0xEF, 0x94,
300 0xA5, 0x6C, 0x40, 0xC0, 0xAB, 0x9D, 0x81, 0xF7,
301 0xA2, 0xA9, 0xBA, 0xC6, 0x0E, 0x11, 0xC4, 0xB0
305 .validDataLenInBits = {
308 .validCipherLenInBits = {
311 .validCipherOffsetLenInBits = {
316 struct snow3g_test_data snow3g_test_case_5 = {
319 0x60, 0x90, 0xEA, 0xE0, 0x4C, 0x83, 0x70, 0x6E,
320 0xEC, 0xBF, 0x65, 0x2B, 0xE8, 0xE3, 0x65, 0x66
326 0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00,
327 0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
332 0x40, 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB,
333 0x42, 0x86, 0xB2, 0x99, 0x78, 0x3D, 0xAF, 0x44,
334 0x2C, 0x09, 0x9F, 0x7A, 0xB0, 0xF5, 0x8D, 0x5C,
335 0x8E, 0x46, 0xB1, 0x04, 0xF0, 0x8F, 0x01, 0xB4,
336 0x1A, 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D,
337 0x36, 0xBD, 0x1A, 0x3D, 0x90, 0xDC, 0x3A, 0x41,
338 0xB4, 0x6D, 0x51, 0x67, 0x2A, 0xC4, 0xC9, 0x66,
339 0x3A, 0x2B, 0xE0, 0x63, 0xDA, 0x4B, 0xC8, 0xD2,
340 0x80, 0x8C, 0xE3, 0x3E, 0x2C, 0xCC, 0xBF, 0xC6,
341 0x34, 0xE1, 0xB2, 0x59, 0x06, 0x08, 0x76, 0xA0,
342 0xFB, 0xB5, 0xA4, 0x37, 0xEB, 0xCC, 0x8D, 0x31,
343 0xC1, 0x9E, 0x44, 0x54, 0x31, 0x87, 0x45, 0xE3,
344 0x98, 0x76, 0x45, 0x98, 0x7A, 0x98, 0x6F, 0x2C,
351 0x58, 0x92, 0xBB, 0xA8, 0x8B, 0xBB, 0xCA, 0xAE,
352 0xAE, 0x76, 0x9A, 0xA0, 0x6B, 0x68, 0x3D, 0x3A,
353 0x17, 0xCC, 0x04, 0xA3, 0x69, 0x88, 0x16, 0x97,
354 0x43, 0x5E, 0x44, 0xFE, 0xD5, 0xFF, 0x9A, 0xF5,
355 0x7B, 0x9E, 0x89, 0x0D, 0x4D, 0x5C, 0x64, 0x70,
356 0x98, 0x85, 0xD4, 0x8A, 0xE4, 0x06, 0x90, 0xEC,
357 0x04, 0x3B, 0xAA, 0xE9, 0x70, 0x57, 0x96, 0xE4,
358 0xA9, 0xFF, 0x5A, 0x4B, 0x8D, 0x8B, 0x36, 0xD7,
359 0xF3, 0xFE, 0x57, 0xCC, 0x6C, 0xFD, 0x6C, 0xD0,
360 0x05, 0xCD, 0x38, 0x52, 0xA8, 0x5E, 0x94, 0xCE,
361 0x6B, 0xCD, 0x90, 0xD0, 0xD0, 0x78, 0x39, 0xCE,
362 0x09, 0x73, 0x35, 0x44, 0xCA, 0x8E, 0x35, 0x08,
363 0x43, 0x24, 0x85, 0x50, 0x92, 0x2A, 0xC1, 0x28,
368 .validDataLenInBits = {
371 .validCipherLenInBits = {
374 .validCipherOffsetLenInBits = {
378 struct snow3g_test_data snow3g_test_case_6 = {
381 0xC7, 0x36, 0xC6, 0xAA, 0xB2, 0x2B, 0xFF, 0xF9,
382 0x1E, 0x26, 0x98, 0xD2, 0xE2, 0x2A, 0xD5, 0x7E
388 0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
389 0x94, 0x79, 0x3E, 0x41, 0x03, 0x97, 0x68, 0xFD
395 0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
396 0x94, 0x79, 0x3E, 0x41, 0x03, 0x97, 0x68, 0xFD
402 0xD0, 0xA7, 0xD4, 0x63, 0xDF, 0x9F, 0xB2, 0xB2,
403 0x78, 0x83, 0x3F, 0xA0, 0x2E, 0x23, 0x5A, 0xA1,
404 0x72, 0xBD, 0x97, 0x0C, 0x14, 0x73, 0xE1, 0x29,
405 0x07, 0xFB, 0x64, 0x8B, 0x65, 0x99, 0xAA, 0xA0,
406 0xB2, 0x4A, 0x03, 0x86, 0x65, 0x42, 0x2B, 0x20,
407 0xA4, 0x99, 0x27, 0x6A, 0x50, 0x42, 0x70, 0x09
413 0x95, 0x2E, 0x5A, 0xE1, 0x50, 0xB8, 0x59, 0x2A,
414 0x9B, 0xA0, 0x38, 0xA9, 0x8E, 0x2F, 0xED, 0xAB,
415 0xFD, 0xC8, 0x3B, 0x47, 0x46, 0x0B, 0x50, 0x16,
416 0xEC, 0x88, 0x45, 0xB6, 0x05, 0xC7, 0x54, 0xF8,
417 0xBD, 0x91, 0xAA, 0xB6, 0xA4, 0xDC, 0x64, 0xB4,
418 0xCB, 0xEB, 0x97, 0x06, 0x4C, 0xF7, 0x02, 0x3D
423 .data = {0x38, 0xB5, 0x54, 0xC0 },
426 .validDataLenInBits = {
429 .validCipherLenInBits = {
432 .validCipherOffsetLenInBits = {
435 .validAuthLenInBits = {
438 .validAuthOffsetLenInBits = {
443 #endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */