1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2016-2017 Intel Corporation
3  */
4 
5 #ifndef TEST_CRYPTODEV_ZUC_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_ZUC_TEST_VECTORS_H_
7 
8 struct wireless_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[2048];
21 		unsigned len; /* length must be in Bits */
22 	} plaintext;
23 
24 	struct {
25 		uint8_t data[2048];
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 int len;
39 	} validCipherOffsetInBits;
40 
41 
42 	struct {
43 		unsigned len;
44 	} validAuthLenInBits;
45 
46 	struct {
47 		uint8_t data[64];
48 		unsigned len;
49 	} auth_iv;
50 
51 	struct {
52 		uint8_t data[64];
53 		unsigned len;
54 		unsigned int offset_bytes; /* offset must be in Bytes */
55 	} digest;
56 };
57 static struct wireless_test_data zuc_test_case_cipher_193b = {
58 	.key = {
59 		.data = {
60 			0x17, 0x3D, 0x14, 0xBA, 0x50, 0x03, 0x73, 0x1D,
61 			0x7A, 0x60, 0x04, 0x94, 0x70, 0xF0, 0x0A, 0x29
62 		},
63 		.len = 16
64 	},
65 	.cipher_iv = {
66 		.data = {
67 			0x66, 0x03, 0x54, 0x92, 0x78, 0x00, 0x00, 0x00,
68 			0x66, 0x03, 0x54, 0x92, 0x78, 0x00, 0x00, 0x00
69 		},
70 		.len = 16
71 	},
72 	.plaintext = {
73 		.data = {
74 			0x6C, 0xF6, 0x53, 0x40, 0x73, 0x55, 0x52, 0xAB,
75 			0x0C, 0x97, 0x52, 0xFA, 0x6F, 0x90, 0x25, 0xFE,
76 			0x0B, 0xD6, 0x75, 0xD9, 0x00, 0x58, 0x75, 0xB2,
77 			0x00
78 		},
79 		.len = 200
80 	},
81 	.ciphertext = {
82 		.data = {
83 			0xA6, 0xC8, 0x5F, 0xC6, 0x6A, 0xFB, 0x85, 0x33,
84 			0xAA, 0xFC, 0x25, 0x18, 0xDF, 0xE7, 0x84, 0x94,
85 			0x0E, 0xE1, 0xE4, 0xB0, 0x30, 0x23, 0x8C, 0xC8,
86 			0x00
87 		},
88 		.len = 200
89 	},
90 	.validDataLenInBits = {
91 		.len = 193
92 	},
93 	.validCipherLenInBits = {
94 		.len = 193
95 	}
96 };
97 
98 static struct wireless_test_data zuc_test_case_cipher_800b = {
99 	.key = {
100 		.data = {
101 			0xE5, 0xBD, 0x3E, 0xA0, 0xEB, 0x55, 0xAD, 0xE8,
102 			0x66, 0xC6, 0xAC, 0x58, 0xBD, 0x54, 0x30, 0x2A
103 		},
104 		.len = 16
105 	},
106 	.cipher_iv = {
107 		.data = {
108 			0x00, 0x05, 0x68, 0x23, 0xC4, 0x00, 0x00, 0x00,
109 			0x00, 0x05, 0x68, 0x23, 0xC4, 0x00, 0x00, 0x00
110 		},
111 		.len = 16
112 	},
113 	.plaintext = {
114 		.data = {
115 			0x14, 0xA8, 0xEF, 0x69, 0x3D, 0x67, 0x85, 0x07,
116 			0xBB, 0xE7, 0x27, 0x0A, 0x7F, 0x67, 0xFF, 0x50,
117 			0x06, 0xC3, 0x52, 0x5B, 0x98, 0x07, 0xE4, 0x67,
118 			0xC4, 0xE5, 0x60, 0x00, 0xBA, 0x33, 0x8F, 0x5D,
119 			0x42, 0x95, 0x59, 0x03, 0x67, 0x51, 0x82, 0x22,
120 			0x46, 0xC8, 0x0D, 0x3B, 0x38, 0xF0, 0x7F, 0x4B,
121 			0xE2, 0xD8, 0xFF, 0x58, 0x05, 0xF5, 0x13, 0x22,
122 			0x29, 0xBD, 0xE9, 0x3B, 0xBB, 0xDC, 0xAF, 0x38,
123 			0x2B, 0xF1, 0xEE, 0x97, 0x2F, 0xBF, 0x99, 0x77,
124 			0xBA, 0xDA, 0x89, 0x45, 0x84, 0x7A, 0x2A, 0x6C,
125 			0x9A, 0xD3, 0x4A, 0x66, 0x75, 0x54, 0xE0, 0x4D,
126 			0x1F, 0x7F, 0xA2, 0xC3, 0x32, 0x41, 0xBD, 0x8F,
127 			0x01, 0xBA, 0x22, 0x0D
128 		},
129 		.len = 800
130 	},
131 	.ciphertext = {
132 		.data = {
133 			0x13, 0x1D, 0x43, 0xE0, 0xDE, 0xA1, 0xBE, 0x5C,
134 			0x5A, 0x1B, 0xFD, 0x97, 0x1D, 0x85, 0x2C, 0xBF,
135 			0x71, 0x2D, 0x7B, 0x4F, 0x57, 0x96, 0x1F, 0xEA,
136 			0x32, 0x08, 0xAF, 0xA8, 0xBC, 0xA4, 0x33, 0xF4,
137 			0x56, 0xAD, 0x09, 0xC7, 0x41, 0x7E, 0x58, 0xBC,
138 			0x69, 0xCF, 0x88, 0x66, 0xD1, 0x35, 0x3F, 0x74,
139 			0x86, 0x5E, 0x80, 0x78, 0x1D, 0x20, 0x2D, 0xFB,
140 			0x3E, 0xCF, 0xF7, 0xFC, 0xBC, 0x3B, 0x19, 0x0F,
141 			0xE8, 0x2A, 0x20, 0x4E, 0xD0, 0xE3, 0x50, 0xFC,
142 			0x0F, 0x6F, 0x26, 0x13, 0xB2, 0xF2, 0xBC, 0xA6,
143 			0xDF, 0x5A, 0x47, 0x3A, 0x57, 0xA4, 0xA0, 0x0D,
144 			0x98, 0x5E, 0xBA, 0xD8, 0x80, 0xD6, 0xF2, 0x38,
145 			0x64, 0xA0, 0x7B, 0x01
146 		},
147 		.len = 800
148 	},
149 	.validDataLenInBits = {
150 		.len = 800
151 	},
152 	.validCipherLenInBits = {
153 		.len = 800
154 	}
155 };
156 
157 static struct wireless_test_data zuc_test_case_cipher_1570b = {
158 	.key = {
159 		.data = {
160 			0xD4, 0x55, 0x2A, 0x8F, 0xD6, 0xE6, 0x1C, 0xC8,
161 			0x1A, 0x20, 0x09, 0x14, 0x1A, 0x29, 0xC1, 0x0B
162 		},
163 		.len = 16
164 	},
165 	.cipher_iv = {
166 		.data = {
167 			0x76, 0x45, 0x2E, 0xC1, 0x14, 0x00, 0x00, 0x00,
168 			0x76, 0x45, 0x2E, 0xC1, 0x14, 0x00, 0x00, 0x00
169 		},
170 		.len = 16
171 	},
172 	.plaintext = {
173 		.data = {
174 			0x38, 0xF0, 0x7F, 0x4B, 0xE2, 0xD8, 0xFF, 0x58,
175 			0x05, 0xF5, 0x13, 0x22, 0x29, 0xBD, 0xE9, 0x3B,
176 			0xBB, 0xDC, 0xAF, 0x38, 0x2B, 0xF1, 0xEE, 0x97,
177 			0x2F, 0xBF, 0x99, 0x77, 0xBA, 0xDA, 0x89, 0x45,
178 			0x84, 0x7A, 0x2A, 0x6C, 0x9A, 0xD3, 0x4A, 0x66,
179 			0x75, 0x54, 0xE0, 0x4D, 0x1F, 0x7F, 0xA2, 0xC3,
180 			0x32, 0x41, 0xBD, 0x8F, 0x01, 0xBA, 0x22, 0x0D,
181 			0x3C, 0xA4, 0xEC, 0x41, 0xE0, 0x74, 0x59, 0x5F,
182 			0x54, 0xAE, 0x2B, 0x45, 0x4F, 0xD9, 0x71, 0x43,
183 			0x20, 0x43, 0x60, 0x19, 0x65, 0xCC, 0xA8, 0x5C,
184 			0x24, 0x17, 0xED, 0x6C, 0xBE, 0xC3, 0xBA, 0xDA,
185 			0x84, 0xFC, 0x8A, 0x57, 0x9A, 0xEA, 0x78, 0x37,
186 			0xB0, 0x27, 0x11, 0x77, 0x24, 0x2A, 0x64, 0xDC,
187 			0x0A, 0x9D, 0xE7, 0x1A, 0x8E, 0xDE, 0xE8, 0x6C,
188 			0xA3, 0xD4, 0x7D, 0x03, 0x3D, 0x6B, 0xF5, 0x39,
189 			0x80, 0x4E, 0xCA, 0x86, 0xC5, 0x84, 0xA9, 0x05,
190 			0x2D, 0xE4, 0x6A, 0xD3, 0xFC, 0xED, 0x65, 0x54,
191 			0x3B, 0xD9, 0x02, 0x07, 0x37, 0x2B, 0x27, 0xAF,
192 			0xB7, 0x92, 0x34, 0xF5, 0xFF, 0x43, 0xEA, 0x87,
193 			0x08, 0x20, 0xE2, 0xC2, 0xB7, 0x8A, 0x8A, 0xAE,
194 			0x61, 0xCC, 0xE5, 0x2A, 0x05, 0x15, 0xE3, 0x48,
195 			0xD1, 0x96, 0x66, 0x4A, 0x34, 0x56, 0xB1, 0x82,
196 			0xA0, 0x7C, 0x40, 0x6E, 0x4A, 0x20, 0x79, 0x12,
197 			0x71, 0xCF, 0xED, 0xA1, 0x65, 0xD5, 0x35, 0xEC,
198 			0x5E, 0xA2, 0xD4, 0xDF, 0x40
199 		},
200 		.len = 1576
201 	},
202 	.ciphertext = {
203 		.data = {
204 			0x83, 0x83, 0xB0, 0x22, 0x9F, 0xCC, 0x0B, 0x9D,
205 			0x22, 0x95, 0xEC, 0x41, 0xC9, 0x77, 0xE9, 0xC2,
206 			0xBB, 0x72, 0xE2, 0x20, 0x37, 0x81, 0x41, 0xF9,
207 			0xC8, 0x31, 0x8F, 0x3A, 0x27, 0x0D, 0xFB, 0xCD,
208 			0xEE, 0x64, 0x11, 0xC2, 0xB3, 0x04, 0x4F, 0x17,
209 			0x6D, 0xC6, 0xE0, 0x0F, 0x89, 0x60, 0xF9, 0x7A,
210 			0xFA, 0xCD, 0x13, 0x1A, 0xD6, 0xA3, 0xB4, 0x9B,
211 			0x16, 0xB7, 0xBA, 0xBC, 0xF2, 0xA5, 0x09, 0xEB,
212 			0xB1, 0x6A, 0x75, 0xDC, 0xAB, 0x14, 0xFF, 0x27,
213 			0x5D, 0xBE, 0xEE, 0xA1, 0xA2, 0xB1, 0x55, 0xF9,
214 			0xD5, 0x2C, 0x26, 0x45, 0x2D, 0x01, 0x87, 0xC3,
215 			0x10, 0xA4, 0xEE, 0x55, 0xBE, 0xAA, 0x78, 0xAB,
216 			0x40, 0x24, 0x61, 0x5B, 0xA9, 0xF5, 0xD5, 0xAD,
217 			0xC7, 0x72, 0x8F, 0x73, 0x56, 0x06, 0x71, 0xF0,
218 			0x13, 0xE5, 0xE5, 0x50, 0x08, 0x5D, 0x32, 0x91,
219 			0xDF, 0x7D, 0x5F, 0xEC, 0xED, 0xDE, 0xD5, 0x59,
220 			0x64, 0x1B, 0x6C, 0x2F, 0x58, 0x52, 0x33, 0xBC,
221 			0x71, 0xE9, 0x60, 0x2B, 0xD2, 0x30, 0x58, 0x55,
222 			0xBB, 0xD2, 0x5F, 0xFA, 0x7F, 0x17, 0xEC, 0xBC,
223 			0x04, 0x2D, 0xAA, 0xE3, 0x8C, 0x1F, 0x57, 0xAD,
224 			0x8E, 0x8E, 0xBD, 0x37, 0x34, 0x6F, 0x71, 0xBE,
225 			0xFD, 0xBB, 0x74, 0x32, 0xE0, 0xE0, 0xBB, 0x2C,
226 			0xFC, 0x09, 0xBC, 0xD9, 0x65, 0x70, 0xCB, 0x0C,
227 			0x0C, 0x39, 0xDF, 0x5E, 0x29, 0x29, 0x4E, 0x82,
228 			0x70, 0x3A, 0x63, 0x7F, 0x80
229 		},
230 		.len = 1576
231 	},
232 	.validDataLenInBits = {
233 		.len = 1570
234 	},
235 	.validCipherLenInBits = {
236 		.len = 1570
237 	}
238 };
239 
240 static struct wireless_test_data zuc_test_case_cipher_2798b = {
241 	.key = {
242 		.data = {
243 			0xDB, 0x84, 0xB4, 0xFB, 0xCC, 0xDA, 0x56, 0x3B,
244 			0x66, 0x22, 0x7B, 0xFE, 0x45, 0x6F, 0x0F, 0x77
245 		},
246 		.len = 16
247 	},
248 	.cipher_iv = {
249 		.data = {
250 			0xE4, 0x85, 0x0F, 0xE1, 0x84, 0x00, 0x00, 0x00,
251 			0xE4, 0x85, 0x0F, 0xE1, 0x84, 0x00, 0x00, 0x00
252 		},
253 		.len = 16
254 	},
255 	.plaintext = {
256 		.data = {
257 			0xE5, 0x39, 0xF3, 0xB8, 0x97, 0x32, 0x40, 0xDA,
258 			0x03, 0xF2, 0xB8, 0xAA, 0x05, 0xEE, 0x0A, 0x00,
259 			0xDB, 0xAF, 0xC0, 0xE1, 0x82, 0x05, 0x5D, 0xFE,
260 			0x3D, 0x73, 0x83, 0xD9, 0x2C, 0xEF, 0x40, 0xE9,
261 			0x29, 0x28, 0x60, 0x5D, 0x52, 0xD0, 0x5F, 0x4F,
262 			0x90, 0x18, 0xA1, 0xF1, 0x89, 0xAE, 0x39, 0x97,
263 			0xCE, 0x19, 0x15, 0x5F, 0xB1, 0x22, 0x1D, 0xB8,
264 			0xBB, 0x09, 0x51, 0xA8, 0x53, 0xAD, 0x85, 0x2C,
265 			0xE1, 0x6C, 0xFF, 0x07, 0x38, 0x2C, 0x93, 0xA1,
266 			0x57, 0xDE, 0x00, 0xDD, 0xB1, 0x25, 0xC7, 0x53,
267 			0x9F, 0xD8, 0x50, 0x45, 0xE4, 0xEE, 0x07, 0xE0,
268 			0xC4, 0x3F, 0x9E, 0x9D, 0x6F, 0x41, 0x4F, 0xC4,
269 			0xD1, 0xC6, 0x29, 0x17, 0x81, 0x3F, 0x74, 0xC0,
270 			0x0F, 0xC8, 0x3F, 0x3E, 0x2E, 0xD7, 0xC4, 0x5B,
271 			0xA5, 0x83, 0x52, 0x64, 0xB4, 0x3E, 0x0B, 0x20,
272 			0xAF, 0xDA, 0x6B, 0x30, 0x53, 0xBF, 0xB6, 0x42,
273 			0x3B, 0x7F, 0xCE, 0x25, 0x47, 0x9F, 0xF5, 0xF1,
274 			0x39, 0xDD, 0x9B, 0x5B, 0x99, 0x55, 0x58, 0xE2,
275 			0xA5, 0x6B, 0xE1, 0x8D, 0xD5, 0x81, 0xCD, 0x01,
276 			0x7C, 0x73, 0x5E, 0x6F, 0x0D, 0x0D, 0x97, 0xC4,
277 			0xDD, 0xC1, 0xD1, 0xDA, 0x70, 0xC6, 0xDB, 0x4A,
278 			0x12, 0xCC, 0x92, 0x77, 0x8E, 0x2F, 0xBB, 0xD6,
279 			0xF3, 0xBA, 0x52, 0xAF, 0x91, 0xC9, 0xC6, 0xB6,
280 			0x4E, 0x8D, 0xA4, 0xF7, 0xA2, 0xC2, 0x66, 0xD0,
281 			0x2D, 0x00, 0x17, 0x53, 0xDF, 0x08, 0x96, 0x03,
282 			0x93, 0xC5, 0xD5, 0x68, 0x88, 0xBF, 0x49, 0xEB,
283 			0x5C, 0x16, 0xD9, 0xA8, 0x04, 0x27, 0xA4, 0x16,
284 			0xBC, 0xB5, 0x97, 0xDF, 0x5B, 0xFE, 0x6F, 0x13,
285 			0x89, 0x0A, 0x07, 0xEE, 0x13, 0x40, 0xE6, 0x47,
286 			0x6B, 0x0D, 0x9A, 0xA8, 0xF8, 0x22, 0xAB, 0x0F,
287 			0xD1, 0xAB, 0x0D, 0x20, 0x4F, 0x40, 0xB7, 0xCE,
288 			0x6F, 0x2E, 0x13, 0x6E, 0xB6, 0x74, 0x85, 0xE5,
289 			0x07, 0x80, 0x4D, 0x50, 0x45, 0x88, 0xAD, 0x37,
290 			0xFF, 0xD8, 0x16, 0x56, 0x8B, 0x2D, 0xC4, 0x03,
291 			0x11, 0xDF, 0xB6, 0x54, 0xCD, 0xEA, 0xD4, 0x7E,
292 			0x23, 0x85, 0xC3, 0x43, 0x62, 0x03, 0xDD, 0x83,
293 			0x6F, 0x9C, 0x64, 0xD9, 0x74, 0x62, 0xAD, 0x5D,
294 			0xFA, 0x63, 0xB5, 0xCF, 0xE0, 0x8A, 0xCB, 0x95,
295 			0x32, 0x86, 0x6F, 0x5C, 0xA7, 0x87, 0x56, 0x6F,
296 			0xCA, 0x93, 0xE6, 0xB1, 0x69, 0x3E, 0xE1, 0x5C,
297 			0xF6, 0xF7, 0xA2, 0xD6, 0x89, 0xD9, 0x74, 0x17,
298 			0x98, 0xDC, 0x1C, 0x23, 0x8E, 0x1B, 0xE6, 0x50,
299 			0x73, 0x3B, 0x18, 0xFB, 0x34, 0xFF, 0x88, 0x0E,
300 			0x16, 0xBB, 0xD2, 0x1B, 0x47, 0xAC
301 		},
302 		.len = 2800
303 	},
304 	.ciphertext = {
305 		.data = {
306 			0x4B, 0xBF, 0xA9, 0x1B, 0xA2, 0x5D, 0x47, 0xDB,
307 			0x9A, 0x9F, 0x19, 0x0D, 0x96, 0x2A, 0x19, 0xAB,
308 			0x32, 0x39, 0x26, 0xB3, 0x51, 0xFB, 0xD3, 0x9E,
309 			0x35, 0x1E, 0x05, 0xDA, 0x8B, 0x89, 0x25, 0xE3,
310 			0x0B, 0x1C, 0xCE, 0x0D, 0x12, 0x21, 0x10, 0x10,
311 			0x95, 0x81, 0x5C, 0xC7, 0xCB, 0x63, 0x19, 0x50,
312 			0x9E, 0xC0, 0xD6, 0x79, 0x40, 0x49, 0x19, 0x87,
313 			0xE1, 0x3F, 0x0A, 0xFF, 0xAC, 0x33, 0x2A, 0xA6,
314 			0xAA, 0x64, 0x62, 0x6D, 0x3E, 0x9A, 0x19, 0x17,
315 			0x51, 0x9E, 0x0B, 0x97, 0xB6, 0x55, 0xC6, 0xA1,
316 			0x65, 0xE4, 0x4C, 0xA9, 0xFE, 0xAC, 0x07, 0x90,
317 			0xD2, 0xA3, 0x21, 0xAD, 0x3D, 0x86, 0xB7, 0x9C,
318 			0x51, 0x38, 0x73, 0x9F, 0xA3, 0x8D, 0x88, 0x7E,
319 			0xC7, 0xDE, 0xF4, 0x49, 0xCE, 0x8A, 0xBD, 0xD3,
320 			0xE7, 0xF8, 0xDC, 0x4C, 0xA9, 0xE7, 0xB7, 0x33,
321 			0x14, 0xAD, 0x31, 0x0F, 0x90, 0x25, 0xE6, 0x19,
322 			0x46, 0xB3, 0xA5, 0x6D, 0xC6, 0x49, 0xEC, 0x0D,
323 			0xA0, 0xD6, 0x39, 0x43, 0xDF, 0xF5, 0x92, 0xCF,
324 			0x96, 0x2A, 0x7E, 0xFB, 0x2C, 0x85, 0x24, 0xE3,
325 			0x5A, 0x2A, 0x6E, 0x78, 0x79, 0xD6, 0x26, 0x04,
326 			0xEF, 0x26, 0x86, 0x95, 0xFA, 0x40, 0x03, 0x02,
327 			0x7E, 0x22, 0xE6, 0x08, 0x30, 0x77, 0x52, 0x20,
328 			0x64, 0xBD, 0x4A, 0x5B, 0x90, 0x6B, 0x5F, 0x53,
329 			0x12, 0x74, 0xF2, 0x35, 0xED, 0x50, 0x6C, 0xFF,
330 			0x01, 0x54, 0xC7, 0x54, 0x92, 0x8A, 0x0C, 0xE5,
331 			0x47, 0x6F, 0x2C, 0xB1, 0x02, 0x0A, 0x12, 0x22,
332 			0xD3, 0x2C, 0x14, 0x55, 0xEC, 0xAE, 0xF1, 0xE3,
333 			0x68, 0xFB, 0x34, 0x4D, 0x17, 0x35, 0xBF, 0xBE,
334 			0xDE, 0xB7, 0x1D, 0x0A, 0x33, 0xA2, 0xA5, 0x4B,
335 			0x1D, 0xA5, 0xA2, 0x94, 0xE6, 0x79, 0x14, 0x4D,
336 			0xDF, 0x11, 0xEB, 0x1A, 0x3D, 0xE8, 0xCF, 0x0C,
337 			0xC0, 0x61, 0x91, 0x79, 0x74, 0xF3, 0x5C, 0x1D,
338 			0x9C, 0xA0, 0xAC, 0x81, 0x80, 0x7F, 0x8F, 0xCC,
339 			0xE6, 0x19, 0x9A, 0x6C, 0x77, 0x12, 0xDA, 0x86,
340 			0x50, 0x21, 0xB0, 0x4C, 0xE0, 0x43, 0x95, 0x16,
341 			0xF1, 0xA5, 0x26, 0xCC, 0xDA, 0x9F, 0xD9, 0xAB,
342 			0xBD, 0x53, 0xC3, 0xA6, 0x84, 0xF9, 0xAE, 0x1E,
343 			0x7E, 0xE6, 0xB1, 0x1D, 0xA1, 0x38, 0xEA, 0x82,
344 			0x6C, 0x55, 0x16, 0xB5, 0xAA, 0xDF, 0x1A, 0xBB,
345 			0xE3, 0x6F, 0xA7, 0xFF, 0xF9, 0x2E, 0x3A, 0x11,
346 			0x76, 0x06, 0x4E, 0x8D, 0x95, 0xF2, 0xE4, 0x88,
347 			0x2B, 0x55, 0x00, 0xB9, 0x32, 0x28, 0xB2, 0x19,
348 			0x4A, 0x47, 0x5C, 0x1A, 0x27, 0xF6, 0x3F, 0x9F,
349 			0xFD, 0x26, 0x49, 0x89, 0xA1, 0xBC
350 		},
351 		.len = 2800
352 	},
353 	.validDataLenInBits = {
354 		.len = 2798
355 	},
356 	.validCipherLenInBits = {
357 		.len = 2798
358 	}
359 };
360 
361 static struct wireless_test_data zuc_test_case_cipher_4019b = {
362 	.key = {
363 		.data = {
364 			0xE1, 0x3F, 0xED, 0x21, 0xB4, 0x6E, 0x4E, 0x7E,
365 			0xC3, 0x12, 0x53, 0xB2, 0xBB, 0x17, 0xB3, 0xE0
366 		},
367 		.len = 16
368 	},
369 	.cipher_iv = {
370 		.data = {
371 			0x27, 0x38, 0xCD, 0xAA, 0xD0, 0x00, 0x00, 0x00,
372 			0x27, 0x38, 0xCD, 0xAA, 0xD0, 0x00, 0x00, 0x00
373 		},
374 		.len = 16
375 	},
376 	.plaintext = {
377 		.data = {
378 			0x8D, 0x74, 0xE2, 0x0D, 0x54, 0x89, 0x4E, 0x06,
379 			0xD3, 0xCB, 0x13, 0xCB, 0x39, 0x33, 0x06, 0x5E,
380 			0x86, 0x74, 0xBE, 0x62, 0xAD, 0xB1, 0xC7, 0x2B,
381 			0x3A, 0x64, 0x69, 0x65, 0xAB, 0x63, 0xCB, 0x7B,
382 			0x78, 0x54, 0xDF, 0xDC, 0x27, 0xE8, 0x49, 0x29,
383 			0xF4, 0x9C, 0x64, 0xB8, 0x72, 0xA4, 0x90, 0xB1,
384 			0x3F, 0x95, 0x7B, 0x64, 0x82, 0x7E, 0x71, 0xF4,
385 			0x1F, 0xBD, 0x42, 0x69, 0xA4, 0x2C, 0x97, 0xF8,
386 			0x24, 0x53, 0x70, 0x27, 0xF8, 0x6E, 0x9F, 0x4A,
387 			0xD8, 0x2D, 0x1D, 0xF4, 0x51, 0x69, 0x0F, 0xDD,
388 			0x98, 0xB6, 0xD0, 0x3F, 0x3A, 0x0E, 0xBE, 0x3A,
389 			0x31, 0x2D, 0x6B, 0x84, 0x0B, 0xA5, 0xA1, 0x82,
390 			0x0B, 0x2A, 0x2C, 0x97, 0x09, 0xC0, 0x90, 0xD2,
391 			0x45, 0xED, 0x26, 0x7C, 0xF8, 0x45, 0xAE, 0x41,
392 			0xFA, 0x97, 0x5D, 0x33, 0x33, 0xAC, 0x30, 0x09,
393 			0xFD, 0x40, 0xEB, 0xA9, 0xEB, 0x5B, 0x88, 0x57,
394 			0x14, 0xB7, 0x68, 0xB6, 0x97, 0x13, 0x8B, 0xAF,
395 			0x21, 0x38, 0x0E, 0xCA, 0x49, 0xF6, 0x44, 0xD4,
396 			0x86, 0x89, 0xE4, 0x21, 0x57, 0x60, 0xB9, 0x06,
397 			0x73, 0x9F, 0x0D, 0x2B, 0x3F, 0x09, 0x11, 0x33,
398 			0xCA, 0x15, 0xD9, 0x81, 0xCB, 0xE4, 0x01, 0xBA,
399 			0xF7, 0x2D, 0x05, 0xAC, 0xE0, 0x5C, 0xCC, 0xB2,
400 			0xD2, 0x97, 0xF4, 0xEF, 0x6A, 0x5F, 0x58, 0xD9,
401 			0x12, 0x46, 0xCF, 0xA7, 0x72, 0x15, 0xB8, 0x92,
402 			0xAB, 0x44, 0x1D, 0x52, 0x78, 0x45, 0x27, 0x95,
403 			0xCC, 0xB7, 0xF5, 0xD7, 0x90, 0x57, 0xA1, 0xC4,
404 			0xF7, 0x7F, 0x80, 0xD4, 0x6D, 0xB2, 0x03, 0x3C,
405 			0xB7, 0x9B, 0xED, 0xF8, 0xE6, 0x05, 0x51, 0xCE,
406 			0x10, 0xC6, 0x67, 0xF6, 0x2A, 0x97, 0xAB, 0xAF,
407 			0xAB, 0xBC, 0xD6, 0x77, 0x20, 0x18, 0xDF, 0x96,
408 			0xA2, 0x82, 0xEA, 0x73, 0x7C, 0xE2, 0xCB, 0x33,
409 			0x12, 0x11, 0xF6, 0x0D, 0x53, 0x54, 0xCE, 0x78,
410 			0xF9, 0x91, 0x8D, 0x9C, 0x20, 0x6C, 0xA0, 0x42,
411 			0xC9, 0xB6, 0x23, 0x87, 0xDD, 0x70, 0x96, 0x04,
412 			0xA5, 0x0A, 0xF1, 0x6D, 0x8D, 0x35, 0xA8, 0x90,
413 			0x6B, 0xE4, 0x84, 0xCF, 0x2E, 0x74, 0xA9, 0x28,
414 			0x99, 0x40, 0x36, 0x43, 0x53, 0x24, 0x9B, 0x27,
415 			0xB4, 0xC9, 0xAE, 0x29, 0xED, 0xDF, 0xC7, 0xDA,
416 			0x64, 0x18, 0x79, 0x1A, 0x4E, 0x7B, 0xAA, 0x06,
417 			0x60, 0xFA, 0x64, 0x51, 0x1F, 0x2D, 0x68, 0x5C,
418 			0xC3, 0xA5, 0xFF, 0x70, 0xE0, 0xD2, 0xB7, 0x42,
419 			0x92, 0xE3, 0xB8, 0xA0, 0xCD, 0x6B, 0x04, 0xB1,
420 			0xC7, 0x90, 0xB8, 0xEA, 0xD2, 0x70, 0x37, 0x08,
421 			0x54, 0x0D, 0xEA, 0x2F, 0xC0, 0x9C, 0x3D, 0xA7,
422 			0x70, 0xF6, 0x54, 0x49, 0xE8, 0x4D, 0x81, 0x7A,
423 			0x4F, 0x55, 0x10, 0x55, 0xE1, 0x9A, 0xB8, 0x50,
424 			0x18, 0xA0, 0x02, 0x8B, 0x71, 0xA1, 0x44, 0xD9,
425 			0x67, 0x91, 0xE9, 0xA3, 0x57, 0x79, 0x33, 0x50,
426 			0x4E, 0xEE, 0x00, 0x60, 0x34, 0x0C, 0x69, 0xD2,
427 			0x74, 0xE1, 0xBF, 0x9D, 0x80, 0x5D, 0xCB, 0xCC,
428 			0x1A, 0x6F, 0xAA, 0x97, 0x68, 0x00, 0xB6, 0xFF,
429 			0x2B, 0x67, 0x1D, 0xC4, 0x63, 0x65, 0x2F, 0xA8,
430 			0xA3, 0x3E, 0xE5, 0x09, 0x74, 0xC1, 0xC2, 0x1B,
431 			0xE0, 0x1E, 0xAB, 0xB2, 0x16, 0x74, 0x30, 0x26,
432 			0x9D, 0x72, 0xEE, 0x51, 0x1C, 0x9D, 0xDE, 0x30,
433 			0x79, 0x7C, 0x9A, 0x25, 0xD8, 0x6C, 0xE7, 0x4F,
434 			0x5B, 0x96, 0x1B, 0xE5, 0xFD, 0xFB, 0x68, 0x07,
435 			0x81, 0x40, 0x39, 0xE7, 0x13, 0x76, 0x36, 0xBD,
436 			0x1D, 0x7F, 0xA9, 0xE0, 0x9E, 0xFD, 0x20, 0x07,
437 			0x50, 0x59, 0x06, 0xA5, 0xAC, 0x45, 0xDF, 0xDE,
438 			0xED, 0x77, 0x57, 0xBB, 0xEE, 0x74, 0x57, 0x49,
439 			0xC2, 0x96, 0x33, 0x35, 0x0B, 0xEE, 0x0E, 0xA6,
440 			0xF4, 0x09, 0xDF, 0x45, 0x80, 0x16, 0x00
441 		},
442 		.len = 4024
443 	},
444 	.ciphertext = {
445 		.data = {
446 			0x94, 0xEA, 0xA4, 0xAA, 0x30, 0xA5, 0x71, 0x37,
447 			0xDD, 0xF0, 0x9B, 0x97, 0xB2, 0x56, 0x18, 0xA2,
448 			0x0A, 0x13, 0xE2, 0xF1, 0x0F, 0xA5, 0xBF, 0x81,
449 			0x61, 0xA8, 0x79, 0xCC, 0x2A, 0xE7, 0x97, 0xA6,
450 			0xB4, 0xCF, 0x2D, 0x9D, 0xF3, 0x1D, 0xEB, 0xB9,
451 			0x90, 0x5C, 0xCF, 0xEC, 0x97, 0xDE, 0x60, 0x5D,
452 			0x21, 0xC6, 0x1A, 0xB8, 0x53, 0x1B, 0x7F, 0x3C,
453 			0x9D, 0xA5, 0xF0, 0x39, 0x31, 0xF8, 0xA0, 0x64,
454 			0x2D, 0xE4, 0x82, 0x11, 0xF5, 0xF5, 0x2F, 0xFE,
455 			0xA1, 0x0F, 0x39, 0x2A, 0x04, 0x76, 0x69, 0x98,
456 			0x5D, 0xA4, 0x54, 0xA2, 0x8F, 0x08, 0x09, 0x61,
457 			0xA6, 0xC2, 0xB6, 0x2D, 0xAA, 0x17, 0xF3, 0x3C,
458 			0xD6, 0x0A, 0x49, 0x71, 0xF4, 0x8D, 0x2D, 0x90,
459 			0x93, 0x94, 0xA5, 0x5F, 0x48, 0x11, 0x7A, 0xCE,
460 			0x43, 0xD7, 0x08, 0xE6, 0xB7, 0x7D, 0x3D, 0xC4,
461 			0x6D, 0x8B, 0xC0, 0x17, 0xD4, 0xD1, 0xAB, 0xB7,
462 			0x7B, 0x74, 0x28, 0xC0, 0x42, 0xB0, 0x6F, 0x2F,
463 			0x99, 0xD8, 0xD0, 0x7C, 0x98, 0x79, 0xD9, 0x96,
464 			0x00, 0x12, 0x7A, 0x31, 0x98, 0x5F, 0x10, 0x99,
465 			0xBB, 0xD7, 0xD6, 0xC1, 0x51, 0x9E, 0xDE, 0x8F,
466 			0x5E, 0xEB, 0x4A, 0x61, 0x0B, 0x34, 0x9A, 0xC0,
467 			0x1E, 0xA2, 0x35, 0x06, 0x91, 0x75, 0x6B, 0xD1,
468 			0x05, 0xC9, 0x74, 0xA5, 0x3E, 0xDD, 0xB3, 0x5D,
469 			0x1D, 0x41, 0x00, 0xB0, 0x12, 0xE5, 0x22, 0xAB,
470 			0x41, 0xF4, 0xC5, 0xF2, 0xFD, 0xE7, 0x6B, 0x59,
471 			0xCB, 0x8B, 0x96, 0xD8, 0x85, 0xCF, 0xE4, 0x08,
472 			0x0D, 0x13, 0x28, 0xA0, 0xD6, 0x36, 0xCC, 0x0E,
473 			0xDC, 0x05, 0x80, 0x0B, 0x76, 0xAC, 0xCA, 0x8F,
474 			0xEF, 0x67, 0x20, 0x84, 0xD1, 0xF5, 0x2A, 0x8B,
475 			0xBD, 0x8E, 0x09, 0x93, 0x32, 0x09, 0x92, 0xC7,
476 			0xFF, 0xBA, 0xE1, 0x7C, 0x40, 0x84, 0x41, 0xE0,
477 			0xEE, 0x88, 0x3F, 0xC8, 0xA8, 0xB0, 0x5E, 0x22,
478 			0xF5, 0xFF, 0x7F, 0x8D, 0x1B, 0x48, 0xC7, 0x4C,
479 			0x46, 0x8C, 0x46, 0x7A, 0x02, 0x8F, 0x09, 0xFD,
480 			0x7C, 0xE9, 0x11, 0x09, 0xA5, 0x70, 0xA2, 0xD5,
481 			0xC4, 0xD5, 0xF4, 0xFA, 0x18, 0xC5, 0xDD, 0x3E,
482 			0x45, 0x62, 0xAF, 0xE2, 0x4E, 0xF7, 0x71, 0x90,
483 			0x1F, 0x59, 0xAF, 0x64, 0x58, 0x98, 0xAC, 0xEF,
484 			0x08, 0x8A, 0xBA, 0xE0, 0x7E, 0x92, 0xD5, 0x2E,
485 			0xB2, 0xDE, 0x55, 0x04, 0x5B, 0xB1, 0xB7, 0xC4,
486 			0x16, 0x4E, 0xF2, 0xD7, 0xA6, 0xCA, 0xC1, 0x5E,
487 			0xEB, 0x92, 0x6D, 0x7E, 0xA2, 0xF0, 0x8B, 0x66,
488 			0xE1, 0xF7, 0x59, 0xF3, 0xAE, 0xE4, 0x46, 0x14,
489 			0x72, 0x5A, 0xA3, 0xC7, 0x48, 0x2B, 0x30, 0x84,
490 			0x4C, 0x14, 0x3F, 0xF8, 0x5B, 0x53, 0xF1, 0xE5,
491 			0x83, 0xC5, 0x01, 0x25, 0x7D, 0xDD, 0xD0, 0x96,
492 			0xB8, 0x12, 0x68, 0xDA, 0xA3, 0x03, 0xF1, 0x72,
493 			0x34, 0xC2, 0x33, 0x35, 0x41, 0xF0, 0xBB, 0x8E,
494 			0x19, 0x06, 0x48, 0xC5, 0x80, 0x7C, 0x86, 0x6D,
495 			0x71, 0x93, 0x22, 0x86, 0x09, 0xAD, 0xB9, 0x48,
496 			0x68, 0x6F, 0x7D, 0xE2, 0x94, 0xA8, 0x02, 0xCC,
497 			0x38, 0xF7, 0xFE, 0x52, 0x08, 0xF5, 0xEA, 0x31,
498 			0x96, 0xD0, 0x16, 0x7B, 0x9B, 0xDD, 0x02, 0xF0,
499 			0xD2, 0xA5, 0x22, 0x1C, 0xA5, 0x08, 0xF8, 0x93,
500 			0xAF, 0x5C, 0x4B, 0x4B, 0xB9, 0xF4, 0xF5, 0x20,
501 			0xFD, 0x84, 0x28, 0x9B, 0x3D, 0xBE, 0x7E, 0x61,
502 			0x49, 0x7A, 0x7E, 0x2A, 0x58, 0x40, 0x37, 0xEA,
503 			0x63, 0x7B, 0x69, 0x81, 0x12, 0x71, 0x74, 0xAF,
504 			0x57, 0xB4, 0x71, 0xDF, 0x4B, 0x27, 0x68, 0xFD,
505 			0x79, 0xC1, 0x54, 0x0F, 0xB3, 0xED, 0xF2, 0xEA,
506 			0x22, 0xCB, 0x69, 0xBE, 0xC0, 0xCF, 0x8D, 0x93,
507 			0x3D, 0x9C, 0x6F, 0xDD, 0x64, 0x5E, 0x85, 0x05,
508 			0x91, 0xCC, 0xA3, 0xD6, 0x2C, 0x0C, 0xC0
509 		},
510 		.len = 4024
511 	},
512 	.validDataLenInBits = {
513 		.len = 4019
514 	},
515 	.validCipherLenInBits = {
516 		.len = 4019
517 	}
518 };
519 
520 static struct wireless_test_data zuc_test_case_cipher_800b_key_256b = {
521 	.key = {
522 		.data = {
523 			0xE5, 0xBD, 0x3E, 0xA0, 0xEB, 0x55, 0xAD, 0xE8,
524 			0x66, 0xC6, 0xAC, 0x58, 0xBD, 0x54, 0x30, 0x2A,
525 			0xE5, 0xBD, 0x3E, 0xA0, 0xEB, 0x55, 0xAD, 0xE8,
526 			0x66, 0xC6, 0xAC, 0x58, 0xBD, 0x54, 0x30, 0x2A
527 		},
528 		.len = 32
529 	},
530 	.cipher_iv = {
531 		.data = {
532 			0x00, 0x05, 0x68, 0x23, 0xC4, 0x00, 0x00, 0x00,
533 			0x00, 0x05, 0x68, 0x23, 0xC4, 0x00, 0x00, 0x00,
534 			0x00, 0x05, 0x68, 0x23, 0xC4, 0x00, 0x00, 0x00
535 		},
536 		.len = 24
537 	},
538 	.plaintext = {
539 		.data = {
540 			0x14, 0xA8, 0xEF, 0x69, 0x3D, 0x67, 0x85, 0x07,
541 			0xBB, 0xE7, 0x27, 0x0A, 0x7F, 0x67, 0xFF, 0x50,
542 			0x06, 0xC3, 0x52, 0x5B, 0x98, 0x07, 0xE4, 0x67,
543 			0xC4, 0xE5, 0x60, 0x00, 0xBA, 0x33, 0x8F, 0x5D,
544 			0x42, 0x95, 0x59, 0x03, 0x67, 0x51, 0x82, 0x22,
545 			0x46, 0xC8, 0x0D, 0x3B, 0x38, 0xF0, 0x7F, 0x4B,
546 			0xE2, 0xD8, 0xFF, 0x58, 0x05, 0xF5, 0x13, 0x22,
547 			0x29, 0xBD, 0xE9, 0x3B, 0xBB, 0xDC, 0xAF, 0x38,
548 			0x2B, 0xF1, 0xEE, 0x97, 0x2F, 0xBF, 0x99, 0x77,
549 			0xBA, 0xDA, 0x89, 0x45, 0x84, 0x7A, 0x2A, 0x6C,
550 			0x9A, 0xD3, 0x4A, 0x66, 0x75, 0x54, 0xE0, 0x4D,
551 			0x1F, 0x7F, 0xA2, 0xC3, 0x32, 0x41, 0xBD, 0x8F,
552 			0x01, 0xBA, 0x22, 0x0D
553 		},
554 		.len = 800
555 	},
556 	.ciphertext = {
557 		.data = {
558 			0xd0, 0xb4, 0x09, 0x5a, 0x83, 0xf3, 0x8d, 0x2a,
559 			0x8a, 0xc1, 0x75, 0x5a, 0xed, 0x53, 0xd3, 0xc6,
560 			0x15, 0x9d, 0x8c, 0x12, 0x98, 0x89, 0x66, 0x28,
561 			0x05, 0xc8, 0xd1, 0xc4, 0xbf, 0xf7, 0x72, 0x79,
562 			0xc7, 0x42, 0xde, 0xc8, 0xdc, 0xe9, 0xb4, 0x4a,
563 			0x92, 0x85, 0x31, 0xb7, 0xc6, 0x51, 0x83, 0x0b,
564 			0x96, 0x29, 0xdd, 0xe0, 0x3b, 0x7e, 0xbe, 0x7b,
565 			0x34, 0x23, 0x1b, 0xe1, 0x8d, 0x8a, 0xe7, 0x0f,
566 			0x12, 0x68, 0x41, 0x4e, 0xaa, 0xf0, 0xeb, 0x9d,
567 			0xbf, 0xed, 0x00, 0xd9, 0x3c, 0x4d, 0x9a, 0xfb,
568 			0x9c, 0xfe, 0xc7, 0xca, 0x3f, 0xd6, 0xbf, 0x03,
569 			0x73, 0x67, 0xcc, 0xc2, 0x38, 0xa3, 0xe0, 0x6e,
570 			0xe6, 0x4b, 0x63, 0x61
571 		},
572 		.len = 800
573 	},
574 	.validDataLenInBits = {
575 		.len = 800
576 	},
577 	.validCipherLenInBits = {
578 		.len = 800
579 	}
580 };
581 
582 static struct wireless_test_data zuc_test_case_cipher_200b_auth_200b = {
583 	.key = {
584 		.data = {
585 			0x17, 0x3D, 0x14, 0xBA, 0x50, 0x03, 0x73, 0x1D,
586 			0x7A, 0x60, 0x04, 0x94, 0x70, 0xF0, 0x0A, 0x29
587 		},
588 		.len = 16
589 	},
590 	.cipher_iv = {
591 		.data = {
592 			0x66, 0x03, 0x54, 0x92, 0x78, 0x00, 0x00, 0x00,
593 			0x66, 0x03, 0x54, 0x92, 0x78, 0x00, 0x00, 0x00
594 		},
595 		.len = 16
596 	},
597 	.plaintext = {
598 		.data = {
599 			0x6C, 0xF6, 0x53, 0x40, 0x73, 0x55, 0x52, 0xAB,
600 			0x0C, 0x97, 0x52, 0xFA, 0x6F, 0x90, 0x25, 0xFE,
601 			0x0B, 0xD6, 0x75, 0xD9, 0x00, 0x58, 0x75, 0xB2,
602 			0x00
603 		},
604 		.len = 200
605 	},
606 	.ciphertext = {
607 		.data = {
608 			0xA6, 0xC8, 0x5F, 0xC6, 0x6A, 0xFB, 0x85, 0x33,
609 			0xAA, 0xFC, 0x25, 0x18, 0xDF, 0xE7, 0x84, 0x94,
610 			0x0E, 0xE1, 0xE4, 0xB0, 0x30, 0x23, 0x8C, 0xC8,
611 			0x10
612 		},
613 		.len = 200
614 	},
615 	.validDataLenInBits = {
616 		.len = 200
617 	},
618 	.validCipherLenInBits = {
619 		.len = 200
620 	},
621 	.auth_iv = {
622 		.data = {
623 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
624 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
625 		},
626 		.len = 16
627 	},
628 	.digest = {
629 		.data = {0x01, 0xFE, 0x5E, 0x38},
630 		.len  = 4
631 	},
632 	.validAuthLenInBits = {
633 		.len = 200
634 	}
635 };
636 
637 static struct wireless_test_data zuc_test_case_cipher_800b_auth_120b = {
638 	.key = {
639 		.data = {
640 			0xE5, 0xBD, 0x3E, 0xA0, 0xEB, 0x55, 0xAD, 0xE8,
641 			0x66, 0xC6, 0xAC, 0x58, 0xBD, 0x54, 0x30, 0x2A
642 		},
643 		.len = 16
644 	},
645 	.cipher_iv = {
646 		.data = {
647 			0x00, 0x05, 0x68, 0x23, 0xC4, 0x00, 0x00, 0x00,
648 			0x00, 0x05, 0x68, 0x23, 0xC4, 0x00, 0x00, 0x00
649 		},
650 		.len = 16
651 	},
652 	.plaintext = {
653 		.data = {
654 			0x14, 0xA8, 0xEF, 0x69, 0x3D, 0x67, 0x85, 0x07,
655 			0xBB, 0xE7, 0x27, 0x0A, 0x7F, 0x67, 0xFF, 0x50,
656 			0x06, 0xC3, 0x52, 0x5B, 0x98, 0x07, 0xE4, 0x67,
657 			0xC4, 0xE5, 0x60, 0x00, 0xBA, 0x33, 0x8F, 0x5D,
658 			0x42, 0x95, 0x59, 0x03, 0x67, 0x51, 0x82, 0x22,
659 			0x46, 0xC8, 0x0D, 0x3B, 0x38, 0xF0, 0x7F, 0x4B,
660 			0xE2, 0xD8, 0xFF, 0x58, 0x05, 0xF5, 0x13, 0x22,
661 			0x29, 0xBD, 0xE9, 0x3B, 0xBB, 0xDC, 0xAF, 0x38,
662 			0x2B, 0xF1, 0xEE, 0x97, 0x2F, 0xBF, 0x99, 0x77,
663 			0xBA, 0xDA, 0x89, 0x45, 0x84, 0x7A, 0x2A, 0x6C,
664 			0x9A, 0xD3, 0x4A, 0x66, 0x75, 0x54, 0xE0, 0x4D,
665 			0x1F, 0x7F, 0xA2, 0xC3, 0x32, 0x41, 0xBD, 0x8F,
666 			0x01, 0xBA, 0x22, 0x0D
667 		},
668 		.len = 800
669 	},
670 	.ciphertext = {
671 		.data = {
672 			0x13, 0x1D, 0x43, 0xE0, 0xDE, 0xA1, 0xBE, 0x5C,
673 			0x5A, 0x1B, 0xFD, 0x97, 0x1D, 0x85, 0x2C, 0xBF,
674 			0x71, 0x2D, 0x7B, 0x4F, 0x57, 0x96, 0x1F, 0xEA,
675 			0x32, 0x08, 0xAF, 0xA8, 0xBC, 0xA4, 0x33, 0xF4,
676 			0x56, 0xAD, 0x09, 0xC7, 0x41, 0x7E, 0x58, 0xBC,
677 			0x69, 0xCF, 0x88, 0x66, 0xD1, 0x35, 0x3F, 0x74,
678 			0x86, 0x5E, 0x80, 0x78, 0x1D, 0x20, 0x2D, 0xFB,
679 			0x3E, 0xCF, 0xF7, 0xFC, 0xBC, 0x3B, 0x19, 0x0F,
680 			0xE8, 0x2A, 0x20, 0x4E, 0xD0, 0xE3, 0x50, 0xFC,
681 			0x0F, 0x6F, 0x26, 0x13, 0xB2, 0xF2, 0xBC, 0xA6,
682 			0xDF, 0x5A, 0x47, 0x3A, 0x57, 0xA4, 0xA0, 0x0D,
683 			0x98, 0x5E, 0xBA, 0xD8, 0x80, 0xD6, 0xF2, 0x38,
684 			0x64, 0xA0, 0x7B, 0x01
685 		},
686 		.len = 800
687 	},
688 	.validDataLenInBits = {
689 		.len = 800
690 	},
691 	.validCipherLenInBits = {
692 		.len = 800
693 	},
694 	.auth_iv = {
695 		.data = {
696 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
697 			0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
698 		},
699 		.len = 16
700 	},
701 	.digest = {
702 		.data = {0x9D, 0x42, 0x1C, 0xEA},
703 		.len  = 4
704 	},
705 	.validAuthLenInBits = {
706 		.len = 120
707 	}
708 };
709 
710 struct wireless_test_data zuc_test_case_auth_1b = {
711 	.key = {
712 		.data = {
713 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
714 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
715 		},
716 		.len = 16
717 	},
718 	.auth_iv = {
719 		.data = {
720 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
721 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
722 		},
723 		.len = 16
724 	},
725 	.plaintext = {
726 		.data = {0x00},
727 		.len = 8
728 	},
729 	.validAuthLenInBits = {
730 		.len = 1
731 	},
732 	.digest = {
733 		.data = {0xC8, 0xA9, 0x59, 0x5E},
734 		.len  = 4
735 	}
736 };
737 
738 struct wireless_test_data zuc_test_case_auth_90b = {
739 	.key = {
740 		.data = {
741 			0x47, 0x05, 0x41, 0x25, 0x56, 0x1E, 0xB2, 0xDD,
742 			0xA9, 0x40, 0x59, 0xDA, 0x05, 0x09, 0x78, 0x50
743 		},
744 		.len = 16
745 	},
746 	.auth_iv = {
747 		.data = {
748 			0x56, 0x1E, 0xB2, 0xDD, 0xA0, 0x00, 0x00, 0x00,
749 			0x56, 0x1E, 0xB2, 0xDD, 0xA0, 0x00, 0x00, 0x00
750 		},
751 		.len = 16
752 	},
753 	.plaintext = {
754 		.data = {
755 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
756 			0x00, 0x00, 0x00, 0x00
757 		},
758 		.len = 96
759 	},
760 	.validAuthLenInBits = {
761 		.len = 90
762 	},
763 	.digest = {
764 		.data = {0x67, 0x19, 0xA0, 0x88},
765 		.len  = 4
766 	}
767 };
768 
769 struct wireless_test_data zuc_test_case_auth_577b = {
770 	.key = {
771 		.data = {
772 			0xC9, 0xE6, 0xCE, 0xC4, 0x60, 0x7C, 0x72, 0xDB,
773 			0x00, 0x0A, 0xEF, 0xA8, 0x83, 0x85, 0xAB, 0x0A
774 		},
775 		.len = 16
776 	},
777 	.auth_iv = {
778 		.data = {
779 			0xA9, 0x40, 0x59, 0xDA, 0x50, 0x00, 0x00, 0x00,
780 			0x29, 0x40, 0x59, 0xDA, 0x50, 0x00, 0x80, 0x00
781 		},
782 		.len = 16
783 	},
784 	.plaintext = {
785 		.data = {
786 			0x98, 0x3B, 0x41, 0xD4, 0x7D, 0x78, 0x0C, 0x9E,
787 			0x1A, 0xD1, 0x1D, 0x7E, 0xB7, 0x03, 0x91, 0xB1,
788 			0xDE, 0x0B, 0x35, 0xDA, 0x2D, 0xC6, 0x2F, 0x83,
789 			0xE7, 0xB7, 0x8D, 0x63, 0x06, 0xCA, 0x0E, 0xA0,
790 			0x7E, 0x94, 0x1B, 0x7B, 0xE9, 0x13, 0x48, 0xF9,
791 			0xFC, 0xB1, 0x70, 0xE2, 0x21, 0x7F, 0xEC, 0xD9,
792 			0x7F, 0x9F, 0x68, 0xAD, 0xB1, 0x6E, 0x5D, 0x7D,
793 			0x21, 0xE5, 0x69, 0xD2, 0x80, 0xED, 0x77, 0x5C,
794 			0xEB, 0xDE, 0x3F, 0x40, 0x93, 0xC5, 0x38, 0x81,
795 			0x00
796 		},
797 		.len = 584
798 	},
799 	.validAuthLenInBits = {
800 		.len = 577
801 	},
802 	.digest = {
803 		.data = {0xFA, 0xE8, 0xFF, 0x0B},
804 		.len  = 4
805 	}
806 };
807 
808 struct wireless_test_data zuc_test_case_auth_2079b = {
809 	.key = {
810 		.data = {
811 			0xC8, 0xA4, 0x82, 0x62, 0xD0, 0xC2, 0xE2, 0xBA,
812 			0xC4, 0xB9, 0x6E, 0xF7, 0x7E, 0x80, 0xCA, 0x59
813 		},
814 		.len = 16
815 	},
816 	.auth_iv = {
817 		.data = {
818 			0x05, 0x09, 0x78, 0x50, 0x80, 0x00, 0x00, 0x00,
819 			0x85, 0x09, 0x78, 0x50, 0x80, 0x00, 0x80, 0x00
820 		},
821 		.len = 16
822 	},
823 	.plaintext = {
824 		.data = {
825 			0xB5, 0x46, 0x43, 0x0B, 0xF8, 0x7B, 0x4F, 0x1E,
826 			0xE8, 0x34, 0x70, 0x4C, 0xD6, 0x95, 0x1C, 0x36,
827 			0xE2, 0x6F, 0x10, 0x8C, 0xF7, 0x31, 0x78, 0x8F,
828 			0x48, 0xDC, 0x34, 0xF1, 0x67, 0x8C, 0x05, 0x22,
829 			0x1C, 0x8F, 0xA7, 0xFF, 0x2F, 0x39, 0xF4, 0x77,
830 			0xE7, 0xE4, 0x9E, 0xF6, 0x0A, 0x4E, 0xC2, 0xC3,
831 			0xDE, 0x24, 0x31, 0x2A, 0x96, 0xAA, 0x26, 0xE1,
832 			0xCF, 0xBA, 0x57, 0x56, 0x38, 0x38, 0xB2, 0x97,
833 			0xF4, 0x7E, 0x85, 0x10, 0xC7, 0x79, 0xFD, 0x66,
834 			0x54, 0xB1, 0x43, 0x38, 0x6F, 0xA6, 0x39, 0xD3,
835 			0x1E, 0xDB, 0xD6, 0xC0, 0x6E, 0x47, 0xD1, 0x59,
836 			0xD9, 0x43, 0x62, 0xF2, 0x6A, 0xEE, 0xED, 0xEE,
837 			0x0E, 0x4F, 0x49, 0xD9, 0xBF, 0x84, 0x12, 0x99,
838 			0x54, 0x15, 0xBF, 0xAD, 0x56, 0xEE, 0x82, 0xD1,
839 			0xCA, 0x74, 0x63, 0xAB, 0xF0, 0x85, 0xB0, 0x82,
840 			0xB0, 0x99, 0x04, 0xD6, 0xD9, 0x90, 0xD4, 0x3C,
841 			0xF2, 0xE0, 0x62, 0xF4, 0x08, 0x39, 0xD9, 0x32,
842 			0x48, 0xB1, 0xEB, 0x92, 0xCD, 0xFE, 0xD5, 0x30,
843 			0x0B, 0xC1, 0x48, 0x28, 0x04, 0x30, 0xB6, 0xD0,
844 			0xCA, 0xA0, 0x94, 0xB6, 0xEC, 0x89, 0x11, 0xAB,
845 			0x7D, 0xC3, 0x68, 0x24, 0xB8, 0x24, 0xDC, 0x0A,
846 			0xF6, 0x68, 0x2B, 0x09, 0x35, 0xFD, 0xE7, 0xB4,
847 			0x92, 0xA1, 0x4D, 0xC2, 0xF4, 0x36, 0x48, 0x03,
848 			0x8D, 0xA2, 0xCF, 0x79, 0x17, 0x0D, 0x2D, 0x50,
849 			0x13, 0x3F, 0xD4, 0x94, 0x16, 0xCB, 0x6E, 0x33,
850 			0xBE, 0xA9, 0x0B, 0x8B, 0xF4, 0x55, 0x9B, 0x03,
851 			0x73, 0x2A, 0x01, 0xEA, 0x29, 0x0E, 0x6D, 0x07,
852 			0x4F, 0x79, 0xBB, 0x83, 0xC1, 0x0E, 0x58, 0x00,
853 			0x15, 0xCC, 0x1A, 0x85, 0xB3, 0x6B, 0x55, 0x01,
854 			0x04, 0x6E, 0x9C, 0x4B, 0xDC, 0xAE, 0x51, 0x35,
855 			0x69, 0x0B, 0x86, 0x66, 0xBD, 0x54, 0xB7, 0xA7,
856 			0x03, 0xEA, 0x7B, 0x6F, 0x22, 0x0A, 0x54, 0x69,
857 			0xA5, 0x68, 0x02, 0x7E
858 		},
859 		.len = 2080
860 	},
861 	.validAuthLenInBits = {
862 		.len = 2079
863 	},
864 	.digest = {
865 		.data = {0x00, 0x4A, 0xC4, 0xD6},
866 		.len  = 4
867 	}
868 };
869 
870 struct wireless_test_data zuc_test_auth_5670b = {
871 	.key = {
872 		.data = {
873 			0x6B, 0x8B, 0x08, 0xEE, 0x79, 0xE0, 0xB5, 0x98,
874 			0x2D, 0x6D, 0x12, 0x8E, 0xA9, 0xF2, 0x20, 0xCB
875 		},
876 		.len = 16
877 	},
878 	.auth_iv = {
879 		.data = {
880 			0x56, 0x1E, 0xB2, 0xDD, 0xE0, 0x00, 0x00, 0x00,
881 			0x56, 0x1E, 0xB2, 0xDD, 0xE0, 0x00, 0x00, 0x00
882 		},
883 		.len = 16
884 	},
885 	.plaintext = {
886 		.data = {
887 			0x5B, 0xAD, 0x72, 0x47, 0x10, 0xBA, 0x1C, 0x56,
888 			0xD5, 0xA3, 0x15, 0xF8, 0xD4, 0x0F, 0x6E, 0x09,
889 			0x37, 0x80, 0xBE, 0x8E, 0x8D, 0xE0, 0x7B, 0x69,
890 			0x92, 0x43, 0x20, 0x18, 0xE0, 0x8E, 0xD9, 0x6A,
891 			0x57, 0x34, 0xAF, 0x8B, 0xAD, 0x8A, 0x57, 0x5D,
892 			0x3A, 0x1F, 0x16, 0x2F, 0x85, 0x04, 0x5C, 0xC7,
893 			0x70, 0x92, 0x55, 0x71, 0xD9, 0xF5, 0xB9, 0x4E,
894 			0x45, 0x4A, 0x77, 0xC1, 0x6E, 0x72, 0x93, 0x6B,
895 			0xF0, 0x16, 0xAE, 0x15, 0x74, 0x99, 0xF0, 0x54,
896 			0x3B, 0x5D, 0x52, 0xCA, 0xA6, 0xDB, 0xEA, 0xB6,
897 			0x97, 0xD2, 0xBB, 0x73, 0xE4, 0x1B, 0x80, 0x75,
898 			0xDC, 0xE7, 0x9B, 0x4B, 0x86, 0x04, 0x4F, 0x66,
899 			0x1D, 0x44, 0x85, 0xA5, 0x43, 0xDD, 0x78, 0x60,
900 			0x6E, 0x04, 0x19, 0xE8, 0x05, 0x98, 0x59, 0xD3,
901 			0xCB, 0x2B, 0x67, 0xCE, 0x09, 0x77, 0x60, 0x3F,
902 			0x81, 0xFF, 0x83, 0x9E, 0x33, 0x18, 0x59, 0x54,
903 			0x4C, 0xFB, 0xC8, 0xD0, 0x0F, 0xEF, 0x1A, 0x4C,
904 			0x85, 0x10, 0xFB, 0x54, 0x7D, 0x6B, 0x06, 0xC6,
905 			0x11, 0xEF, 0x44, 0xF1, 0xBC, 0xE1, 0x07, 0xCF,
906 			0xA4, 0x5A, 0x06, 0xAA, 0xB3, 0x60, 0x15, 0x2B,
907 			0x28, 0xDC, 0x1E, 0xBE, 0x6F, 0x7F, 0xE0, 0x9B,
908 			0x05, 0x16, 0xF9, 0xA5, 0xB0, 0x2A, 0x1B, 0xD8,
909 			0x4B, 0xB0, 0x18, 0x1E, 0x2E, 0x89, 0xE1, 0x9B,
910 			0xD8, 0x12, 0x59, 0x30, 0xD1, 0x78, 0x68, 0x2F,
911 			0x38, 0x62, 0xDC, 0x51, 0xB6, 0x36, 0xF0, 0x4E,
912 			0x72, 0x0C, 0x47, 0xC3, 0xCE, 0x51, 0xAD, 0x70,
913 			0xD9, 0x4B, 0x9B, 0x22, 0x55, 0xFB, 0xAE, 0x90,
914 			0x65, 0x49, 0xF4, 0x99, 0xF8, 0xC6, 0xD3, 0x99,
915 			0x47, 0xED, 0x5E, 0x5D, 0xF8, 0xE2, 0xDE, 0xF1,
916 			0x13, 0x25, 0x3E, 0x7B, 0x08, 0xD0, 0xA7, 0x6B,
917 			0x6B, 0xFC, 0x68, 0xC8, 0x12, 0xF3, 0x75, 0xC7,
918 			0x9B, 0x8F, 0xE5, 0xFD, 0x85, 0x97, 0x6A, 0xA6,
919 			0xD4, 0x6B, 0x4A, 0x23, 0x39, 0xD8, 0xAE, 0x51,
920 			0x47, 0xF6, 0x80, 0xFB, 0xE7, 0x0F, 0x97, 0x8B,
921 			0x38, 0xEF, 0xFD, 0x7B, 0x2F, 0x78, 0x66, 0xA2,
922 			0x25, 0x54, 0xE1, 0x93, 0xA9, 0x4E, 0x98, 0xA6,
923 			0x8B, 0x74, 0xBD, 0x25, 0xBB, 0x2B, 0x3F, 0x5F,
924 			0xB0, 0xA5, 0xFD, 0x59, 0x88, 0x7F, 0x9A, 0xB6,
925 			0x81, 0x59, 0xB7, 0x17, 0x8D, 0x5B, 0x7B, 0x67,
926 			0x7C, 0xB5, 0x46, 0xBF, 0x41, 0xEA, 0xDC, 0xA2,
927 			0x16, 0xFC, 0x10, 0x85, 0x01, 0x28, 0xF8, 0xBD,
928 			0xEF, 0x5C, 0x8D, 0x89, 0xF9, 0x6A, 0xFA, 0x4F,
929 			0xA8, 0xB5, 0x48, 0x85, 0x56, 0x5E, 0xD8, 0x38,
930 			0xA9, 0x50, 0xFE, 0xE5, 0xF1, 0xC3, 0xB0, 0xA4,
931 			0xF6, 0xFB, 0x71, 0xE5, 0x4D, 0xFD, 0x16, 0x9E,
932 			0x82, 0xCE, 0xCC, 0x72, 0x66, 0xC8, 0x50, 0xE6,
933 			0x7C, 0x5E, 0xF0, 0xBA, 0x96, 0x0F, 0x52, 0x14,
934 			0x06, 0x0E, 0x71, 0xEB, 0x17, 0x2A, 0x75, 0xFC,
935 			0x14, 0x86, 0x83, 0x5C, 0xBE, 0xA6, 0x53, 0x44,
936 			0x65, 0xB0, 0x55, 0xC9, 0x6A, 0x72, 0xE4, 0x10,
937 			0x52, 0x24, 0x18, 0x23, 0x25, 0xD8, 0x30, 0x41,
938 			0x4B, 0x40, 0x21, 0x4D, 0xAA, 0x80, 0x91, 0xD2,
939 			0xE0, 0xFB, 0x01, 0x0A, 0xE1, 0x5C, 0x6D, 0xE9,
940 			0x08, 0x50, 0x97, 0x3B, 0xDF, 0x1E, 0x42, 0x3B,
941 			0xE1, 0x48, 0xA2, 0x37, 0xB8, 0x7A, 0x0C, 0x9F,
942 			0x34, 0xD4, 0xB4, 0x76, 0x05, 0xB8, 0x03, 0xD7,
943 			0x43, 0xA8, 0x6A, 0x90, 0x39, 0x9A, 0x4A, 0xF3,
944 			0x96, 0xD3, 0xA1, 0x20, 0x0A, 0x62, 0xF3, 0xD9,
945 			0x50, 0x79, 0x62, 0xE8, 0xE5, 0xBE, 0xE6, 0xD3,
946 			0xDA, 0x2B, 0xB3, 0xF7, 0x23, 0x76, 0x64, 0xAC,
947 			0x7A, 0x29, 0x28, 0x23, 0x90, 0x0B, 0xC6, 0x35,
948 			0x03, 0xB2, 0x9E, 0x80, 0xD6, 0x3F, 0x60, 0x67,
949 			0xBF, 0x8E, 0x17, 0x16, 0xAC, 0x25, 0xBE, 0xBA,
950 			0x35, 0x0D, 0xEB, 0x62, 0xA9, 0x9F, 0xE0, 0x31,
951 			0x85, 0xEB, 0x4F, 0x69, 0x93, 0x7E, 0xCD, 0x38,
952 			0x79, 0x41, 0xFD, 0xA5, 0x44, 0xBA, 0x67, 0xDB,
953 			0x09, 0x11, 0x77, 0x49, 0x38, 0xB0, 0x18, 0x27,
954 			0xBC, 0xC6, 0x9C, 0x92, 0xB3, 0xF7, 0x72, 0xA9,
955 			0xD2, 0x85, 0x9E, 0xF0, 0x03, 0x39, 0x8B, 0x1F,
956 			0x6B, 0xBA, 0xD7, 0xB5, 0x74, 0xF7, 0x98, 0x9A,
957 			0x1D, 0x10, 0xB2, 0xDF, 0x79, 0x8E, 0x0D, 0xBF,
958 			0x30, 0xD6, 0x58, 0x74, 0x64, 0xD2, 0x48, 0x78,
959 			0xCD, 0x00, 0xC0, 0xEA, 0xEE, 0x8A, 0x1A, 0x0C,
960 			0xC7, 0x53, 0xA2, 0x79, 0x79, 0xE1, 0x1B, 0x41,
961 			0xDB, 0x1D, 0xE3, 0xD5, 0x03, 0x8A, 0xFA, 0xF4,
962 			0x9F, 0x5C, 0x68, 0x2C, 0x37, 0x48, 0xD8, 0xA3,
963 			0xA9, 0xEC, 0x54, 0xE6, 0xA3, 0x71, 0x27, 0x5F,
964 			0x16, 0x83, 0x51, 0x0F, 0x8E, 0x4F, 0x90, 0x93,
965 			0x8F, 0x9A, 0xB6, 0xE1, 0x34, 0xC2, 0xCF, 0xDF,
966 			0x48, 0x41, 0xCB, 0xA8, 0x8E, 0x0C, 0xFF, 0x2B,
967 			0x0B, 0xCC, 0x8E, 0x6A, 0xDC, 0xB7, 0x11, 0x09,
968 			0xB5, 0x19, 0x8F, 0xEC, 0xF1, 0xBB, 0x7E, 0x5C,
969 			0x53, 0x1A, 0xCA, 0x50, 0xA5, 0x6A, 0x8A, 0x3B,
970 			0x6D, 0xE5, 0x98, 0x62, 0xD4, 0x1F, 0xA1, 0x13,
971 			0xD9, 0xCD, 0x95, 0x78, 0x08, 0xF0, 0x85, 0x71,
972 			0xD9, 0xA4, 0xBB, 0x79, 0x2A, 0xF2, 0x71, 0xF6,
973 			0xCC, 0x6D, 0xBB, 0x8D, 0xC7, 0xEC, 0x36, 0xE3,
974 			0x6B, 0xE1, 0xED, 0x30, 0x81, 0x64, 0xC3, 0x1C,
975 			0x7C, 0x0A, 0xFC, 0x54, 0x1C
976 		},
977 		.len = 5672
978 	},
979 	.validAuthLenInBits = {
980 		.len = 5670
981 	},
982 	.digest = {
983 		.data = {0x0C, 0xA1, 0x27, 0x92},
984 		.len  = 4
985 	}
986 };
987 
988 static struct wireless_test_data zuc_test_case_auth_128b = {
989 	.key = {
990 		.data = { 0x0 },
991 		.len = 16
992 	},
993 	.auth_iv = {
994 		.data = { 0x0 },
995 		.len = 16
996 	},
997 	.plaintext = {
998 		.data = { 0x0 },
999 		.len = 8
1000 	},
1001 	.validAuthLenInBits = {
1002 		.len = 8
1003 	},
1004 	.digest = {
1005 		.data = { 0x39, 0x0a, 0x91, 0xb7 },
1006 		.len  = 4
1007 	}
1008 };
1009 
1010 static struct wireless_test_data zuc_test_case_auth_2080b = {
1011 	.key = {
1012 		.data = {
1013 			0xC8, 0xA4, 0x82, 0x62, 0xD0, 0xC2, 0xE2, 0xBA,
1014 			0xC4, 0xB9, 0x6E, 0xF7, 0x7E, 0x80, 0xCA, 0x59
1015 		},
1016 		.len = 16
1017 	},
1018 	.auth_iv = {
1019 		.data = {
1020 			0x05, 0x09, 0x78, 0x50, 0x80, 0x00, 0x00, 0x00,
1021 			0x85, 0x09, 0x78, 0x50, 0x80, 0x00, 0x80, 0x00
1022 		},
1023 		.len = 16
1024 	},
1025 	.plaintext = {
1026 		.data = {
1027 			0xB5, 0x46, 0x43, 0x0B, 0xF8, 0x7B, 0x4F, 0x1E,
1028 			0xE8, 0x34, 0x70, 0x4C, 0xD6, 0x95, 0x1C, 0x36,
1029 			0xE2, 0x6F, 0x10, 0x8C, 0xF7, 0x31, 0x78, 0x8F,
1030 			0x48, 0xDC, 0x34, 0xF1, 0x67, 0x8C, 0x05, 0x22,
1031 			0x1C, 0x8F, 0xA7, 0xFF, 0x2F, 0x39, 0xF4, 0x77,
1032 			0xE7, 0xE4, 0x9E, 0xF6, 0x0A, 0x4E, 0xC2, 0xC3,
1033 			0xDE, 0x24, 0x31, 0x2A, 0x96, 0xAA, 0x26, 0xE1,
1034 			0xCF, 0xBA, 0x57, 0x56, 0x38, 0x38, 0xB2, 0x97,
1035 			0xF4, 0x7E, 0x85, 0x10, 0xC7, 0x79, 0xFD, 0x66,
1036 			0x54, 0xB1, 0x43, 0x38, 0x6F, 0xA6, 0x39, 0xD3,
1037 			0x1E, 0xDB, 0xD6, 0xC0, 0x6E, 0x47, 0xD1, 0x59,
1038 			0xD9, 0x43, 0x62, 0xF2, 0x6A, 0xEE, 0xED, 0xEE,
1039 			0x0E, 0x4F, 0x49, 0xD9, 0xBF, 0x84, 0x12, 0x99,
1040 			0x54, 0x15, 0xBF, 0xAD, 0x56, 0xEE, 0x82, 0xD1,
1041 			0xCA, 0x74, 0x63, 0xAB, 0xF0, 0x85, 0xB0, 0x82,
1042 			0xB0, 0x99, 0x04, 0xD6, 0xD9, 0x90, 0xD4, 0x3C,
1043 			0xF2, 0xE0, 0x62, 0xF4, 0x08, 0x39, 0xD9, 0x32,
1044 			0x48, 0xB1, 0xEB, 0x92, 0xCD, 0xFE, 0xD5, 0x30,
1045 			0x0B, 0xC1, 0x48, 0x28, 0x04, 0x30, 0xB6, 0xD0,
1046 			0xCA, 0xA0, 0x94, 0xB6, 0xEC, 0x89, 0x11, 0xAB,
1047 			0x7D, 0xC3, 0x68, 0x24, 0xB8, 0x24, 0xDC, 0x0A,
1048 			0xF6, 0x68, 0x2B, 0x09, 0x35, 0xFD, 0xE7, 0xB4,
1049 			0x92, 0xA1, 0x4D, 0xC2, 0xF4, 0x36, 0x48, 0x03,
1050 			0x8D, 0xA2, 0xCF, 0x79, 0x17, 0x0D, 0x2D, 0x50,
1051 			0x13, 0x3F, 0xD4, 0x94, 0x16, 0xCB, 0x6E, 0x33,
1052 			0xBE, 0xA9, 0x0B, 0x8B, 0xF4, 0x55, 0x9B, 0x03,
1053 			0x73, 0x2A, 0x01, 0xEA, 0x29, 0x0E, 0x6D, 0x07,
1054 			0x4F, 0x79, 0xBB, 0x83, 0xC1, 0x0E, 0x58, 0x00,
1055 			0x15, 0xCC, 0x1A, 0x85, 0xB3, 0x6B, 0x55, 0x01,
1056 			0x04, 0x6E, 0x9C, 0x4B, 0xDC, 0xAE, 0x51, 0x35,
1057 			0x69, 0x0B, 0x86, 0x66, 0xBD, 0x54, 0xB7, 0xA7,
1058 			0x03, 0xEA, 0x7B, 0x6F, 0x22, 0x0A, 0x54, 0x69,
1059 			0xA5, 0x68, 0x02, 0x7E
1060 		},
1061 		.len = 2080
1062 	},
1063 	.validAuthLenInBits = {
1064 		.len = 2080
1065 	},
1066 	.digest = {
1067 		.data = {0x03, 0x95, 0x32, 0xe1},
1068 		.len  = 4
1069 	}
1070 };
1071 
1072 static struct wireless_test_data zuc_test_case_auth_584b = {
1073 	.key = {
1074 		.data = {
1075 			0xc9, 0xe6, 0xce, 0xc4, 0x60, 0x7c, 0x72, 0xdb,
1076 			0x00, 0x0a, 0xef, 0xa8, 0x83, 0x85, 0xab, 0x0a
1077 		},
1078 		.len = 16
1079 	},
1080 	.auth_iv = {
1081 		.data = {
1082 			0xa9, 0x40, 0x59, 0xda, 0x50, 0x0, 0x0, 0x0,
1083 			0x29, 0x40, 0x59, 0xda, 0x50, 0x0, 0x80, 0x0
1084 		},
1085 		.len = 16
1086 	},
1087 	.plaintext = {
1088 		.data = {
1089 			0x98, 0x3b, 0x41, 0xd4, 0x7d, 0x78, 0x0c, 0x9e,
1090 			0x1a, 0xd1, 0x1d, 0x7e, 0xb7, 0x03, 0x91, 0xb1,
1091 			0xde, 0x0b, 0x35, 0xda, 0x2d, 0xc6, 0x2f, 0x83,
1092 			0xe7, 0xb7, 0x8d, 0x63, 0x06, 0xca, 0x0e, 0xa0,
1093 			0x7e, 0x94, 0x1b, 0x7b, 0xe9, 0x13, 0x48, 0xf9,
1094 			0xfc, 0xb1, 0x70, 0xe2, 0x21, 0x7f, 0xec, 0xd9,
1095 			0x7f, 0x9f, 0x68, 0xad, 0xb1, 0x6e, 0x5d, 0x7d,
1096 			0x21, 0xe5, 0x69, 0xd2, 0x80, 0xed, 0x77, 0x5c,
1097 			0xeb, 0xde, 0x3f, 0x40, 0x93, 0xc5, 0x38, 0x81,
1098 			0x00, 0x00, 0x00, 0x00
1099 		},
1100 		.len = 584
1101 	},
1102 	.validAuthLenInBits = {
1103 		.len = 584
1104 	},
1105 	.digest = {
1106 		.data = {0x24, 0xa8, 0x42, 0xb3},
1107 		.len  = 4
1108 	}
1109 };
1110 
1111 static struct wireless_test_data zuc_test_case_auth_2080b_mac_128b = {
1112 	.key = {
1113 		.data = {
1114 			0xC8, 0xA4, 0x82, 0x62, 0xD0, 0xC2, 0xE2, 0xBA,
1115 			0xC4, 0xB9, 0x6E, 0xF7, 0x7E, 0x80, 0xCA, 0x59,
1116 			0xC8, 0xA4, 0x82, 0x62, 0xD0, 0xC2, 0xE2, 0xBA,
1117 			0xC4, 0xB9, 0x6E, 0xF7, 0x7E, 0x80, 0xCA, 0x59
1118 		},
1119 		.len = 32
1120 	},
1121 	.auth_iv = {
1122 		.data = {
1123 			0x05, 0x09, 0x78, 0x50, 0x80, 0x00, 0x00, 0x00,
1124 			0x85, 0x09, 0x78, 0x50, 0x80, 0x00, 0x80, 0x00,
1125 			0x85, 0x09, 0x78, 0x50, 0x80, 0x00, 0x80, 0x00
1126 		},
1127 		.len = 24
1128 	},
1129 	.plaintext = {
1130 		.data = {
1131 			0xB5, 0x46, 0x43, 0x0B, 0xF8, 0x7B, 0x4F, 0x1E,
1132 			0xE8, 0x34, 0x70, 0x4C, 0xD6, 0x95, 0x1C, 0x36,
1133 			0xE2, 0x6F, 0x10, 0x8C, 0xF7, 0x31, 0x78, 0x8F,
1134 			0x48, 0xDC, 0x34, 0xF1, 0x67, 0x8C, 0x05, 0x22,
1135 			0x1C, 0x8F, 0xA7, 0xFF, 0x2F, 0x39, 0xF4, 0x77,
1136 			0xE7, 0xE4, 0x9E, 0xF6, 0x0A, 0x4E, 0xC2, 0xC3,
1137 			0xDE, 0x24, 0x31, 0x2A, 0x96, 0xAA, 0x26, 0xE1,
1138 			0xCF, 0xBA, 0x57, 0x56, 0x38, 0x38, 0xB2, 0x97,
1139 			0xF4, 0x7E, 0x85, 0x10, 0xC7, 0x79, 0xFD, 0x66,
1140 			0x54, 0xB1, 0x43, 0x38, 0x6F, 0xA6, 0x39, 0xD3,
1141 			0x1E, 0xDB, 0xD6, 0xC0, 0x6E, 0x47, 0xD1, 0x59,
1142 			0xD9, 0x43, 0x62, 0xF2, 0x6A, 0xEE, 0xED, 0xEE,
1143 			0x0E, 0x4F, 0x49, 0xD9, 0xBF, 0x84, 0x12, 0x99,
1144 			0x54, 0x15, 0xBF, 0xAD, 0x56, 0xEE, 0x82, 0xD1,
1145 			0xCA, 0x74, 0x63, 0xAB, 0xF0, 0x85, 0xB0, 0x82,
1146 			0xB0, 0x99, 0x04, 0xD6, 0xD9, 0x90, 0xD4, 0x3C,
1147 			0xF2, 0xE0, 0x62, 0xF4, 0x08, 0x39, 0xD9, 0x32,
1148 			0x48, 0xB1, 0xEB, 0x92, 0xCD, 0xFE, 0xD5, 0x30,
1149 			0x0B, 0xC1, 0x48, 0x28, 0x04, 0x30, 0xB6, 0xD0,
1150 			0xCA, 0xA0, 0x94, 0xB6, 0xEC, 0x89, 0x11, 0xAB,
1151 			0x7D, 0xC3, 0x68, 0x24, 0xB8, 0x24, 0xDC, 0x0A,
1152 			0xF6, 0x68, 0x2B, 0x09, 0x35, 0xFD, 0xE7, 0xB4,
1153 			0x92, 0xA1, 0x4D, 0xC2, 0xF4, 0x36, 0x48, 0x03,
1154 			0x8D, 0xA2, 0xCF, 0x79, 0x17, 0x0D, 0x2D, 0x50,
1155 			0x13, 0x3F, 0xD4, 0x94, 0x16, 0xCB, 0x6E, 0x33,
1156 			0xBE, 0xA9, 0x0B, 0x8B, 0xF4, 0x55, 0x9B, 0x03,
1157 			0x73, 0x2A, 0x01, 0xEA, 0x29, 0x0E, 0x6D, 0x07,
1158 			0x4F, 0x79, 0xBB, 0x83, 0xC1, 0x0E, 0x58, 0x00,
1159 			0x15, 0xCC, 0x1A, 0x85, 0xB3, 0x6B, 0x55, 0x01,
1160 			0x04, 0x6E, 0x9C, 0x4B, 0xDC, 0xAE, 0x51, 0x35,
1161 			0x69, 0x0B, 0x86, 0x66, 0xBD, 0x54, 0xB7, 0xA7,
1162 			0x03, 0xEA, 0x7B, 0x6F, 0x22, 0x0A, 0x54, 0x69,
1163 			0xA5, 0x68, 0x02, 0x7E
1164 		},
1165 		.len = 2080
1166 	},
1167 	.validAuthLenInBits = {
1168 		.len = 2080
1169 	},
1170 	.digest = {
1171 		.data = {0x05, 0x9f, 0xd8, 0x21, 0x90, 0xfb, 0x13, 0x26,
1172 				0x94, 0x37, 0x6d, 0xc0, 0xcc, 0x52, 0xb9, 0xcc},
1173 		.len  = 16
1174 	}
1175 };
1176 
1177 static struct wireless_test_data zuc_test_case_auth_584b_mac_64b = {
1178 	.key = {
1179 		.data = {
1180 			0xc9, 0xe6, 0xce, 0xc4, 0x60, 0x7c, 0x72, 0xdb,
1181 			0x00, 0x0a, 0xef, 0xa8, 0x83, 0x85, 0xab, 0x0a,
1182 			0xc9, 0xe6, 0xce, 0xc4, 0x60, 0x7c, 0x72, 0xdb,
1183 			0x00, 0x0a, 0xef, 0xa8, 0x83, 0x85, 0xab, 0x0a
1184 		},
1185 		.len = 32
1186 	},
1187 	.auth_iv = {
1188 		.data = {
1189 			0xa9, 0x40, 0x59, 0xda, 0x50, 0x0, 0x0, 0x0,
1190 			0x29, 0x40, 0x59, 0xda, 0x50, 0x0, 0x80, 0x0,
1191 			0x29, 0x40, 0x59, 0xda, 0x50, 0x0, 0x80, 0x0
1192 		},
1193 		.len = 24
1194 	},
1195 	.plaintext = {
1196 		.data = {
1197 			0x98, 0x3b, 0x41, 0xd4, 0x7d, 0x78, 0x0c, 0x9e,
1198 			0x1a, 0xd1, 0x1d, 0x7e, 0xb7, 0x03, 0x91, 0xb1,
1199 			0xde, 0x0b, 0x35, 0xda, 0x2d, 0xc6, 0x2f, 0x83,
1200 			0xe7, 0xb7, 0x8d, 0x63, 0x06, 0xca, 0x0e, 0xa0,
1201 			0x7e, 0x94, 0x1b, 0x7b, 0xe9, 0x13, 0x48, 0xf9,
1202 			0xfc, 0xb1, 0x70, 0xe2, 0x21, 0x7f, 0xec, 0xd9,
1203 			0x7f, 0x9f, 0x68, 0xad, 0xb1, 0x6e, 0x5d, 0x7d,
1204 			0x21, 0xe5, 0x69, 0xd2, 0x80, 0xed, 0x77, 0x5c,
1205 			0xeb, 0xde, 0x3f, 0x40, 0x93, 0xc5, 0x38, 0x81,
1206 			0x00, 0x00, 0x00, 0x00
1207 		},
1208 		.len = 584
1209 	},
1210 	.validAuthLenInBits = {
1211 		.len = 584
1212 	},
1213 	.digest = {
1214 		.data = {0xf5, 0x45, 0x4a, 0x75, 0x22, 0x39, 0x4b, 0xf2},
1215 		.len  = 8
1216 	}
1217 };
1218 
1219 struct wireless_test_data zuc_auth_cipher_test_case_1 = {
1220 	.key = {
1221 		.data = {
1222 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
1223 			0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10
1224 		},
1225 		.len = 16
1226 	},
1227 	.cipher_iv = {
1228 		.data = {
1229 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
1230 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1231 		},
1232 		.len = 16
1233 	},
1234 	.auth_iv = {
1235 		.data = {
1236 			0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
1237 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1238 		},
1239 		.len = 16
1240 	},
1241 	.plaintext = {
1242 		.data = {
1243 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1244 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1245 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1246 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1247 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1248 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1249 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1250 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1251 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1252 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1253 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1254 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1255 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1256 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1257 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A,
1258 			0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A
1259 		},
1260 		.len = 128 << 3
1261 	},
1262 	.ciphertext = {
1263 		.data = {
1264 			0x5A, 0x5A, 0xDB, 0x3D, 0xD5, 0xB7, 0xB9, 0x58,
1265 			0xA5, 0xD3, 0xE3, 0xF9, 0x18, 0x73, 0xB4, 0x74,
1266 			0x05, 0xF0, 0xE9, 0xB6, 0x5D, 0x9A, 0xE3, 0xFA,
1267 			0x5D, 0xFD, 0x24, 0x51, 0xAD, 0x73, 0xCA, 0x64,
1268 			0x91, 0xD5, 0xB3, 0x94, 0x10, 0x91, 0x89, 0xEA,
1269 			0x73, 0x6F, 0xB0, 0x2A, 0x0A, 0x63, 0x0F, 0x8D,
1270 			0x64, 0x87, 0xA3, 0x14, 0x6B, 0x93, 0x31, 0x0F,
1271 			0x14, 0xAD, 0xEA, 0x62, 0x80, 0x3F, 0x44, 0xDD,
1272 			0x4E, 0x30, 0xFA, 0xC8, 0x0E, 0x5F, 0x46, 0xE7,
1273 			0x60, 0xEC, 0xDF, 0x8B, 0x94, 0x7D, 0x2E, 0x63,
1274 			0x48, 0xD9, 0x69, 0x06, 0x13, 0xF2, 0x20, 0x49,
1275 			0x54, 0xA6, 0xD4, 0x98, 0xF4, 0xF6, 0x1D, 0x4A,
1276 			0xC9, 0xA5, 0xDA, 0x46, 0x3D, 0xD9, 0x02, 0x47,
1277 			0x1C, 0x20, 0x73, 0x35, 0x17, 0x1D, 0x81, 0x8D,
1278 			0x2E, 0xCD, 0x70, 0x37, 0x22, 0x55, 0x3C, 0xF3,
1279 			0xDA, 0x70, 0x42, 0x12, 0x0E, 0xAA, 0xC4, 0xAB
1280 		},
1281 		.len = 128 << 3
1282 	},
1283 	.validDataLenInBits = {
1284 		.len = 128 << 3
1285 	},
1286 	.validCipherLenInBits = {
1287 		.len = 126 << 3
1288 	},
1289 	.validAuthLenInBits = {
1290 		.len = 124 << 3
1291 	},
1292 	.validCipherOffsetInBits = {
1293 		.len = 2 << 3
1294 	},
1295 	.digest = {
1296 		.data = {0x0E, 0xAA, 0xC4, 0xAB},
1297 		.len  = 4,
1298 		.offset_bytes = 124
1299 	}
1300 };
1301 
1302 #endif /* TEST_CRYPTODEV_ZUC_TEST_VECTORS_H_ */
1303