]> git.proxmox.com Git - ceph.git/blame - ceph/src/spdk/dpdk/app/test/test_cryptodev_kasumi_test_vectors.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / dpdk / app / test / test_cryptodev_kasumi_test_vectors.h
CommitLineData
11fdf7f2
TL
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2016-2017 Intel Corporation
7c673cae
FG
3 */
4
5#ifndef TEST_CRYPTODEV_KASUMI_TEST_VECTORS_H_
6#define TEST_CRYPTODEV_KASUMI_TEST_VECTORS_H_
7
8struct kasumi_test_data {
9 struct {
10 uint8_t data[64];
f67539c2 11 unsigned int len;
7c673cae
FG
12 } key;
13
14 struct {
15 uint8_t data[64] __rte_aligned(16);
f67539c2 16 unsigned int len;
11fdf7f2 17 } cipher_iv;
7c673cae 18
11fdf7f2
TL
19 /*
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
23 */
7c673cae 24 struct {
11fdf7f2 25 uint8_t data[1024];
f67539c2 26 unsigned int len; /* length must be in Bits */
7c673cae
FG
27 } plaintext;
28
29 struct {
f67539c2 30 unsigned int len;
7c673cae
FG
31 } validDataLenInBits;
32
33 struct {
34 uint8_t data[1024];
f67539c2 35 unsigned int len; /* length must be in Bits */
7c673cae
FG
36 } ciphertext;
37
38 struct {
f67539c2 39 unsigned int len;
7c673cae
FG
40 } validCipherLenInBits;
41
42 struct {
11fdf7f2
TL
43 unsigned int len;
44 } validCipherOffsetInBits;
7c673cae
FG
45
46 /* Actual length of data to be hashed */
47 struct {
f67539c2 48 unsigned int len;
7c673cae
FG
49 } validAuthLenInBits;
50
7c673cae
FG
51 struct {
52 uint8_t data[64];
f67539c2
TL
53 unsigned int len;
54 unsigned int offset_bytes; /* offset must be in Bytes */
7c673cae
FG
55 } digest;
56
57};
58
59struct kasumi_test_data kasumi_test_case_1 = {
60 .key = {
61 .data = {
62 0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
63 0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
64 },
65 .len = 16
66 },
11fdf7f2 67 .cipher_iv = {
7c673cae
FG
68 .data = {
69 0x72, 0xA4, 0xF2, 0x0F, 0x64, 0x00, 0x00, 0x00
70 },
71 .len = 8
72 },
73 .plaintext = {
74 .data = {
75 0x7E, 0xC6, 0x12, 0x72, 0x74, 0x3B, 0xF1, 0x61,
76 0x47, 0x26, 0x44, 0x6A, 0x6C, 0x38, 0xCE, 0xD1,
77 0x66, 0xF6, 0xCA, 0x76, 0xEB, 0x54, 0x30, 0x04,
78 0x42, 0x86, 0x34, 0x6C, 0xEF, 0x13, 0x0F, 0x92,
79 0x92, 0x2B, 0x03, 0x45, 0x0D, 0x3A, 0x99, 0x75,
80 0xE5, 0xBD, 0x2E, 0xA0, 0xEB, 0x55, 0xAD, 0x8E,
81 0x1B, 0x19, 0x9E, 0x3E, 0xC4, 0x31, 0x60, 0x20,
82 0xE9, 0xA1, 0xB2, 0x85, 0xE7, 0x62, 0x79, 0x53,
83 0x59, 0xB7, 0xBD, 0xFD, 0x39, 0xBE, 0xF4, 0xB2,
84 0x48, 0x45, 0x83, 0xD5, 0xAF, 0xE0, 0x82, 0xAE,
85 0xE6, 0x38, 0xBF, 0x5F, 0xD5, 0xA6, 0x06, 0x19,
86 0x39, 0x01, 0xA0, 0x8F, 0x4A, 0xB4, 0x1A, 0xAB,
87 0x9B, 0x13, 0x48, 0x80
88 },
89 .len = 800
90 },
91 .ciphertext = {
92 .data = {
93 0xD1, 0xE2, 0xDE, 0x70, 0xEE, 0xF8, 0x6C, 0x69,
94 0x64, 0xFB, 0x54, 0x2B, 0xC2, 0xD4, 0x60, 0xAA,
95 0xBF, 0xAA, 0x10, 0xA4, 0xA0, 0x93, 0x26, 0x2B,
96 0x7D, 0x19, 0x9E, 0x70, 0x6F, 0xC2, 0xD4, 0x89,
97 0x15, 0x53, 0x29, 0x69, 0x10, 0xF3, 0xA9, 0x73,
98 0x01, 0x26, 0x82, 0xE4, 0x1C, 0x4E, 0x2B, 0x02,
99 0xBE, 0x20, 0x17, 0xB7, 0x25, 0x3B, 0xBF, 0x93,
100 0x09, 0xDE, 0x58, 0x19, 0xCB, 0x42, 0xE8, 0x19,
101 0x56, 0xF4, 0xC9, 0x9B, 0xC9, 0x76, 0x5C, 0xAF,
102 0x53, 0xB1, 0xD0, 0xBB, 0x82, 0x79, 0x82, 0x6A,
103 0xDB, 0xBC, 0x55, 0x22, 0xE9, 0x15, 0xC1, 0x20,
104 0xA6, 0x18, 0xA5, 0xA7, 0xF5, 0xE8, 0x97, 0x08,
105 0x93, 0x39, 0x65, 0x0F
106 },
107 .len = 800
108 },
109 .validCipherLenInBits = {
110 .len = 798
111 },
11fdf7f2
TL
112 .validCipherOffsetInBits = {
113 .len = 0
114 }
7c673cae
FG
115};
116
117struct kasumi_test_data kasumi_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 },
11fdf7f2 125 .cipher_iv = {
7c673cae
FG
126 .data = {
127 0xE2, 0x8B, 0xCF, 0x7B, 0xC0, 0x00, 0x00, 0x00
128 },
129 .len = 8
130 },
131 .plaintext = {
132 .data = {
133 0x10, 0x11, 0x12, 0x31, 0xE0, 0x60, 0x25, 0x3A,
134 0x43, 0xFD, 0x3F, 0x57, 0xE3, 0x76, 0x07, 0xAB,
135 0x28, 0x27, 0xB5, 0x99, 0xB6, 0xB1, 0xBB, 0xDA,
136 0x37, 0xA8, 0xAB, 0xCC, 0x5A, 0x8C, 0x55, 0x0D,
137 0x1B, 0xFB, 0x2F, 0x49, 0x46, 0x24, 0xFB, 0x50,
138 0x36, 0x7F, 0xA3, 0x6C, 0xE3, 0xBC, 0x68, 0xF1,
139 0x1C, 0xF9, 0x3B, 0x15, 0x10, 0x37, 0x6B, 0x02,
140 0x13, 0x0F, 0x81, 0x2A, 0x9F, 0xA1, 0x69, 0xD8
141 },
142 .len = 512
143 },
144 .ciphertext = {
145 .data = {
146 0x3D, 0xEA, 0xCC, 0x7C, 0x15, 0x82, 0x1C, 0xAA,
147 0x89, 0xEE, 0xCA, 0xDE, 0x9B, 0x5B, 0xD3, 0x61,
148 0x4B, 0xD0, 0xC8, 0x41, 0x9D, 0x71, 0x03, 0x85,
149 0xDD, 0xBE, 0x58, 0x49, 0xEF, 0x1B, 0xAC, 0x5A,
150 0xE8, 0xB1, 0x4A, 0x5B, 0x0A, 0x67, 0x41, 0x52,
151 0x1E, 0xB4, 0xE0, 0x0B, 0xB9, 0xEC, 0xF3, 0xE9,
152 0xF7, 0xCC, 0xB9, 0xCA, 0xE7, 0x41, 0x52, 0xD7,
153 0xF4, 0xE2, 0xA0, 0x34, 0xB6, 0xEA, 0x00, 0xEC
154 },
155 .len = 512
156 },
157 .validCipherLenInBits = {
158 .len = 510
159 },
11fdf7f2
TL
160 .validCipherOffsetInBits = {
161 .len = 0
7c673cae
FG
162 }
163};
164
165struct kasumi_test_data kasumi_test_case_3 = {
166 .key = {
167 .data = {
168 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
169 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
170 },
171 .len = 16
172 },
11fdf7f2 173 .cipher_iv = {
7c673cae
FG
174 .data = {
175 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
176 },
177 .len = 8
178 },
7c673cae
FG
179 .plaintext = {
180 .data = {
11fdf7f2 181 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
7c673cae
FG
182 0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
183 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8, 0xC0
184 },
11fdf7f2 185 .len = 192
7c673cae
FG
186 },
187 .ciphertext = {
188 .data = {
11fdf7f2 189 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
7c673cae 190 0x9B, 0xC9, 0x2C, 0xA8, 0x03, 0xC6, 0x7B, 0x28,
11fdf7f2 191 0xA1, 0x1A, 0x4B, 0xEE, 0x5A, 0x0C, 0x25, 0xC0
7c673cae 192 },
11fdf7f2 193 .len = 192
7c673cae
FG
194 },
195 .validDataLenInBits = {
11fdf7f2 196 .len = 192
7c673cae
FG
197 },
198 .validCipherLenInBits = {
199 .len = 120
200 },
7c673cae 201 .validAuthLenInBits = {
11fdf7f2 202 .len = 192
7c673cae 203 },
11fdf7f2 204 .validCipherOffsetInBits = {
7c673cae
FG
205 .len = 64
206 },
207 .digest = {
208 .data = {0x87, 0x5F, 0xE4, 0x89},
f67539c2
TL
209 .len = 4,
210 .offset_bytes = 0
7c673cae
FG
211 }
212};
213
214struct kasumi_test_data kasumi_test_case_4 = {
215 .key = {
216 .data = {
217 0xD3, 0xC5, 0xD5, 0x92, 0x32, 0x7F, 0xB1, 0x1C,
218 0x40, 0x35, 0xC6, 0x68, 0x0A, 0xF8, 0xC6, 0xD1
219 },
220 .len = 16
221 },
11fdf7f2 222 .cipher_iv = {
7c673cae
FG
223 .data = {
224 0x39, 0x8A, 0x59, 0xB4, 0x2C, 0x00, 0x00, 0x00,
225 },
226 .len = 8
227 },
228 .plaintext = {
229 .data = {
230 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB, 0x1A,
231 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D, 0x80,
232 0x8C, 0xE3, 0x3E, 0x2C, 0xC3, 0xC0, 0xB5, 0xFC,
233 0x1F, 0x3D, 0xE8, 0xA6, 0xDC, 0x66, 0xB1, 0xF0
234 },
235 .len = 256
236 },
237 .ciphertext = {
238 .data = {
239 0x5B, 0xB9, 0x43, 0x1B, 0xB1, 0xE9, 0x8B, 0xD1,
240 0x1B, 0x93, 0xDB, 0x7C, 0x3D, 0x45, 0x13, 0x65,
241 0x59, 0xBB, 0x86, 0xA2, 0x95, 0xAA, 0x20, 0x4E,
242 0xCB, 0xEB, 0xF6, 0xF7, 0xA5, 0x10, 0x15, 0x10
243 },
244 .len = 256
245 },
246 .validCipherLenInBits = {
247 .len = 253
248 },
11fdf7f2
TL
249 .validCipherOffsetInBits = {
250 .len = 0
7c673cae
FG
251 }
252};
253
254struct kasumi_test_data kasumi_test_case_5 = {
255 .key = {
256 .data = {
257 0x60, 0x90, 0xEA, 0xE0, 0x4C, 0x83, 0x70, 0x6E,
258 0xEC, 0xBF, 0x65, 0x2B, 0xE8, 0xE3, 0x65, 0x66
259 },
260 .len = 16
261 },
11fdf7f2 262 .cipher_iv = {
7c673cae
FG
263 .data = {
264 0x72, 0xA4, 0xF2, 0x0F, 0x48, 0x00, 0x00, 0x00
265 },
266 .len = 8
267 },
268 .plaintext = {
269 .data = {
270 0x40, 0x98, 0x1B, 0xA6, 0x82, 0x4C, 0x1B, 0xFB,
271 0x42, 0x86, 0xB2, 0x99, 0x78, 0x3D, 0xAF, 0x44,
272 0x2C, 0x09, 0x9F, 0x7A, 0xB0, 0xF5, 0x8D, 0x5C,
273 0x8E, 0x46, 0xB1, 0x04, 0xF0, 0x8F, 0x01, 0xB4,
274 0x1A, 0xB4, 0x85, 0x47, 0x20, 0x29, 0xB7, 0x1D,
275 0x36, 0xBD, 0x1A, 0x3D, 0x90, 0xDC, 0x3A, 0x41,
276 0xB4, 0x6D, 0x51, 0x67, 0x2A, 0xC4, 0xC9, 0x66,
277 0x3A, 0x2B, 0xE0, 0x63, 0xDA, 0x4B, 0xC8, 0xD2,
278 0x80, 0x8C, 0xE3, 0x3E, 0x2C, 0xCC, 0xBF, 0xC6,
279 0x34, 0xE1, 0xB2, 0x59, 0x06, 0x08, 0x76, 0xA0,
280 0xFB, 0xB5, 0xA4, 0x37, 0xEB, 0xCC, 0x8D, 0x31,
281 0xC1, 0x9E, 0x44, 0x54, 0x31, 0x87, 0x45, 0xE3,
282 0x98, 0x76, 0x45, 0x98, 0x7A, 0x98, 0x6F, 0x2C,
283 0xB0
284 },
285 .len = 840
286 },
287 .ciphertext = {
288 .data = {
289 0xDD, 0xB3, 0x64, 0xDD, 0x2A, 0xAE, 0xC2, 0x4D,
290 0xFF, 0x29, 0x19, 0x57, 0xB7, 0x8B, 0xAD, 0x06,
291 0x3A, 0xC5, 0x79, 0xCD, 0x90, 0x41, 0xBA, 0xBE,
292 0x89, 0xFD, 0x19, 0x5C, 0x05, 0x78, 0xCB, 0x9F,
293 0xDE, 0x42, 0x17, 0x56, 0x61, 0x78, 0xD2, 0x02,
294 0x40, 0x20, 0x6D, 0x07, 0xCF, 0xA6, 0x19, 0xEC,
295 0x05, 0x9F, 0x63, 0x51, 0x44, 0x59, 0xFC, 0x10,
296 0xD4, 0x2D, 0xC9, 0x93, 0x4E, 0x56, 0xEB, 0xC0,
297 0xCB, 0xC6, 0x0D, 0x4D, 0x2D, 0xF1, 0x74, 0x77,
298 0x4C, 0xBD, 0xCD, 0x5D, 0xA4, 0xA3, 0x50, 0x31,
299 0x7A, 0x7F, 0x12, 0xE1, 0x94, 0x94, 0x71, 0xF8,
300 0xA2, 0x95, 0xF2, 0x72, 0xE6, 0x8F, 0xC0, 0x71,
301 0x59, 0xB0, 0x7D, 0x8E, 0x2D, 0x26, 0xE4, 0x59,
302 0x9E
303 },
304 .len = 840
305 },
306 .validCipherLenInBits = {
307 .len = 837
308 },
11fdf7f2
TL
309 .validCipherOffsetInBits = {
310 .len = 0
311 }
7c673cae
FG
312};
313
314struct kasumi_test_data kasumi_test_case_6 = {
315 .key = {
316 .data = {
317 0x5A, 0xCB, 0x1D, 0x64, 0x4C, 0x0D, 0x51, 0x20,
318 0x4E, 0xA5, 0xF1, 0x45, 0x10, 0x10, 0xD8, 0x52
319 },
320 .len = 16
321 },
11fdf7f2 322 .cipher_iv = {
7c673cae
FG
323 .data = {
324 0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
325 },
326 .len = 8
327 },
7c673cae
FG
328 .plaintext = {
329 .data = {
11fdf7f2 330 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
7c673cae
FG
331 0xAD, 0x9C, 0x44, 0x1F, 0x89, 0x0B, 0x38, 0xC4,
332 0x57, 0xA4, 0x9D, 0x42, 0x14, 0x07, 0xE8, 0xC0
333 },
11fdf7f2 334 .len = 192
7c673cae
FG
335 },
336 .ciphertext = {
337 .data = {
11fdf7f2 338 0x38, 0xA6, 0xF0, 0x56, 0x05, 0xD2, 0xEC, 0x49,
7c673cae 339 0x9B, 0xC9, 0x2C, 0xA8, 0x03, 0xC6, 0x7B, 0x28,
11fdf7f2 340 0xA1, 0x1A, 0x4B, 0xEE, 0x5A, 0x0C, 0x25, 0xC0
7c673cae 341 },
11fdf7f2 342 .len = 192
7c673cae
FG
343 },
344 .validDataLenInBits = {
11fdf7f2 345 .len = 192
7c673cae
FG
346 },
347 .validCipherLenInBits = {
348 .len = 120
349 },
11fdf7f2 350 .validCipherOffsetInBits = {
7c673cae
FG
351 .len = 64
352 },
353 .validAuthLenInBits = {
11fdf7f2 354 .len = 192
7c673cae
FG
355 },
356 .digest = {
357 .data = {0x0F, 0xD2, 0xAA, 0xB5},
f67539c2
TL
358 .len = 4,
359 .offset_bytes = 0
360 }
361};
362
363struct kasumi_test_data kasumi_auth_cipher_test_case_2 = {
364 .key = {
365 .data = {
366 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
367 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10
368 },
369 .len = 16
370 },
371 .cipher_iv = {
372 .data = {
373 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
374 },
375 .len = 8
376 },
377 .plaintext = {
378 .data = {
379 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
380 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
381 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
382 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
383 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
384 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
385 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
386 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
387 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
388 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
389 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
390 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
391 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
392 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
393 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
394 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A
395 },
396 .len = 128 << 3
397 },
398 .ciphertext = {
399 .data = {
400 0x5A, 0x5A, 0xFA, 0xC6, 0xA9, 0x09, 0x91, 0x74,
401 0x35, 0xAA, 0x85, 0xB0, 0xE0, 0x07, 0x78, 0xDA,
402 0x05, 0x88, 0x4E, 0x8D, 0xEC, 0x41, 0xF3, 0xBC,
403 0x0D, 0x9F, 0xE3, 0xEF, 0x8E, 0x33, 0x22, 0xF3,
404 0x15, 0x4B, 0x12, 0xC2, 0x22, 0x12, 0xD6, 0x46,
405 0xD7, 0x27, 0x20, 0x1D, 0x50, 0x60, 0x9D, 0x42,
406 0xF6, 0x73, 0xF5, 0x28, 0x88, 0xBE, 0x60, 0xEC,
407 0x9C, 0x18, 0x81, 0xC4, 0x0A, 0xF4, 0xD5, 0x7A,
408 0xB5, 0x3F, 0x1A, 0x79, 0xAB, 0x79, 0xDB, 0x24,
409 0xF9, 0x6E, 0x86, 0x78, 0x10, 0x19, 0xAE, 0xD8,
410 0xB2, 0xCA, 0x32, 0x8D, 0xD8, 0x28, 0x8B, 0x2F,
411 0x5B, 0x3C, 0xE3, 0x7D, 0xD3, 0x70, 0x11, 0xDE,
412 0x2C, 0xDC, 0xC1, 0xC6, 0xB6, 0xFD, 0xF3, 0x7D,
413 0x38, 0x97, 0x8B, 0x81, 0x02, 0x88, 0x62, 0x3C,
414 0x1E, 0x1A, 0x93, 0x21, 0xE3, 0x6D, 0xD7, 0x20,
415 0x80, 0xA8, 0xDA, 0x18, 0x8F, 0x58, 0x0F, 0x4E
416 },
417 .len = 128 << 3
418 },
419 .validDataLenInBits = {
420 .len = 128 << 3
421 },
422 .validCipherLenInBits = {
423 .len = 126 << 3
424 },
425 .validAuthLenInBits = {
426 .len = 124 << 3
427 },
428 .validCipherOffsetInBits = {
429 .len = 2 << 3
430 },
431 .digest = {
432 .data = {0x8F, 0x58, 0x0F, 0x4E},
433 .len = 4,
434 .offset_bytes = 124
7c673cae
FG
435 }
436};
7c673cae 437#endif /* TEST_CRYPTODEV_KASUMI_TEST_VECTORS_H_ */