New upstream version 18.02
[deb_dpdk.git] / test / test / test_cryptodev_snow3g_test_vectors.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2015-2017 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 len;
49         } digest;
50 };
51 struct snow3g_test_data snow3g_test_case_1 = {
52         .key = {
53                 .data = {
54                         0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
55                         0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
56                 },
57                 .len = 16
58         },
59         .cipher_iv = {
60                 .data = {
61                         0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
62                         0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
63                 },
64                 .len = 16
65         },
66         .plaintext = {
67                 .data = {
68                         0x7E, 0xC6, 0x12, 0x72, 0x74, 0x3B, 0xF1, 0x61,
69                         0x47, 0x26, 0x44, 0x6A, 0x6C, 0x38, 0xCE, 0xD1,
70                         0x66, 0xF6, 0xCA, 0x76, 0xEB, 0x54, 0x30, 0x04,
71                         0x42, 0x86, 0x34, 0x6C, 0xEF, 0x13, 0x0F, 0x92,
72                         0x92, 0x2B, 0x03, 0x45, 0x0D, 0x3A, 0x99, 0x75,
73                         0xE5, 0xBD, 0x2E, 0xA0, 0xEB, 0x55, 0xAD, 0x8E,
74                         0x1B, 0x19, 0x9E, 0x3E, 0xC4, 0x31, 0x60, 0x20,
75                         0xE9, 0xA1, 0xB2, 0x85, 0xE7, 0x62, 0x79, 0x53,
76                         0x59, 0xB7, 0xBD, 0xFD, 0x39, 0xBE, 0xF4, 0xB2,
77                         0x48, 0x45, 0x83, 0xD5, 0xAF, 0xE0, 0x82, 0xAE,
78                         0xE6, 0x38, 0xBF, 0x5F, 0xD5, 0xA6, 0x06, 0x19,
79                         0x39, 0x01, 0xA0, 0x8F, 0x4A, 0xB4, 0x1A, 0xAB,
80                         0x9B, 0x13, 0x48, 0x80
81                 },
82                 .len = 800
83         },
84         .ciphertext = {
85                 .data = {
86                         0x8C, 0xEB, 0xA6, 0x29, 0x43, 0xDC, 0xED, 0x3A,
87                         0x09, 0x90, 0xB0, 0x6E, 0xA1, 0xB0, 0xA2, 0xC4,
88                         0xFB, 0x3C, 0xED, 0xC7, 0x1B, 0x36, 0x9F, 0x42,
89                         0xBA, 0x64, 0xC1, 0xEB, 0x66, 0x65, 0xE7, 0x2A,
90                         0xA1, 0xC9, 0xBB, 0x0D, 0xEA, 0xA2, 0x0F, 0xE8,
91                         0x60, 0x58, 0xB8, 0xBA, 0xEE, 0x2C, 0x2E, 0x7F,
92                         0x0B, 0xEC, 0xCE, 0x48, 0xB5, 0x29, 0x32, 0xA5,
93                         0x3C, 0x9D, 0x5F, 0x93, 0x1A, 0x3A, 0x7C, 0x53,
94                         0x22, 0x59, 0xAF, 0x43, 0x25, 0xE2, 0xA6, 0x5E,
95                         0x30, 0x84, 0xAD, 0x5F, 0x6A, 0x51, 0x3B, 0x7B,
96                         0xDD, 0xC1, 0xB6, 0x5F, 0x0A, 0xA0, 0xD9, 0x7A,
97                         0x05, 0x3D, 0xB5, 0x5A, 0x88, 0xC4, 0xC4, 0xF9,
98                         0x60, 0x5E, 0x41, 0x40
99                 },
100                 .len = 800
101         },
102         .validDataLenInBits = {
103                 .len = 798
104         },
105         .validCipherLenInBits = {
106                 .len = 800
107         },
108         .auth_iv = {
109                 .data = {
110                          0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00,
111                          0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
112                 },
113                 .len = 16
114         }
115 };
116
117 struct snow3g_test_data snow3g_test_case_2 = {
118         .key = {
119                 .data = {
120                         0xEF, 0xA8, 0xB2, 0x22, 0x9E, 0x72, 0x0C, 0x2A,
121                         0x7C, 0x36, 0xEA, 0x55, 0xE9, 0x60, 0x56, 0x95
122                 },
123                 .len = 16
124         },
125         .cipher_iv = {
126                .data = {
127                         0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
128                         0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
129                 },
130                .len = 16
131         },
132         .plaintext = {
133                 .data = {
134                         0x10, 0x11, 0x12, 0x31, 0xE0, 0x60, 0x25, 0x3A,
135                         0x43, 0xFD, 0x3F, 0x57, 0xE3, 0x76, 0x07, 0xAB,
136                         0x28, 0x27, 0xB5, 0x99, 0xB6, 0xB1, 0xBB, 0xDA,
137                         0x37, 0xA8, 0xAB, 0xCC, 0x5A, 0x8C, 0x55, 0x0D,
138                         0x1B, 0xFB, 0x2F, 0x49, 0x46, 0x24, 0xFB, 0x50,
139                         0x36, 0x7F, 0xA3, 0x6C, 0xE3, 0xBC, 0x68, 0xF1,
140                         0x1C, 0xF9, 0x3B, 0x15, 0x10, 0x37, 0x6B, 0x02,
141                         0x13, 0x0F, 0x81, 0x2A, 0x9F, 0xA1, 0x69, 0xD8
142                 },
143                 .len = 512
144         },
145         .ciphertext = {
146                 .data = {
147                                 0xE0, 0xDA, 0x15, 0xCA, 0x8E, 0x25, 0x54, 0xF5,
148                                 0xE5, 0x6C, 0x94, 0x68, 0xDC, 0x6C, 0x7C, 0x12,
149                                 0x9C, 0x56, 0x8A, 0xA5, 0x03, 0x23, 0x17, 0xE0,
150                                 0x4E, 0x07, 0x29, 0x64, 0x6C, 0xAB, 0xEF, 0xA6,
151                                 0x89, 0x86, 0x4C, 0x41, 0x0F, 0x24, 0xF9, 0x19,
152                                 0xE6, 0x1E, 0x3D, 0xFD, 0xFA, 0xD7, 0x7E, 0x56,
153                                 0x0D, 0xB0, 0xA9, 0xCD, 0x36, 0xC3, 0x4A, 0xE4,
154                                 0x18, 0x14, 0x90, 0xB2, 0x9F, 0x5F, 0xA2, 0xFC
155                 },
156                 .len = 512
157         },
158         .validDataLenInBits = {
159                 .len = 510
160         },
161         .validCipherLenInBits = {
162                 .len = 512
163         },
164         .auth_iv = {
165                 .data = {
166                          0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00,
167                          0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
168                 },
169                 .len = 16
170         }
171 };
172
173 struct snow3g_test_data snow3g_test_case_3 = {
174         .key = {
175                 .data = {
176                          0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
177                          0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
178                 },
179                 .len = 16
180         },
181         .cipher_iv = {
182                 .data = {
183                         0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
184                         0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
185                 },
186                 .len = 16
187         },
188         .plaintext = {
189                 .data = {
190                         0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
191                         0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8
192                 },
193                 .len = 120
194         },
195         .ciphertext = {
196                 .data = {
197                         0xBA, 0x0F, 0x31, 0x30, 0x03, 0x34, 0xC5, 0x6B,
198                         0x52, 0xA7, 0x49, 0x7C, 0xBA, 0xC0, 0x46
199                 },
200                 .len = 120
201         },
202         .validDataLenInBits = {
203                 .len = 120
204         },
205         .validCipherLenInBits = {
206                 .len = 120
207         },
208         .auth_iv = {
209                 .data = {
210                         0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
211                         0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
212                 },
213                 .len = 16
214         },
215         .digest = {
216                 .data = {0xE8, 0x60, 0x5A, 0x3E},
217                 .len  = 4
218         },
219         .validAuthLenInBits = {
220                 .len = 120
221         }
222 };
223
224 struct snow3g_test_data snow3g_test_case_4 = {
225         .key = {
226                 .data = {
227                         0xD3, 0xC5, 0xD5, 0x92, 0x32, 0x7F, 0xB1, 0x1C,
228                         0x40, 0x35, 0xC6, 0x68, 0x0A, 0xF8, 0xC6, 0xD1
229                 },
230                 .len = 16
231         },
232         .cipher_iv = {
233                 .data = {
234                         0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00,
235                         0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00
236                 },
237                 .len = 16
238         },
239         .plaintext = {
240                 .data = {
241                         0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB, 0x1A,
242                         0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D, 0x80,
243                         0x8C, 0xE3, 0x3E, 0x2C, 0xC3, 0xC0, 0xB5, 0xFC,
244                         0x1F, 0x3D, 0xE8, 0xA6, 0xDC, 0x66, 0xB1, 0xF0
245                 },
246                 .len = 256
247         },
248         .ciphertext = {
249                 .data = {
250                         0x98, 0x9B, 0x71, 0x9C, 0xDC, 0x33, 0xCE, 0xB7,
251                         0xCF, 0x27, 0x6A, 0x52, 0x82, 0x7C, 0xEF, 0x94,
252                         0xA5, 0x6C, 0x40, 0xC0, 0xAB, 0x9D, 0x81, 0xF7,
253                         0xA2, 0xA9, 0xBA, 0xC6, 0x0E, 0x11, 0xC4, 0xB0
254                 },
255                 .len = 256
256         },
257         .validDataLenInBits = {
258                 .len = 253
259         },
260         .validCipherLenInBits = {
261                 .len = 256
262         }
263 };
264
265 struct snow3g_test_data snow3g_test_case_5 = {
266         .key = {
267                 .data = {
268                         0x60, 0x90, 0xEA, 0xE0, 0x4C, 0x83, 0x70, 0x6E,
269                         0xEC, 0xBF, 0x65, 0x2B, 0xE8, 0xE3, 0x65, 0x66
270                 },
271                 .len = 16
272         },
273         .cipher_iv = {
274                 .data = {
275                         0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00,
276                         0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
277                 },
278                 .len = 16},
279         .plaintext = {
280                 .data = {
281                         0x40, 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB,
282                         0x42, 0x86, 0xB2, 0x99, 0x78, 0x3D, 0xAF, 0x44,
283                         0x2C, 0x09, 0x9F, 0x7A, 0xB0, 0xF5, 0x8D, 0x5C,
284                         0x8E, 0x46, 0xB1, 0x04, 0xF0, 0x8F, 0x01, 0xB4,
285                         0x1A, 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D,
286                         0x36, 0xBD, 0x1A, 0x3D, 0x90, 0xDC, 0x3A, 0x41,
287                         0xB4, 0x6D, 0x51, 0x67, 0x2A, 0xC4, 0xC9, 0x66,
288                         0x3A, 0x2B, 0xE0, 0x63, 0xDA, 0x4B, 0xC8, 0xD2,
289                         0x80, 0x8C, 0xE3, 0x3E, 0x2C, 0xCC, 0xBF, 0xC6,
290                         0x34, 0xE1, 0xB2, 0x59, 0x06, 0x08, 0x76, 0xA0,
291                         0xFB, 0xB5, 0xA4, 0x37, 0xEB, 0xCC, 0x8D, 0x31,
292                         0xC1, 0x9E, 0x44, 0x54, 0x31, 0x87, 0x45, 0xE3,
293                         0x98, 0x76, 0x45, 0x98, 0x7A, 0x98, 0x6F, 0x2C,
294                         0xB0
295                 },
296                 .len = 840
297         },
298         .ciphertext = {
299                 .data = {
300                         0x58, 0x92, 0xBB, 0xA8, 0x8B, 0xBB, 0xCA, 0xAE,
301                         0xAE, 0x76, 0x9A, 0xA0, 0x6B, 0x68, 0x3D, 0x3A,
302                         0x17, 0xCC, 0x04, 0xA3, 0x69, 0x88, 0x16, 0x97,
303                         0x43, 0x5E, 0x44, 0xFE, 0xD5, 0xFF, 0x9A, 0xF5,
304                         0x7B, 0x9E, 0x89, 0x0D, 0x4D, 0x5C, 0x64, 0x70,
305                         0x98, 0x85, 0xD4, 0x8A, 0xE4, 0x06, 0x90, 0xEC,
306                         0x04, 0x3B, 0xAA, 0xE9, 0x70, 0x57, 0x96, 0xE4,
307                         0xA9, 0xFF, 0x5A, 0x4B, 0x8D, 0x8B, 0x36, 0xD7,
308                         0xF3, 0xFE, 0x57, 0xCC, 0x6C, 0xFD, 0x6C, 0xD0,
309                         0x05, 0xCD, 0x38, 0x52, 0xA8, 0x5E, 0x94, 0xCE,
310                         0x6B, 0xCD, 0x90, 0xD0, 0xD0, 0x78, 0x39, 0xCE,
311                         0x09, 0x73, 0x35, 0x44, 0xCA, 0x8E, 0x35, 0x08,
312                         0x43, 0x24, 0x85, 0x50, 0x92, 0x2A, 0xC1, 0x28,
313                         0x18
314                 },
315                 .len = 840
316         },
317         .validDataLenInBits = {
318                 .len = 837
319         },
320         .validCipherLenInBits = {
321                 .len = 840
322         },
323 };
324 struct snow3g_test_data snow3g_test_case_6 = {
325         .key = {
326                 .data = {
327                         0xC7, 0x36, 0xC6, 0xAA, 0xB2, 0x2B, 0xFF, 0xF9,
328                         0x1E, 0x26, 0x98, 0xD2, 0xE2, 0x2A, 0xD5, 0x7E
329                 },
330                 .len = 16
331         },
332         .cipher_iv = {
333                 .data = {
334                         0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
335                         0x94, 0x79, 0x3E, 0x41, 0x03, 0x97, 0x68, 0xFD
336                 },
337                 .len = 16
338         },
339         .auth_iv = {
340                 .data = {
341                         0x14, 0x79, 0x3E, 0x41, 0x03, 0x97, 0xE8, 0xFD,
342                         0x94, 0x79, 0x3E, 0x41, 0x03, 0x97, 0x68, 0xFD
343                 },
344                 .len = 16
345         },
346         .plaintext = {
347                 .data = {
348                         0xD0, 0xA7, 0xD4, 0x63, 0xDF, 0x9F, 0xB2, 0xB2,
349                         0x78, 0x83, 0x3F, 0xA0, 0x2E, 0x23, 0x5A, 0xA1,
350                         0x72, 0xBD, 0x97, 0x0C, 0x14, 0x73, 0xE1, 0x29,
351                         0x07, 0xFB, 0x64, 0x8B, 0x65, 0x99, 0xAA, 0xA0,
352                         0xB2, 0x4A, 0x03, 0x86, 0x65, 0x42, 0x2B, 0x20,
353                         0xA4, 0x99, 0x27, 0x6A, 0x50, 0x42, 0x70, 0x09
354                 },
355                 .len = 384
356         },
357         .ciphertext = {
358            .data = {
359                         0x95, 0x2E, 0x5A, 0xE1, 0x50, 0xB8, 0x59, 0x2A,
360                         0x9B, 0xA0, 0x38, 0xA9, 0x8E, 0x2F, 0xED, 0xAB,
361                         0xFD, 0xC8, 0x3B, 0x47, 0x46, 0x0B, 0x50, 0x16,
362                         0xEC, 0x88, 0x45, 0xB6, 0x05, 0xC7, 0x54, 0xF8,
363                         0xBD, 0x91, 0xAA, 0xB6, 0xA4, 0xDC, 0x64, 0xB4,
364                         0xCB, 0xEB, 0x97, 0x06, 0x4C, 0xF7, 0x02, 0x3D
365                 },
366                 .len = 384
367         },
368         .digest = {
369                 .data = {0x38, 0xB5, 0x54, 0xC0 },
370                 .len  = 4
371         },
372         .validDataLenInBits = {
373                 .len = 384
374         },
375         .validCipherLenInBits = {
376                 .len = 384
377         },
378         .validAuthLenInBits = {
379                 .len = 384
380         },
381 };
382
383 #endif /* TEST_CRYPTODEV_SNOW3G_TEST_VECTORS_H_ */