xref: /dpdk/app/test/test_cryptodev_snow3g_test_vectors.h (revision 0efea35a2bb0ae9df6e204151c7f96b5eb93e130)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2015-2019 Intel Corporation
3  */
4 
5 #ifndef TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_
7 
8 struct snow3g_test_data {
9 	struct {
10 		uint8_t data[64];
11 		unsigned len;
12 	} key;
13 
14 	struct {
15 		alignas(16) uint8_t data[64];
16 		unsigned len;
17 	} cipher_iv;
18 
19 	struct {
20 		uint8_t data[1024];
21 		unsigned len; /* length must be in Bits */
22 	} plaintext;
23 
24 	struct {
25 		uint8_t data[1024];
26 		unsigned len; /* length must be in Bits */
27 	} ciphertext;
28 
29 	struct {
30 		unsigned len;
31 	} validDataLenInBits;
32 
33 	struct {
34 		unsigned len;
35 	} validCipherLenInBits;
36 
37 	struct {
38 		unsigned len;
39 	} validAuthLenInBits;
40 
41 	struct {
42 		uint8_t data[64];
43 		unsigned len;
44 	} auth_iv;
45 
46 	struct {
47 		uint8_t data[64];
48 		unsigned int len; /* length must be in Bytes */
49 		unsigned int offset_bytes; /* offset must be in Bytes */
50 	} digest;
51 
52 	struct {
53 		unsigned int len_bits; /* length must be in Bits */
54 		unsigned int offset_bits;
55 	} cipher;
56 
57 	struct {
58 		unsigned int len_bits; /* length must be in Bits */
59 		unsigned int offset_bits;
60 	} auth;
61 };
62 
63 struct snow3g_test_data snow3g_test_case_1 = {
64 	.key = {
65 		.data = {
66 			0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
67 			0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
68 		},
69 		.len = 16
70 	},
71 	.cipher_iv = {
72 		.data = {
73 			0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
74 			0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
75 		},
76 		.len = 16
77 	},
78 	.plaintext = {
79 		.data = {
80 			0x7E, 0xC6, 0x12, 0x72, 0x74, 0x3B, 0xF1, 0x61,
81 			0x47, 0x26, 0x44, 0x6A, 0x6C, 0x38, 0xCE, 0xD1,
82 			0x66, 0xF6, 0xCA, 0x76, 0xEB, 0x54, 0x30, 0x04,
83 			0x42, 0x86, 0x34, 0x6C, 0xEF, 0x13, 0x0F, 0x92,
84 			0x92, 0x2B, 0x03, 0x45, 0x0D, 0x3A, 0x99, 0x75,
85 			0xE5, 0xBD, 0x2E, 0xA0, 0xEB, 0x55, 0xAD, 0x8E,
86 			0x1B, 0x19, 0x9E, 0x3E, 0xC4, 0x31, 0x60, 0x20,
87 			0xE9, 0xA1, 0xB2, 0x85, 0xE7, 0x62, 0x79, 0x53,
88 			0x59, 0xB7, 0xBD, 0xFD, 0x39, 0xBE, 0xF4, 0xB2,
89 			0x48, 0x45, 0x83, 0xD5, 0xAF, 0xE0, 0x82, 0xAE,
90 			0xE6, 0x38, 0xBF, 0x5F, 0xD5, 0xA6, 0x06, 0x19,
91 			0x39, 0x01, 0xA0, 0x8F, 0x4A, 0xB4, 0x1A, 0xAB,
92 			0x9B, 0x13, 0x48, 0x80
93 		},
94 		.len = 800
95 	},
96 	.ciphertext = {
97 		.data = {
98 			0x8C, 0xEB, 0xA6, 0x29, 0x43, 0xDC, 0xED, 0x3A,
99 			0x09, 0x90, 0xB0, 0x6E, 0xA1, 0xB0, 0xA2, 0xC4,
100 			0xFB, 0x3C, 0xED, 0xC7, 0x1B, 0x36, 0x9F, 0x42,
101 			0xBA, 0x64, 0xC1, 0xEB, 0x66, 0x65, 0xE7, 0x2A,
102 			0xA1, 0xC9, 0xBB, 0x0D, 0xEA, 0xA2, 0x0F, 0xE8,
103 			0x60, 0x58, 0xB8, 0xBA, 0xEE, 0x2C, 0x2E, 0x7F,
104 			0x0B, 0xEC, 0xCE, 0x48, 0xB5, 0x29, 0x32, 0xA5,
105 			0x3C, 0x9D, 0x5F, 0x93, 0x1A, 0x3A, 0x7C, 0x53,
106 			0x22, 0x59, 0xAF, 0x43, 0x25, 0xE2, 0xA6, 0x5E,
107 			0x30, 0x84, 0xAD, 0x5F, 0x6A, 0x51, 0x3B, 0x7B,
108 			0xDD, 0xC1, 0xB6, 0x5F, 0x0A, 0xA0, 0xD9, 0x7A,
109 			0x05, 0x3D, 0xB5, 0x5A, 0x88, 0xC4, 0xC4, 0xF9,
110 			0x60, 0x5E, 0x41, 0x40
111 		},
112 		.len = 800
113 	},
114 	.cipher = {
115 		.offset_bits = 0
116 	},
117 	.validDataLenInBits = {
118 		.len = 798
119 	},
120 	.validCipherLenInBits = {
121 		.len = 800
122 	},
123 	.auth_iv = {
124 		.data = {
125 			 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
126 			 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
127 		},
128 		.len = 16
129 	}
130 };
131 
132 struct snow3g_test_data snow3g_test_case_2 = {
133 	.key = {
134 		.data = {
135 			0xEF, 0xA8, 0xB2, 0x22, 0x9E, 0x72, 0x0C, 0x2A,
136 			0x7C, 0x36, 0xEA, 0x55, 0xE9, 0x60, 0x56, 0x95
137 		},
138 		.len = 16
139 	},
140 	.cipher_iv = {
141 		.data = {
142 			0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
143 			0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
144 		},
145 		.len = 16
146 	},
147 	.plaintext = {
148 		.data = {
149 			0x10, 0x11, 0x12, 0x31, 0xE0, 0x60, 0x25, 0x3A,
150 			0x43, 0xFD, 0x3F, 0x57, 0xE3, 0x76, 0x07, 0xAB,
151 			0x28, 0x27, 0xB5, 0x99, 0xB6, 0xB1, 0xBB, 0xDA,
152 			0x37, 0xA8, 0xAB, 0xCC, 0x5A, 0x8C, 0x55, 0x0D,
153 			0x1B, 0xFB, 0x2F, 0x49, 0x46, 0x24, 0xFB, 0x50,
154 			0x36, 0x7F, 0xA3, 0x6C, 0xE3, 0xBC, 0x68, 0xF1,
155 			0x1C, 0xF9, 0x3B, 0x15, 0x10, 0x37, 0x6B, 0x02,
156 			0x13, 0x0F, 0x81, 0x2A, 0x9F, 0xA1, 0x69, 0xD8
157 		},
158 		.len = 512
159 	},
160 	.ciphertext = {
161 		.data = {
162 				0xE0, 0xDA, 0x15, 0xCA, 0x8E, 0x25, 0x54, 0xF5,
163 				0xE5, 0x6C, 0x94, 0x68, 0xDC, 0x6C, 0x7C, 0x12,
164 				0x9C, 0x56, 0x8A, 0xA5, 0x03, 0x23, 0x17, 0xE0,
165 				0x4E, 0x07, 0x29, 0x64, 0x6C, 0xAB, 0xEF, 0xA6,
166 				0x89, 0x86, 0x4C, 0x41, 0x0F, 0x24, 0xF9, 0x19,
167 				0xE6, 0x1E, 0x3D, 0xFD, 0xFA, 0xD7, 0x7E, 0x56,
168 				0x0D, 0xB0, 0xA9, 0xCD, 0x36, 0xC3, 0x4A, 0xE4,
169 				0x18, 0x14, 0x90, 0xB2, 0x9F, 0x5F, 0xA2, 0xFC
170 		},
171 		.len = 512
172 	},
173 	.cipher = {
174 		.offset_bits = 0
175 	},
176 	.validDataLenInBits = {
177 		.len = 510
178 	},
179 	.validCipherLenInBits = {
180 		.len = 512
181 	},
182 	.auth_iv = {
183 		.data = {
184 			 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
185 			 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
186 		},
187 		.len = 16
188 	}
189 };
190 
191 struct snow3g_test_data snow3g_test_case_3 = {
192 	.key = {
193 		.data = {
194 			 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
195 			 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
196 		},
197 		.len = 16
198 	},
199 	.cipher_iv = {
200 		.data = {
201 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
202 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
203 		},
204 		.len = 16
205 	},
206 	.plaintext = {
207 		.data = {
208 			0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
209 			0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8
210 		},
211 		.len = 120
212 	},
213 	.ciphertext = {
214 		.data = {
215 			0xBA, 0x0F, 0x31, 0x30, 0x03, 0x34, 0xC5, 0x6B,
216 			0x52, 0xA7, 0x49, 0x7C, 0xBA, 0xC0, 0x46
217 		},
218 		.len = 120
219 	},
220 	.cipher = {
221 		.offset_bits = 0
222 	},
223 	.validDataLenInBits = {
224 		.len = 120
225 	},
226 	.validCipherLenInBits = {
227 		.len = 120
228 	},
229 	.auth_iv = {
230 		.data = {
231 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
232 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
233 		},
234 		.len = 16
235 	},
236 	.digest = {
237 		.data = {0xE8, 0x60, 0x5A, 0x3E},
238 		.len  = 4
239 	},
240 	.validAuthLenInBits = {
241 		.len = 120
242 	}
243 };
244 
245 struct snow3g_test_data snow3g_test_case_4 = {
246 	.key = {
247 		.data = {
248 			0xD3, 0xC5, 0xD5, 0x92, 0x32, 0x7F, 0xB1, 0x1C,
249 			0x40, 0x35, 0xC6, 0x68, 0x0A, 0xF8, 0xC6, 0xD1
250 		},
251 		.len = 16
252 	},
253 	.cipher_iv = {
254 		.data = {
255 			0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00,
256 			0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00
257 		},
258 		.len = 16
259 	},
260 	.plaintext = {
261 		.data = {
262 			0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB, 0x1A,
263 			0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D, 0x80,
264 			0x8C, 0xE3, 0x3E, 0x2C, 0xC3, 0xC0, 0xB5, 0xFC,
265 			0x1F, 0x3D, 0xE8, 0xA6, 0xDC, 0x66, 0xB1, 0xF0
266 		},
267 		.len = 256
268 	},
269 	.ciphertext = {
270 		.data = {
271 			0x98, 0x9B, 0x71, 0x9C, 0xDC, 0x33, 0xCE, 0xB7,
272 			0xCF, 0x27, 0x6A, 0x52, 0x82, 0x7C, 0xEF, 0x94,
273 			0xA5, 0x6C, 0x40, 0xC0, 0xAB, 0x9D, 0x81, 0xF7,
274 			0xA2, 0xA9, 0xBA, 0xC6, 0x0E, 0x11, 0xC4, 0xB0
275 		},
276 		.len = 256
277 	},
278 	.cipher = {
279 		.offset_bits = 0
280 	},
281 	.validDataLenInBits = {
282 		.len = 253
283 	},
284 	.validCipherLenInBits = {
285 		.len = 256
286 	}
287 };
288 
289 struct snow3g_test_data snow3g_test_case_5 = {
290 	.key = {
291 		.data = {
292 			0x60, 0x90, 0xEA, 0xE0, 0x4C, 0x83, 0x70, 0x6E,
293 			0xEC, 0xBF, 0x65, 0x2B, 0xE8, 0xE3, 0x65, 0x66
294 		},
295 		.len = 16
296 	},
297 	.cipher_iv = {
298 		.data = {
299 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00,
300 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
301 		},
302 		.len = 16},
303 	.plaintext = {
304 		.data = {
305 			0x40, 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB,
306 			0x42, 0x86, 0xB2, 0x99, 0x78, 0x3D, 0xAF, 0x44,
307 			0x2C, 0x09, 0x9F, 0x7A, 0xB0, 0xF5, 0x8D, 0x5C,
308 			0x8E, 0x46, 0xB1, 0x04, 0xF0, 0x8F, 0x01, 0xB4,
309 			0x1A, 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D,
310 			0x36, 0xBD, 0x1A, 0x3D, 0x90, 0xDC, 0x3A, 0x41,
311 			0xB4, 0x6D, 0x51, 0x67, 0x2A, 0xC4, 0xC9, 0x66,
312 			0x3A, 0x2B, 0xE0, 0x63, 0xDA, 0x4B, 0xC8, 0xD2,
313 			0x80, 0x8C, 0xE3, 0x3E, 0x2C, 0xCC, 0xBF, 0xC6,
314 			0x34, 0xE1, 0xB2, 0x59, 0x06, 0x08, 0x76, 0xA0,
315 			0xFB, 0xB5, 0xA4, 0x37, 0xEB, 0xCC, 0x8D, 0x31,
316 			0xC1, 0x9E, 0x44, 0x54, 0x31, 0x87, 0x45, 0xE3,
317 			0x98, 0x76, 0x45, 0x98, 0x7A, 0x98, 0x6F, 0x2C,
318 			0xB0
319 		},
320 		.len = 840
321 	},
322 	.ciphertext = {
323 		.data = {
324 			0x58, 0x92, 0xBB, 0xA8, 0x8B, 0xBB, 0xCA, 0xAE,
325 			0xAE, 0x76, 0x9A, 0xA0, 0x6B, 0x68, 0x3D, 0x3A,
326 			0x17, 0xCC, 0x04, 0xA3, 0x69, 0x88, 0x16, 0x97,
327 			0x43, 0x5E, 0x44, 0xFE, 0xD5, 0xFF, 0x9A, 0xF5,
328 			0x7B, 0x9E, 0x89, 0x0D, 0x4D, 0x5C, 0x64, 0x70,
329 			0x98, 0x85, 0xD4, 0x8A, 0xE4, 0x06, 0x90, 0xEC,
330 			0x04, 0x3B, 0xAA, 0xE9, 0x70, 0x57, 0x96, 0xE4,
331 			0xA9, 0xFF, 0x5A, 0x4B, 0x8D, 0x8B, 0x36, 0xD7,
332 			0xF3, 0xFE, 0x57, 0xCC, 0x6C, 0xFD, 0x6C, 0xD0,
333 			0x05, 0xCD, 0x38, 0x52, 0xA8, 0x5E, 0x94, 0xCE,
334 			0x6B, 0xCD, 0x90, 0xD0, 0xD0, 0x78, 0x39, 0xCE,
335 			0x09, 0x73, 0x35, 0x44, 0xCA, 0x8E, 0x35, 0x08,
336 			0x43, 0x24, 0x85, 0x50, 0x92, 0x2A, 0xC1, 0x28,
337 			0x18
338 		},
339 		.len = 840
340 	},
341 	.cipher = {
342 		.offset_bits = 0
343 	},
344 	.validDataLenInBits = {
345 		.len = 837
346 	},
347 	.validCipherLenInBits = {
348 		.len = 840
349 	},
350 };
351 
352 struct snow3g_test_data snow3g_auth_cipher_test_case_1 = {
353 	.key = {
354 		.data = {
355 			0xC7, 0x36, 0xC6, 0xAA, 0xB2, 0x2B, 0xFF, 0xF9,
356 			0x1E, 0x26, 0x98, 0xD2, 0xE2, 0x2A, 0xD5, 0x7E
357 		},
358 		.len = 16
359 	},
360 	.cipher_iv = {
361 		.data = {
362 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00,
363 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
364 		},
365 		.len = 16
366 	},
367 	.auth_iv = {
368 		.data = {
369 			0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
370 			0x94, 0x79, 0x3E, 0x41, 0x03, 0x97, 0x68, 0xFD
371 		},
372 		.len = 16
373 	},
374 	.plaintext = {
375 		.data = {
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
382 		},
383 		.len = 384
384 	},
385 	.ciphertext = {
386 	  .data = {
387 			0x86, 0x4F, 0x4D, 0xE8, 0x86, 0xE6, 0x3E, 0x66,
388 			0x52, 0x97, 0xC7, 0x62, 0xAE, 0x8E, 0xA2, 0xDB,
389 			0x01, 0xD6, 0x33, 0xA9, 0xA4, 0xCE, 0x02, 0xD5,
390 			0xC2, 0xC5, 0x5F, 0x90, 0xE0, 0x89, 0x48, 0xD4,
391 			0x92, 0xF4, 0xE5, 0x9A, 0xDA, 0x13, 0x76, 0xFF,
392 			0x6E, 0x76, 0x6B, 0x71, 0x62, 0x28, 0xB2, 0xEC
393 		},
394 		.len = 384
395 	},
396 	.cipher = {
397 		.len_bits = 384,
398 		.offset_bits = 0
399 	},
400 	.auth = {
401 		.len_bits = 384,
402 		.offset_bits = 0
403 	},
404 	.digest = {
405 		.data = {0x38, 0xB5, 0x54, 0xC0 },
406 		.len  = 4,
407 		.offset_bytes = 0
408 	},
409 	.validDataLenInBits = {
410 		.len = 384
411 	},
412 	.validCipherLenInBits = {
413 		.len = 384
414 	},
415 	.validAuthLenInBits = {
416 		.len = 384
417 	},
418 };
419 
420 struct snow3g_test_data snow3g_test_case_7 = {
421 	.key = {
422 		.data = {
423 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
424 			0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
425 
426 			},
427 		.len = 16
428 	},
429 	.cipher_iv = {
430 		.data = {
431 			0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
432 			0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
433 		},
434 		.len = 16
435 	},
436 	.auth_iv = {
437 		.data = {
438 			0x36, 0xAF, 0x61, 0x44, 0x98, 0x38, 0xF0, 0x3A,
439 			0x36, 0xAF, 0x61, 0x44, 0x98, 0x38, 0xF0, 0x3A
440 		},
441 		.len = 16
442 	},
443 	.plaintext = {
444 		.data = {
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,  0x5A,  0x5A,  0x5A,  0x5A,
460 			0x5A,  0x5A,  0x5A,  0x5A,  0xBB,  0x2B,  0x8B,  0x15,
461 		},
462 		.len = 128 << 3
463 	},
464 	.ciphertext = {
465 		.data = {
466 			0x5A,  0x5A,  0x8A,  0x35,  0xF7,  0x36,  0xDA,  0xD7,
467 			0xC4,  0x2C,  0x10,  0xEA,  0x92,  0x9C,  0x00,  0xF0,
468 			0xAE,  0x35,  0x5E,  0x8D,  0xB6,  0x88,  0x30,  0x66,
469 			0x74,  0x8B,  0xA2,  0x82,  0x5C,  0xA7,  0xF3,  0x54,
470 			0x75,  0x02,  0xA9,  0x90,  0x6B,  0x4B,  0x6A,  0x63,
471 			0xFF,  0x4B,  0x08,  0xFE,  0x11,  0x3C,  0x5A,  0x53,
472 			0xEE,  0x68,  0x14,  0x41,  0x17,  0xCD,  0x7B,  0x27,
473 			0x88,  0xAF,  0x99,  0xE2,  0x9C,  0x86,  0x42,  0x12,
474 			0x97,  0x93,  0xF0,  0xE6,  0xE2,  0xB2,  0x2D,  0xDA,
475 			0x2C,  0x59,  0xB0,  0xA7,  0x09,  0xF6,  0x32,  0xC0,
476 			0x35,  0x9A,  0xD3,  0xBA,  0xDC,  0x8F,  0x2E,  0x18,
477 			0x97,  0x87,  0x44,  0xD6,  0x43,  0xFA,  0x86,  0x5A,
478 			0xB0,  0xA2,  0x5A,  0xB8,  0x5F,  0x57,  0xE3,  0x2F,
479 			0x73,  0x9C,  0x01,  0x3A,  0x02,  0x08,  0x8C,  0xEB,
480 			0xA0,  0x5D,  0x74,  0x58,  0x5A,  0xA1,  0x58,  0x17,
481 			0x5E,  0x86,  0x96,  0xE6,  0x9C,  0xEE,  0x8C,  0xA8
482 
483 		},
484 		.len = 128 << 3
485 	},
486 	.cipher = {
487 		.len_bits = 126 << 3,
488 		.offset_bits = 2 << 3
489 	},
490 	.auth = {
491 		.len_bits = 124 << 3,
492 		.offset_bits = 0
493 	},
494 	.digest = {
495 		.data = {
496 			0x9C, 0xEE, 0x8C, 0xA8
497 		},
498 		.len = 4,
499 		.offset_bytes = 124
500 	},
501 	.validDataLenInBits = {
502 		.len = 128 << 3
503 	},
504 	.validCipherLenInBits = {
505 		.len = 126 << 3
506 	},
507 	.validAuthLenInBits = {
508 		.len = 124 << 3
509 	},
510 };
511 
512 struct snow3g_test_data snow3g_auth_cipher_test_case_2 = {
513 	.key = {
514 		.data = {
515 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
516 			0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
517 
518 			},
519 		.len = 16
520 	},
521 	.cipher_iv = {
522 		.data = {
523 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
524 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
525 		},
526 		.len = 16
527 	},
528 	.auth_iv = {
529 		.data = {
530 			0x3E, 0xDC, 0x87, 0xE2, 0xA4, 0xF2, 0xD8, 0xE2,
531 			0x3E, 0xDC, 0x87, 0xE2, 0xA4, 0xF2, 0xD8, 0xE2
532 		},
533 		.len = 16
534 	},
535 	.plaintext = {
536 		.data = {
537 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
538 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
539 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
540 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
541 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
542 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
543 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
544 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
545 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
546 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
547 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
548 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
549 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
550 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
551 			0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,  0x5A,
552 			0x5A,  0x5A,  0x5A,  0x5A,  0x01,  0x02,  0x03,  0x04,
553 
554 		},
555 		.len = 128 << 3
556 	},
557 	.ciphertext = {
558 		.data = {
559 			0x5A,  0x5A,  0xCF,  0xCF,  0x3D,  0x11,  0xBF,  0xD9,
560 			0xC3,  0x7F,  0x7C,  0xA8,  0x1A,  0x9F,  0x9F,  0x34,
561 			0xC5,  0x6E,  0x1B,  0x2C,  0xE0,  0x81,  0x4B,  0x66,
562 			0x87,  0xCB,  0xD5,  0x61,  0x04,  0xED,  0xBC,  0x69,
563 			0x79,  0x86,  0x73,  0x48,  0x69,  0x4A,  0xBA,  0x55,
564 			0x44,  0x6C,  0xEF,  0xD9,  0x34,  0x61,  0x59,  0x67,
565 			0x80,  0x4E,  0x03,  0x95,  0x0A,  0xA1,  0x6C,  0xBA,
566 			0x74,  0xBD,  0xAF,  0x11,  0x4B,  0xE6,  0x98,  0x61,
567 			0x4E,  0xD4,  0x3E,  0xE4,  0x99,  0x55,  0x5C,  0x3A,
568 			0x8C,  0x3E,  0xC0,  0x01,  0x6E,  0x15,  0xE1,  0x0E,
569 			0x71,  0x4C,  0x89,  0x43,  0x8A,  0x48,  0x69,  0x6D,
570 			0x02,  0x10,  0xC6,  0x54,  0x37,  0x18,  0xAA,  0x10,
571 			0x90,  0x80,  0x0B,  0x69,  0x08,  0xB4,  0xF9,  0x4D,
572 			0xD1,  0x2E,  0x43,  0xD9,  0x92,  0xAF,  0x06,  0x4A,
573 			0xAF,  0x26,  0x25,  0x77,  0x37,  0xD0,  0xFC,  0x3C,
574 			0xA0,  0xCB,  0xAF,  0x06,  0x95,  0x26,  0x30,  0x38,
575 
576 		},
577 		.len = 128 << 3
578 	},
579 	.cipher = {
580 		.len_bits = 126 << 3,
581 		.offset_bits = 2 << 3
582 	},
583 	.auth = {
584 		.len_bits = 124 << 3,
585 		.offset_bits = 0
586 	},
587 	.digest = {
588 		.data = {
589 			0x95, 0x26, 0x30, 0x38
590 		},
591 		.len = 4,
592 		.offset_bytes = 124
593 	},
594 	.validDataLenInBits = {
595 		.len = 128 << 3
596 	},
597 	.validCipherLenInBits = {
598 		.len = 126 << 3
599 	},
600 	.validAuthLenInBits = {
601 		.len = 124 << 3
602 	},
603 };
604 
605 struct snow3g_test_data snow3g_auth_cipher_test_case_3 = {
606 	.key = {
607 		.data = {
608 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
609 			0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
610 
611 			},
612 		.len = 16
613 	},
614 	.cipher_iv = {
615 		.data = {
616 			0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00,
617 			0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00
618 		},
619 		.len = 16
620 	},
621 	.auth_iv = {
622 		.data = {
623 			0x29, 0x6F, 0x39, 0x3C, 0x6B, 0x22, 0x77, 0x37,
624 			0x29, 0x6F, 0x39, 0x3C, 0x6B, 0x22, 0x77, 0x37
625 		},
626 		.len = 16
627 	},
628 	.plaintext = {
629 		.data = {
630 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
631 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
632 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
633 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
634 		},
635 		.len = 32 << 3
636 	},
637 	.ciphertext = {
638 		.data = {
639 			0x5A, 0x5A, 0x93, 0xB0, 0x3F, 0xA4, 0xEB, 0xD4,
640 			0x51, 0x12, 0x3B, 0x95, 0x93, 0x12, 0xBF, 0xBE,
641 			0xF2, 0xFE, 0xA5, 0xAE, 0xE7, 0xF4, 0x80, 0x3E,
642 			0xB2, 0xD1, 0xFF, 0x5F, 0xD9, 0x32, 0x72, 0xFE,
643 		},
644 		.len = 32 << 3
645 	},
646 	.cipher = {
647 		.len_bits = 30 << 3,
648 		.offset_bits = 2 << 3
649 	},
650 	.auth = {
651 		.len_bits = 28 << 3,
652 		.offset_bits = 0
653 	},
654 	.digest = {
655 		.data = {
656 			0xD9, 0x32, 0x72, 0xFE
657 		},
658 		.len = 4,
659 		.offset_bytes = 28
660 	},
661 	.validDataLenInBits = {
662 		.len = 32 << 3
663 	},
664 	.validCipherLenInBits = {
665 		.len = 30 << 3
666 	},
667 	.validAuthLenInBits = {
668 		.len = 28 << 3
669 	},
670 };
671 
672 struct snow3g_test_data snow3g_auth_cipher_partial_digest_encryption = {
673 	.key = {
674 		.data = {
675 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
676 			0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
677 
678 			},
679 		.len = 16
680 	},
681 	.cipher_iv = {
682 		.data = {
683 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00,
684 			0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
685 		},
686 		.len = 16
687 	},
688 	.auth_iv = {
689 		.data = {
690 			0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
691 			0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD
692 		},
693 		.len = 16
694 	},
695 	.plaintext = {
696 		.data = {
697 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
698 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
699 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
700 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A
701 		},
702 		.len = 32 << 3
703 	},
704 	.ciphertext = {
705 		.data = {
706 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
707 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0xA2, 0xB7,
708 			0xDF, 0xA7, 0x98, 0xA1, 0xD8, 0xD4, 0x9B, 0x6E,
709 			0x2C, 0x7A, 0x66, 0x15, 0xCC, 0x4C, 0xE5, 0xE0
710 		},
711 		.len = 32 << 3
712 	},
713 	.cipher = {
714 		.len_bits = 16 << 3,
715 		.offset_bits = 14 << 3
716 	},
717 	.auth = {
718 		.len_bits = 28 << 3,
719 		.offset_bits = 0
720 	},
721 	.digest = {
722 		.data = {
723 			0xCC, 0x4C, 0xE5, 0xE0
724 		},
725 		.len = 4,
726 		.offset_bytes = 28
727 	},
728 	.validDataLenInBits = {
729 		.len = 32 << 3
730 	},
731 	.validCipherLenInBits = {
732 		.len = 16 << 3
733 	},
734 	.validAuthLenInBits = {
735 		.len = 28 << 3
736 	},
737 };
738 
739 struct snow3g_test_data snow3g_auth_cipher_total_digest_encryption_1 = {
740 	.key = {
741 		.data = {
742 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
743 			0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10
744 
745 			},
746 		.len = 16
747 	},
748 	.cipher_iv = {
749 		.data = {
750 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
751 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
752 		},
753 		.len = 16
754 	},
755 	.auth_iv = {
756 		.data = {
757 			0xB6, 0xAF, 0x61, 0x44, 0x98, 0x38, 0x70, 0x3A,
758 			0x36, 0xAF, 0x61, 0x44, 0x98, 0x38, 0xF0, 0x3A
759 		},
760 		.len = 16
761 	},
762 	.plaintext = {
763 		.data = {
764 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
765 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
766 			0x06, 0xC3, 0x52, 0x5B, 0x98, 0x07, 0xE4, 0x67,
767 			0xE2, 0xD8, 0xFF, 0x58, 0x05, 0xF5, 0x13, 0x22,
768 		},
769 		.len = 32 << 3
770 	},
771 	.ciphertext = {
772 		.data = {
773 			0x5A, 0x5A, 0xCF, 0xCF, 0x3D, 0x11, 0xBF, 0xD9,
774 			0xC3, 0x7F, 0x7C, 0xA8, 0x1A, 0x9F, 0x9F, 0x34,
775 			0x99, 0xF7, 0x13, 0x2D, 0x22, 0xDC, 0xF5, 0x5B,
776 			0x3F, 0x49, 0x70, 0x63, 0x26, 0x6C, 0x4E, 0x8E
777 		},
778 		.len = 32 << 3
779 	},
780 	.cipher = {
781 		.len_bits = 30 << 3,
782 		.offset_bits = 2 << 3
783 	},
784 	.auth = {
785 		.len_bits = 26 << 3,
786 		.offset_bits = 2 << 3
787 	},
788 	.digest = {
789 		.data = {
790 			0x26, 0x6C, 0x4E, 0x8E
791 		},
792 		.len = 4,
793 		.offset_bytes = 28
794 	},
795 	.validDataLenInBits = {
796 		.len = 32 << 3
797 	},
798 	.validCipherLenInBits = {
799 		.len = 30 << 3
800 	},
801 	.validAuthLenInBits = {
802 		.len = 26 << 3
803 	},
804 };
805 
806 #endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */
807