4 * Copyright(c) 2015-2017 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;
79 struct snow3g_test_data snow3g_test_case_1 = {
82 0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
83 0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
89 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
90 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
96 0x7E, 0xC6, 0x12, 0x72, 0x74, 0x3B, 0xF1, 0x61,
97 0x47, 0x26, 0x44, 0x6A, 0x6C, 0x38, 0xCE, 0xD1,
98 0x66, 0xF6, 0xCA, 0x76, 0xEB, 0x54, 0x30, 0x04,
99 0x42, 0x86, 0x34, 0x6C, 0xEF, 0x13, 0x0F, 0x92,
100 0x92, 0x2B, 0x03, 0x45, 0x0D, 0x3A, 0x99, 0x75,
101 0xE5, 0xBD, 0x2E, 0xA0, 0xEB, 0x55, 0xAD, 0x8E,
102 0x1B, 0x19, 0x9E, 0x3E, 0xC4, 0x31, 0x60, 0x20,
103 0xE9, 0xA1, 0xB2, 0x85, 0xE7, 0x62, 0x79, 0x53,
104 0x59, 0xB7, 0xBD, 0xFD, 0x39, 0xBE, 0xF4, 0xB2,
105 0x48, 0x45, 0x83, 0xD5, 0xAF, 0xE0, 0x82, 0xAE,
106 0xE6, 0x38, 0xBF, 0x5F, 0xD5, 0xA6, 0x06, 0x19,
107 0x39, 0x01, 0xA0, 0x8F, 0x4A, 0xB4, 0x1A, 0xAB,
108 0x9B, 0x13, 0x48, 0x80
114 0x8C, 0xEB, 0xA6, 0x29, 0x43, 0xDC, 0xED, 0x3A,
115 0x09, 0x90, 0xB0, 0x6E, 0xA1, 0xB0, 0xA2, 0xC4,
116 0xFB, 0x3C, 0xED, 0xC7, 0x1B, 0x36, 0x9F, 0x42,
117 0xBA, 0x64, 0xC1, 0xEB, 0x66, 0x65, 0xE7, 0x2A,
118 0xA1, 0xC9, 0xBB, 0x0D, 0xEA, 0xA2, 0x0F, 0xE8,
119 0x60, 0x58, 0xB8, 0xBA, 0xEE, 0x2C, 0x2E, 0x7F,
120 0x0B, 0xEC, 0xCE, 0x48, 0xB5, 0x29, 0x32, 0xA5,
121 0x3C, 0x9D, 0x5F, 0x93, 0x1A, 0x3A, 0x7C, 0x53,
122 0x22, 0x59, 0xAF, 0x43, 0x25, 0xE2, 0xA6, 0x5E,
123 0x30, 0x84, 0xAD, 0x5F, 0x6A, 0x51, 0x3B, 0x7B,
124 0xDD, 0xC1, 0xB6, 0x5F, 0x0A, 0xA0, 0xD9, 0x7A,
125 0x05, 0x3D, 0xB5, 0x5A, 0x88, 0xC4, 0xC4, 0xF9,
126 0x60, 0x5E, 0x41, 0x40
130 .validDataLenInBits = {
133 .validCipherLenInBits = {
138 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
139 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
145 struct snow3g_test_data snow3g_test_case_2 = {
148 0xEF, 0xA8, 0xB2, 0x22, 0x9E, 0x72, 0x0C, 0x2A,
149 0x7C, 0x36, 0xEA, 0x55, 0xE9, 0x60, 0x56, 0x95
155 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
156 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
162 0x10, 0x11, 0x12, 0x31, 0xE0, 0x60, 0x25, 0x3A,
163 0x43, 0xFD, 0x3F, 0x57, 0xE3, 0x76, 0x07, 0xAB,
164 0x28, 0x27, 0xB5, 0x99, 0xB6, 0xB1, 0xBB, 0xDA,
165 0x37, 0xA8, 0xAB, 0xCC, 0x5A, 0x8C, 0x55, 0x0D,
166 0x1B, 0xFB, 0x2F, 0x49, 0x46, 0x24, 0xFB, 0x50,
167 0x36, 0x7F, 0xA3, 0x6C, 0xE3, 0xBC, 0x68, 0xF1,
168 0x1C, 0xF9, 0x3B, 0x15, 0x10, 0x37, 0x6B, 0x02,
169 0x13, 0x0F, 0x81, 0x2A, 0x9F, 0xA1, 0x69, 0xD8
175 0xE0, 0xDA, 0x15, 0xCA, 0x8E, 0x25, 0x54, 0xF5,
176 0xE5, 0x6C, 0x94, 0x68, 0xDC, 0x6C, 0x7C, 0x12,
177 0x9C, 0x56, 0x8A, 0xA5, 0x03, 0x23, 0x17, 0xE0,
178 0x4E, 0x07, 0x29, 0x64, 0x6C, 0xAB, 0xEF, 0xA6,
179 0x89, 0x86, 0x4C, 0x41, 0x0F, 0x24, 0xF9, 0x19,
180 0xE6, 0x1E, 0x3D, 0xFD, 0xFA, 0xD7, 0x7E, 0x56,
181 0x0D, 0xB0, 0xA9, 0xCD, 0x36, 0xC3, 0x4A, 0xE4,
182 0x18, 0x14, 0x90, 0xB2, 0x9F, 0x5F, 0xA2, 0xFC
186 .validDataLenInBits = {
189 .validCipherLenInBits = {
194 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
195 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
201 struct snow3g_test_data snow3g_test_case_3 = {
204 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
205 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
211 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
212 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
218 0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
219 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8
225 0xBA, 0x0F, 0x31, 0x30, 0x03, 0x34, 0xC5, 0x6B,
226 0x52, 0xA7, 0x49, 0x7C, 0xBA, 0xC0, 0x46
230 .validDataLenInBits = {
233 .validCipherLenInBits = {
238 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
239 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
244 .data = {0xE8, 0x60, 0x5A, 0x3E},
247 .validAuthLenInBits = {
252 struct snow3g_test_data snow3g_test_case_4 = {
255 0xD3, 0xC5, 0xD5, 0x92, 0x32, 0x7F, 0xB1, 0x1C,
256 0x40, 0x35, 0xC6, 0x68, 0x0A, 0xF8, 0xC6, 0xD1
262 0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00,
263 0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00
269 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB, 0x1A,
270 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D, 0x80,
271 0x8C, 0xE3, 0x3E, 0x2C, 0xC3, 0xC0, 0xB5, 0xFC,
272 0x1F, 0x3D, 0xE8, 0xA6, 0xDC, 0x66, 0xB1, 0xF0
278 0x98, 0x9B, 0x71, 0x9C, 0xDC, 0x33, 0xCE, 0xB7,
279 0xCF, 0x27, 0x6A, 0x52, 0x82, 0x7C, 0xEF, 0x94,
280 0xA5, 0x6C, 0x40, 0xC0, 0xAB, 0x9D, 0x81, 0xF7,
281 0xA2, 0xA9, 0xBA, 0xC6, 0x0E, 0x11, 0xC4, 0xB0
285 .validDataLenInBits = {
288 .validCipherLenInBits = {
293 struct snow3g_test_data snow3g_test_case_5 = {
296 0x60, 0x90, 0xEA, 0xE0, 0x4C, 0x83, 0x70, 0x6E,
297 0xEC, 0xBF, 0x65, 0x2B, 0xE8, 0xE3, 0x65, 0x66
303 0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00,
304 0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
309 0x40, 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB,
310 0x42, 0x86, 0xB2, 0x99, 0x78, 0x3D, 0xAF, 0x44,
311 0x2C, 0x09, 0x9F, 0x7A, 0xB0, 0xF5, 0x8D, 0x5C,
312 0x8E, 0x46, 0xB1, 0x04, 0xF0, 0x8F, 0x01, 0xB4,
313 0x1A, 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D,
314 0x36, 0xBD, 0x1A, 0x3D, 0x90, 0xDC, 0x3A, 0x41,
315 0xB4, 0x6D, 0x51, 0x67, 0x2A, 0xC4, 0xC9, 0x66,
316 0x3A, 0x2B, 0xE0, 0x63, 0xDA, 0x4B, 0xC8, 0xD2,
317 0x80, 0x8C, 0xE3, 0x3E, 0x2C, 0xCC, 0xBF, 0xC6,
318 0x34, 0xE1, 0xB2, 0x59, 0x06, 0x08, 0x76, 0xA0,
319 0xFB, 0xB5, 0xA4, 0x37, 0xEB, 0xCC, 0x8D, 0x31,
320 0xC1, 0x9E, 0x44, 0x54, 0x31, 0x87, 0x45, 0xE3,
321 0x98, 0x76, 0x45, 0x98, 0x7A, 0x98, 0x6F, 0x2C,
328 0x58, 0x92, 0xBB, 0xA8, 0x8B, 0xBB, 0xCA, 0xAE,
329 0xAE, 0x76, 0x9A, 0xA0, 0x6B, 0x68, 0x3D, 0x3A,
330 0x17, 0xCC, 0x04, 0xA3, 0x69, 0x88, 0x16, 0x97,
331 0x43, 0x5E, 0x44, 0xFE, 0xD5, 0xFF, 0x9A, 0xF5,
332 0x7B, 0x9E, 0x89, 0x0D, 0x4D, 0x5C, 0x64, 0x70,
333 0x98, 0x85, 0xD4, 0x8A, 0xE4, 0x06, 0x90, 0xEC,
334 0x04, 0x3B, 0xAA, 0xE9, 0x70, 0x57, 0x96, 0xE4,
335 0xA9, 0xFF, 0x5A, 0x4B, 0x8D, 0x8B, 0x36, 0xD7,
336 0xF3, 0xFE, 0x57, 0xCC, 0x6C, 0xFD, 0x6C, 0xD0,
337 0x05, 0xCD, 0x38, 0x52, 0xA8, 0x5E, 0x94, 0xCE,
338 0x6B, 0xCD, 0x90, 0xD0, 0xD0, 0x78, 0x39, 0xCE,
339 0x09, 0x73, 0x35, 0x44, 0xCA, 0x8E, 0x35, 0x08,
340 0x43, 0x24, 0x85, 0x50, 0x92, 0x2A, 0xC1, 0x28,
345 .validDataLenInBits = {
348 .validCipherLenInBits = {
352 struct snow3g_test_data snow3g_test_case_6 = {
355 0xC7, 0x36, 0xC6, 0xAA, 0xB2, 0x2B, 0xFF, 0xF9,
356 0x1E, 0x26, 0x98, 0xD2, 0xE2, 0x2A, 0xD5, 0x7E
362 0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
363 0x94, 0x79, 0x3E, 0x41, 0x03, 0x97, 0x68, 0xFD
369 0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
370 0x94, 0x79, 0x3E, 0x41, 0x03, 0x97, 0x68, 0xFD
376 0xD0, 0xA7, 0xD4, 0x63, 0xDF, 0x9F, 0xB2, 0xB2,
377 0x78, 0x83, 0x3F, 0xA0, 0x2E, 0x23, 0x5A, 0xA1,
378 0x72, 0xBD, 0x97, 0x0C, 0x14, 0x73, 0xE1, 0x29,
379 0x07, 0xFB, 0x64, 0x8B, 0x65, 0x99, 0xAA, 0xA0,
380 0xB2, 0x4A, 0x03, 0x86, 0x65, 0x42, 0x2B, 0x20,
381 0xA4, 0x99, 0x27, 0x6A, 0x50, 0x42, 0x70, 0x09
387 0x95, 0x2E, 0x5A, 0xE1, 0x50, 0xB8, 0x59, 0x2A,
388 0x9B, 0xA0, 0x38, 0xA9, 0x8E, 0x2F, 0xED, 0xAB,
389 0xFD, 0xC8, 0x3B, 0x47, 0x46, 0x0B, 0x50, 0x16,
390 0xEC, 0x88, 0x45, 0xB6, 0x05, 0xC7, 0x54, 0xF8,
391 0xBD, 0x91, 0xAA, 0xB6, 0xA4, 0xDC, 0x64, 0xB4,
392 0xCB, 0xEB, 0x97, 0x06, 0x4C, 0xF7, 0x02, 0x3D
397 .data = {0x38, 0xB5, 0x54, 0xC0 },
400 .validDataLenInBits = {
403 .validCipherLenInBits = {
406 .validAuthLenInBits = {
411 #endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */