1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2016-2017 Intel Corporation
5 #ifndef TEST_CRYPTODEV_KASUMI_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_KASUMI_TEST_VECTORS_H_
8 struct kasumi_test_data {
15 uint8_t data[64] __rte_aligned(16);
20 * Data may include COUNT (4 bytes), FRESH (4 bytes),
21 * DIRECTION (1 bit), plus 1 0*, with enough 0s,
22 * so total length is multiple of 8 or 64 bits
26 unsigned len; /* length must be in Bits */
35 unsigned len; /* length must be in Bits */
40 } validCipherLenInBits;
44 } validCipherOffsetInBits;
46 /* Actual length of data to be hashed */
58 struct kasumi_test_data kasumi_test_case_1 = {
61 0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
62 0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
68 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
74 0x7E, 0xC6, 0x12, 0x72, 0x74, 0x3B, 0xF1, 0x61,
75 0x47, 0x26, 0x44, 0x6A, 0x6C, 0x38, 0xCE, 0xD1,
76 0x66, 0xF6, 0xCA, 0x76, 0xEB, 0x54, 0x30, 0x04,
77 0x42, 0x86, 0x34, 0x6C, 0xEF, 0x13, 0x0F, 0x92,
78 0x92, 0x2B, 0x03, 0x45, 0x0D, 0x3A, 0x99, 0x75,
79 0xE5, 0xBD, 0x2E, 0xA0, 0xEB, 0x55, 0xAD, 0x8E,
80 0x1B, 0x19, 0x9E, 0x3E, 0xC4, 0x31, 0x60, 0x20,
81 0xE9, 0xA1, 0xB2, 0x85, 0xE7, 0x62, 0x79, 0x53,
82 0x59, 0xB7, 0xBD, 0xFD, 0x39, 0xBE, 0xF4, 0xB2,
83 0x48, 0x45, 0x83, 0xD5, 0xAF, 0xE0, 0x82, 0xAE,
84 0xE6, 0x38, 0xBF, 0x5F, 0xD5, 0xA6, 0x06, 0x19,
85 0x39, 0x01, 0xA0, 0x8F, 0x4A, 0xB4, 0x1A, 0xAB,
86 0x9B, 0x13, 0x48, 0x80
92 0xD1, 0xE2, 0xDE, 0x70, 0xEE, 0xF8, 0x6C, 0x69,
93 0x64, 0xFB, 0x54, 0x2B, 0xC2, 0xD4, 0x60, 0xAA,
94 0xBF, 0xAA, 0x10, 0xA4, 0xA0, 0x93, 0x26, 0x2B,
95 0x7D, 0x19, 0x9E, 0x70, 0x6F, 0xC2, 0xD4, 0x89,
96 0x15, 0x53, 0x29, 0x69, 0x10, 0xF3, 0xA9, 0x73,
97 0x01, 0x26, 0x82, 0xE4, 0x1C, 0x4E, 0x2B, 0x02,
98 0xBE, 0x20, 0x17, 0xB7, 0x25, 0x3B, 0xBF, 0x93,
99 0x09, 0xDE, 0x58, 0x19, 0xCB, 0x42, 0xE8, 0x19,
100 0x56, 0xF4, 0xC9, 0x9B, 0xC9, 0x76, 0x5C, 0xAF,
101 0x53, 0xB1, 0xD0, 0xBB, 0x82, 0x79, 0x82, 0x6A,
102 0xDB, 0xBC, 0x55, 0x22, 0xE9, 0x15, 0xC1, 0x20,
103 0xA6, 0x18, 0xA5, 0xA7, 0xF5, 0xE8, 0x97, 0x08,
104 0x93, 0x39, 0x65, 0x0F
108 .validCipherLenInBits = {
111 .validCipherOffsetInBits = {
116 struct kasumi_test_data kasumi_test_case_2 = {
119 0xEF, 0xA8, 0xB2, 0x22, 0x9E, 0x72, 0x0C, 0x2A,
120 0x7C, 0x36, 0xEA, 0x55, 0xE9, 0x60, 0x56, 0x95
126 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
132 0x10, 0x11, 0x12, 0x31, 0xE0, 0x60, 0x25, 0x3A,
133 0x43, 0xFD, 0x3F, 0x57, 0xE3, 0x76, 0x07, 0xAB,
134 0x28, 0x27, 0xB5, 0x99, 0xB6, 0xB1, 0xBB, 0xDA,
135 0x37, 0xA8, 0xAB, 0xCC, 0x5A, 0x8C, 0x55, 0x0D,
136 0x1B, 0xFB, 0x2F, 0x49, 0x46, 0x24, 0xFB, 0x50,
137 0x36, 0x7F, 0xA3, 0x6C, 0xE3, 0xBC, 0x68, 0xF1,
138 0x1C, 0xF9, 0x3B, 0x15, 0x10, 0x37, 0x6B, 0x02,
139 0x13, 0x0F, 0x81, 0x2A, 0x9F, 0xA1, 0x69, 0xD8
145 0x3D, 0xEA, 0xCC, 0x7C, 0x15, 0x82, 0x1C, 0xAA,
146 0x89, 0xEE, 0xCA, 0xDE, 0x9B, 0x5B, 0xD3, 0x61,
147 0x4B, 0xD0, 0xC8, 0x41, 0x9D, 0x71, 0x03, 0x85,
148 0xDD, 0xBE, 0x58, 0x49, 0xEF, 0x1B, 0xAC, 0x5A,
149 0xE8, 0xB1, 0x4A, 0x5B, 0x0A, 0x67, 0x41, 0x52,
150 0x1E, 0xB4, 0xE0, 0x0B, 0xB9, 0xEC, 0xF3, 0xE9,
151 0xF7, 0xCC, 0xB9, 0xCA, 0xE7, 0x41, 0x52, 0xD7,
152 0xF4, 0xE2, 0xA0, 0x34, 0xB6, 0xEA, 0x00, 0xEC
156 .validCipherLenInBits = {
159 .validCipherOffsetInBits = {
164 struct kasumi_test_data kasumi_test_case_3 = {
167 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
168 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
174 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
180 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
181 0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
182 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8, 0xC0
188 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
189 0x9B, 0xC9, 0x2C, 0xA8, 0x03, 0xC6, 0x7B, 0x28,
190 0xA1, 0x1A, 0x4B, 0xEE, 0x5A, 0x0C, 0x25, 0xC0
194 .validDataLenInBits = {
197 .validCipherLenInBits = {
200 .validAuthLenInBits = {
203 .validCipherOffsetInBits = {
207 .data = {0x87, 0x5F, 0xE4, 0x89},
212 struct kasumi_test_data kasumi_test_case_4 = {
215 0xD3, 0xC5, 0xD5, 0x92, 0x32, 0x7F, 0xB1, 0x1C,
216 0x40, 0x35, 0xC6, 0x68, 0x0A, 0xF8, 0xC6, 0xD1
222 0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00,
228 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB, 0x1A,
229 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D, 0x80,
230 0x8C, 0xE3, 0x3E, 0x2C, 0xC3, 0xC0, 0xB5, 0xFC,
231 0x1F, 0x3D, 0xE8, 0xA6, 0xDC, 0x66, 0xB1, 0xF0
237 0x5B, 0xB9, 0x43, 0x1B, 0xB1, 0xE9, 0x8B, 0xD1,
238 0x1B, 0x93, 0xDB, 0x7C, 0x3D, 0x45, 0x13, 0x65,
239 0x59, 0xBB, 0x86, 0xA2, 0x95, 0xAA, 0x20, 0x4E,
240 0xCB, 0xEB, 0xF6, 0xF7, 0xA5, 0x10, 0x15, 0x10
244 .validCipherLenInBits = {
247 .validCipherOffsetInBits = {
252 struct kasumi_test_data kasumi_test_case_5 = {
255 0x60, 0x90, 0xEA, 0xE0, 0x4C, 0x83, 0x70, 0x6E,
256 0xEC, 0xBF, 0x65, 0x2B, 0xE8, 0xE3, 0x65, 0x66
262 0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
268 0x40, 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB,
269 0x42, 0x86, 0xB2, 0x99, 0x78, 0x3D, 0xAF, 0x44,
270 0x2C, 0x09, 0x9F, 0x7A, 0xB0, 0xF5, 0x8D, 0x5C,
271 0x8E, 0x46, 0xB1, 0x04, 0xF0, 0x8F, 0x01, 0xB4,
272 0x1A, 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D,
273 0x36, 0xBD, 0x1A, 0x3D, 0x90, 0xDC, 0x3A, 0x41,
274 0xB4, 0x6D, 0x51, 0x67, 0x2A, 0xC4, 0xC9, 0x66,
275 0x3A, 0x2B, 0xE0, 0x63, 0xDA, 0x4B, 0xC8, 0xD2,
276 0x80, 0x8C, 0xE3, 0x3E, 0x2C, 0xCC, 0xBF, 0xC6,
277 0x34, 0xE1, 0xB2, 0x59, 0x06, 0x08, 0x76, 0xA0,
278 0xFB, 0xB5, 0xA4, 0x37, 0xEB, 0xCC, 0x8D, 0x31,
279 0xC1, 0x9E, 0x44, 0x54, 0x31, 0x87, 0x45, 0xE3,
280 0x98, 0x76, 0x45, 0x98, 0x7A, 0x98, 0x6F, 0x2C,
287 0xDD, 0xB3, 0x64, 0xDD, 0x2A, 0xAE, 0xC2, 0x4D,
288 0xFF, 0x29, 0x19, 0x57, 0xB7, 0x8B, 0xAD, 0x06,
289 0x3A, 0xC5, 0x79, 0xCD, 0x90, 0x41, 0xBA, 0xBE,
290 0x89, 0xFD, 0x19, 0x5C, 0x05, 0x78, 0xCB, 0x9F,
291 0xDE, 0x42, 0x17, 0x56, 0x61, 0x78, 0xD2, 0x02,
292 0x40, 0x20, 0x6D, 0x07, 0xCF, 0xA6, 0x19, 0xEC,
293 0x05, 0x9F, 0x63, 0x51, 0x44, 0x59, 0xFC, 0x10,
294 0xD4, 0x2D, 0xC9, 0x93, 0x4E, 0x56, 0xEB, 0xC0,
295 0xCB, 0xC6, 0x0D, 0x4D, 0x2D, 0xF1, 0x74, 0x77,
296 0x4C, 0xBD, 0xCD, 0x5D, 0xA4, 0xA3, 0x50, 0x31,
297 0x7A, 0x7F, 0x12, 0xE1, 0x94, 0x94, 0x71, 0xF8,
298 0xA2, 0x95, 0xF2, 0x72, 0xE6, 0x8F, 0xC0, 0x71,
299 0x59, 0xB0, 0x7D, 0x8E, 0x2D, 0x26, 0xE4, 0x59,
304 .validCipherLenInBits = {
307 .validCipherOffsetInBits = {
312 struct kasumi_test_data kasumi_test_case_6 = {
315 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
316 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
322 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
328 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
329 0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
330 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8, 0xC0
336 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
337 0x9B, 0xC9, 0x2C, 0xA8, 0x03, 0xC6, 0x7B, 0x28,
338 0xA1, 0x1A, 0x4B, 0xEE, 0x5A, 0x0C, 0x25, 0xC0
342 .validDataLenInBits = {
345 .validCipherLenInBits = {
348 .validCipherOffsetInBits = {
351 .validAuthLenInBits = {
355 .data = {0x0F, 0xD2, 0xAA, 0xB5},
359 #endif /* TEST_CRYPTODEV_KASUMI_TEST_VECTORS_H_ */