sleep in control plane thread
[dpdk.git] / app / test / test_cryptodev_snow3g_test_vectors.h
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                 uint8_t data[64] __rte_aligned(16);
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                         0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
363                         0x94, 0x79, 0x3E, 0x41, 0x03, 0x97, 0x68, 0xFD
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                         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
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                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
432                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
433                 },
434                 .len = 16
435         },
436         .auth_iv = {
437                 .data = {
438                          0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
439                          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
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,  0xF1,  0x9E,  0x2B,  0x6F,
461                 },
462                 .len = 128 << 3
463         },
464         .ciphertext = {
465                 .data = {
466                         0x5A,  0x5A,  0xE4,  0xAD,  0x29,  0xA2,  0x6A,  0xA6,
467                         0x20,  0x1D,  0xCD,  0x08,  0x50,  0xD6,  0xE6,  0x47,
468                         0xBC,  0x88,  0x08,  0x01,  0x17,  0xFA,  0x47,  0x5B,
469                         0x90,  0x40,  0xBA,  0x0C,  0xB5,  0x58,  0xF3,  0x0C,
470                         0xA0,  0xD4,  0x98,  0x83,  0x1B,  0xCE,  0x54,  0xE3,
471                         0x29,  0x00,  0x3C,  0xA4,  0xAD,  0x74,  0xEE,  0x05,
472                         0xA3,  0x6C,  0xD4,  0xAC,  0xC6,  0x30,  0x33,  0xC9,
473                         0x37,  0x57,  0x41,  0x9B,  0xD4,  0x73,  0xB9,  0x77,
474                         0x70,  0x8B,  0x63,  0xDD,  0x22,  0xB8,  0xE1,  0x85,
475                         0xB2,  0x92,  0x7C,  0x37,  0xD3,  0x2E,  0xD9,  0xF4,
476                         0x4A,  0x69,  0x25,  0x30,  0xE3,  0x5B,  0x8B,  0xF6,
477                         0x0F,  0xDE,  0x0B,  0x92,  0xD5,  0x25,  0x52,  0x6D,
478                         0x26,  0xEB,  0x2F,  0x8A,  0x3B,  0x8B,  0x38,  0xE2,
479                         0x48,  0xD3,  0x4A,  0x98,  0xF7,  0x3A,  0xC2,  0x46,
480                         0x69,  0x8D,  0x73,  0x3E,  0x57,  0x88,  0x2C,  0x80,
481                         0xF0,  0xF2,  0x75,  0xB8,  0x7D,  0x27,  0xC6,  0xDA,
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                         0x7D, 0x27, 0xC6, 0xDA
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                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
524                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
525                 },
526                 .len = 16
527         },
528         .auth_iv = {
529                 .data = {
530                          0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
531                          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
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,  0xE4,  0xAD,  0x29,  0xA2,  0x6A,  0xA6,
560                         0x20,  0x1D,  0xCD,  0x08,  0x50,  0xD6,  0xE6,  0x47,
561                         0xBC,  0x88,  0x08,  0x01,  0x17,  0xFA,  0x47,  0x5B,
562                         0x90,  0x40,  0xBA,  0x0C,  0xB5,  0x58,  0xF3,  0x0C,
563                         0xA0,  0xD4,  0x98,  0x83,  0x1B,  0xCE,  0x54,  0xE3,
564                         0x29,  0x00,  0x3C,  0xA4,  0xAD,  0x74,  0xEE,  0x05,
565                         0xA3,  0x6C,  0xD4,  0xAC,  0xC6,  0x30,  0x33,  0xC9,
566                         0x37,  0x57,  0x41,  0x9B,  0xD4,  0x73,  0xB9,  0x77,
567                         0x70,  0x8B,  0x63,  0xDD,  0x22,  0xB8,  0xE1,  0x85,
568                         0xB2,  0x92,  0x7C,  0x37,  0xD3,  0x2E,  0xD9,  0xF4,
569                         0x4A,  0x69,  0x25,  0x30,  0xE3,  0x5B,  0x8B,  0xF6,
570                         0x0F,  0xDE,  0x0B,  0x92,  0xD5,  0x25,  0x52,  0x6D,
571                         0x26,  0xEB,  0x2F,  0x8A,  0x3B,  0x8B,  0x38,  0xE2,
572                         0x48,  0xD3,  0x4A,  0x98,  0xF7,  0x3A,  0xC2,  0x46,
573                         0x69,  0x8D,  0x73,  0x3E,  0x57,  0x88,  0x2C,  0x80,
574                         0xF0,  0xF2,  0x75,  0xB8,  0x7D,  0x27,  0xC6,  0xDA,
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                         0x7D, 0x27, 0xC6, 0xDA
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                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
617                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
618                 },
619                 .len = 16
620         },
621         .auth_iv = {
622                 .data = {
623                          0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
624                          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
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, 0xE4, 0xAD, 0x29, 0xA2, 0x6A, 0xA6,
640                         0x20, 0x1D, 0xCD, 0x08, 0x50, 0xD6, 0xE6, 0x47,
641                         0xBC, 0x88, 0x08, 0x01, 0x17, 0xFA, 0x47, 0x5B,
642                         0x90, 0x40, 0xBA, 0x0C, 0xBA, 0x6D, 0x6A, 0x5E,
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                         0xBA, 0x6D, 0x6A, 0x5E
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                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
684                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
685                 },
686                 .len = 16
687         },
688         .auth_iv = {
689                 .data = {
690                          0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
691                          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
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, 0xE4, 0xAD,
708                         0x29, 0xA2, 0x6A, 0xA6, 0x20, 0x1D, 0xCD, 0x08,
709                         0x50, 0xD6, 0xE6, 0x47, 0xB3, 0xBD, 0xC3, 0x08
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                         0xB3, 0xBD, 0xC3, 0x08
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 #endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */