doc: add patch dependency syntax to contributing guide
[dpdk.git] / app / test / test_cryptodev_security_docsis_test_vectors.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2020 Intel Corporation
3  */
4
5 #ifndef TEST_CRYPTODEV_SECURITY_DOCSIS_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_SECURITY_DOCSIS_TEST_VECTORS_H_
7
8 /*
9  * DOCSIS test data and cases
10  * - encrypt direction: CRC-Crypto
11  * - decrypt direction: Crypto-CRC
12  */
13
14 struct docsis_test_data {
15         struct {
16                 uint8_t data[32];
17                 unsigned int len;
18         } key;
19
20         struct {
21                 uint8_t data[16] __rte_aligned(16);
22                 unsigned int len;
23         } iv;
24
25         struct {
26                 uint8_t data[1024];
27                 unsigned int len;
28                 unsigned int cipher_offset;
29                 unsigned int crc_offset;
30                 bool no_cipher;
31                 bool no_crc;
32         } plaintext;
33
34         struct {
35                 uint8_t data[1024];
36                 unsigned int len;
37                 unsigned int cipher_offset;
38                 unsigned int crc_offset;
39                 bool no_cipher;
40                 bool no_crc;
41         } ciphertext;
42 };
43
44 struct docsis_test_data docsis_test_case_1 = {
45         .key = {
46                 .data = {
47                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
48                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
49                 },
50                 .len = 16
51         },
52         .iv = {
53                 .data = {
54                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
55                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
56                 },
57                 .len = 16
58         },
59         .plaintext = {
60                 .data = {
61                         /* DOCSIS header */
62                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
63                         /* Ethernet frame */
64                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
65                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
66                         /* CRC */
67                         0xFF, 0xFF, 0xFF, 0xFF
68                 },
69                 .len = 24,
70                 .cipher_offset = 18,
71                 .crc_offset = 6,
72                 .no_cipher = false,
73                 .no_crc = false
74         },
75         .ciphertext = {
76                 .data = {
77                         /* DOCSIS header */
78                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
79                         /* Ethernet frame */
80                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
81                         0x04, 0x03, 0x02, 0x01, 0x7A, 0xF0,
82                         /* CRC */
83                         0x61, 0xF8, 0x63, 0x42
84                 },
85                 .len = 24,
86                 .cipher_offset = 18,
87                 .crc_offset = 6,
88                 .no_cipher = false,
89                 .no_crc = false
90         }
91 };
92
93 struct docsis_test_data docsis_test_case_2 = {
94         .key = {
95                 .data = {
96                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
97                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
98                 },
99                 .len = 16
100         },
101         .iv = {
102                 .data = {
103                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
104                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
105                 },
106                 .len = 16
107         },
108         .plaintext = {
109                 .data = {
110                         /* DOCSIS header */
111                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
112                         /* Ethernet frame */
113                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
114                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA,
115                         /* CRC */
116                         0xFF, 0xFF, 0xFF, 0xFF
117                 },
118                 .len = 25,
119                 .cipher_offset = 18,
120                 .crc_offset = 6,
121                 .no_cipher = false,
122                 .no_crc = false
123         },
124         .ciphertext = {
125                 .data = {
126                         /* DOCSIS header */
127                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
128                         /* Ethernet frame */
129                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
130                         0x04, 0x03, 0x02, 0x01, 0x7A, 0xF0, 0xDF,
131                         /* CRC */
132                         0xFE, 0x12, 0x99, 0xE5
133                 },
134                 .len = 25,
135                 .cipher_offset = 18,
136                 .crc_offset = 6,
137                 .no_cipher = false,
138                 .no_crc = false
139         }
140 };
141
142 struct docsis_test_data docsis_test_case_3 = {
143         .key = {
144                 .data = {
145                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
146                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
147                 },
148                 .len = 16
149         },
150         .iv = {
151                 .data = {
152                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
153                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
154                 },
155                 .len = 16
156         },
157         .plaintext = {
158                 .data = {
159                         /* DOCSIS header */
160                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
161                         /* Ethernet frame */
162                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
163                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
164                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
165                         /* CRC */
166                         0xFF, 0xFF, 0xFF, 0xFF
167                 },
168                 .len = 34,
169                 .cipher_offset = 18,
170                 .crc_offset = 6,
171                 .no_cipher = false,
172                 .no_crc = false
173         },
174         .ciphertext = {
175                 .data = {
176                         /* DOCSIS header */
177                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178                         /* Ethernet frame */
179                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
180                         0x04, 0x03, 0x02, 0x01, 0xD6, 0xE2, 0x70, 0x5C,
181                         0xE6, 0x4D, 0xCC, 0x8C, 0x47, 0xB7, 0x09, 0xD6,
182                         /* CRC */
183                         0x54, 0x85, 0xF8, 0x32
184                 },
185                 .len = 34,
186                 .cipher_offset = 18,
187                 .crc_offset = 6,
188                 .no_cipher = false,
189                 .no_crc = false
190         }
191 };
192
193 struct docsis_test_data docsis_test_case_4 = {
194         .key = {
195                 .data = {
196                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
197                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
198                 },
199                 .len = 16
200         },
201         .iv = {
202                 .data = {
203                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
204                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
205                 },
206                 .len = 16
207         },
208         .plaintext = {
209                 .data = {
210                         /* DOCSIS header */
211                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
212                         /* Ethernet frame */
213                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
214                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
215                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
216                         0xAA,
217                         /* CRC */
218                         0xFF, 0xFF, 0xFF, 0xFF
219                 },
220                 .len = 35,
221                 .cipher_offset = 18,
222                 .crc_offset = 6,
223                 .no_cipher = false,
224                 .no_crc = false
225         },
226         .ciphertext = {
227                 .data = {
228                         /* DOCSIS header */
229                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
230                         /* Ethernet frame */
231                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
232                         0x04, 0x03, 0x02, 0x01, 0x92, 0x6A, 0xC2, 0xDC,
233                         0xEE, 0x3B, 0x31, 0xEC, 0x03, 0xDE, 0x95, 0x33,
234                         0x5E,
235                         /* CRC */
236                         0xFE, 0x47, 0x3E, 0x22
237                 },
238                 .len = 35,
239                 .cipher_offset = 18,
240                 .crc_offset = 6,
241                 .no_cipher = false,
242                 .no_crc = false
243         }
244 };
245
246 struct docsis_test_data docsis_test_case_5 = {
247         .key = {
248                 .data = {
249                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
250                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
251                 },
252                 .len = 16
253         },
254         .iv = {
255                 .data = {
256                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
257                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
258                 },
259                 .len = 16
260         },
261         .plaintext = {
262                 .data = {
263                         /* DOCSIS header */
264                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
265                         /* Ethernet frame */
266                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
267                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
268                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
269                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
270                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
271                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
272                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
273                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
274                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
275                         /* CRC */
276                         0xFF, 0xFF, 0xFF, 0xFF
277                 },
278                 .len = 82,
279                 .cipher_offset = 18,
280                 .crc_offset = 6,
281                 .no_cipher = false,
282                 .no_crc = false
283         },
284         .ciphertext = {
285                 .data = {
286                         /* DOCSIS header */
287                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
288                         /* Ethernet frame */
289                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
290                         0x04, 0x03, 0x02, 0x01, 0x77, 0x74, 0x56, 0x05,
291                         0xD1, 0x14, 0xA2, 0x8D, 0x2C, 0x9A, 0x11, 0xFC,
292                         0x7D, 0xB0, 0xE7, 0x18, 0xCE, 0x75, 0x7C, 0x89,
293                         0x14, 0x56, 0xE2, 0xF2, 0xB7, 0x47, 0x08, 0x27,
294                         0xF7, 0x08, 0x7A, 0x13, 0x90, 0x81, 0x75, 0xB0,
295                         0xC7, 0x91, 0x04, 0x83, 0xAD, 0x11, 0x46, 0x46,
296                         0xF8, 0x54, 0x87, 0xA0, 0x42, 0xF3, 0x71, 0xA9,
297                         0x8A, 0xCD, 0x59, 0x77, 0x67, 0x11, 0x1A, 0x87,
298                         /* CRC */
299                         0xAB, 0xED, 0x2C, 0x26
300                 },
301                 .len = 82,
302                 .cipher_offset = 18,
303                 .crc_offset = 6,
304                 .no_cipher = false,
305                 .no_crc = false
306         }
307 };
308
309 struct docsis_test_data docsis_test_case_6 = {
310         .key = {
311                 .data = {
312                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
313                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
314                 },
315                 .len = 16
316         },
317         .iv = {
318                 .data = {
319                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
320                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
321                 },
322                 .len = 16
323         },
324         .plaintext = {
325                 .data = {
326                         /* DOCSIS header */
327                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
328                         /* Ethernet frame */
329                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
330                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
331                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
332                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
333                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
334                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
335                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
336                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
337                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
338                         0xAA,
339                         /* CRC */
340                         0xFF, 0xFF, 0xFF, 0xFF
341                 },
342                 .len = 83,
343                 .cipher_offset = 18,
344                 .crc_offset = 6,
345                 .no_cipher = false,
346                 .no_crc = false
347         },
348         .ciphertext = {
349                 .data = {
350                         /* DOCSIS header */
351                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
352                         /* Ethernet frame */
353                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
354                         0x04, 0x03, 0x02, 0x01, 0x77, 0x74, 0x56, 0x05,
355                         0xD1, 0x14, 0xA2, 0x8D, 0x2C, 0x9A, 0x11, 0xFC,
356                         0x7D, 0xB0, 0xE7, 0x18, 0xCE, 0x75, 0x7C, 0x89,
357                         0x14, 0x56, 0xE2, 0xF2, 0xB7, 0x47, 0x08, 0x27,
358                         0xF7, 0x08, 0x7A, 0x13, 0x90, 0x81, 0x75, 0xB0,
359                         0xC7, 0x91, 0x04, 0x83, 0xAD, 0x11, 0x46, 0x46,
360                         0xF8, 0x54, 0x87, 0xA0, 0xA4, 0x0C, 0xC2, 0xF0,
361                         0x81, 0x49, 0xA8, 0xA6, 0x6C, 0x48, 0xEB, 0x1F,
362                         0x4B,
363                         /* CRC */
364                         0x2F, 0xD4, 0x48, 0x18
365                 },
366                 .len = 83,
367                 .cipher_offset = 18,
368                 .crc_offset = 6,
369                 .no_cipher = false,
370                 .no_crc = false
371         }
372 };
373
374 struct docsis_test_data docsis_test_case_7 = {
375         .key = {
376                 .data = {
377                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
378                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
379                 },
380                 .len = 16
381         },
382         .iv = {
383                 .data = {
384                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
385                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
386                 },
387                 .len = 16
388         },
389         .plaintext = {
390                 .data = {
391                         /* DOCSIS header */
392                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
393                         /* Ethernet frame */
394                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
395                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
396                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
397                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
398                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
399                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
400                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
401                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
402                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
403                         0xAA,
404                         /* CRC */
405                         0xFF, 0xFF, 0xFF, 0xFF
406                 },
407                 .len = 83,
408                 .cipher_offset = 40,
409                 .crc_offset = 6,
410                 .no_cipher = false,
411                 .no_crc = false
412         },
413         .ciphertext = {
414                 .data = {
415                         /* DOCSIS header */
416                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
417                         /* Ethernet frame */
418                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
419                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
420                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
421                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
422                         0xAA, 0xAA, 0x3B, 0x9F, 0x72, 0x4C, 0xB5, 0x72,
423                         0x3E, 0x56, 0x54, 0x49, 0x13, 0x53, 0xC4, 0xAA,
424                         0xCD, 0xEA, 0x6A, 0x88, 0x99, 0x07, 0x86, 0xF4,
425                         0xCF, 0x03, 0x4E, 0xDF, 0x65, 0x61, 0x47, 0x5B,
426                         0x2F, 0x81, 0x09, 0x12, 0x9A, 0xC2, 0x24, 0x8C,
427                         0x09,
428                         /* CRC */
429                         0x11, 0xB4, 0x06, 0x33
430                 },
431                 .len = 83,
432                 .cipher_offset = 40,
433                 .crc_offset = 6,
434                 .no_cipher = false,
435                 .no_crc = false
436         }
437 };
438
439 struct docsis_test_data docsis_test_case_8 = {
440         .key = {
441                 .data = {
442                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
443                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
444                 },
445                 .len = 16
446         },
447         .iv = {
448                 .data = {
449                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
450                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
451                 },
452                 .len = 16
453         },
454         .plaintext = {
455                 .data = {
456                         /* DOCSIS header */
457                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
458                         /* Ethernet frame */
459                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
460                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
461                         /* CRC */
462                         0xFF, 0xFF, 0xFF, 0xFF
463                 },
464                 .len = 24,
465                 .cipher_offset = 18,
466                 .crc_offset = 6,
467                 .no_cipher = false,
468                 .no_crc = true
469         },
470         .ciphertext = {
471                 .data = {
472                         /* DOCSIS header */
473                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
474                         /* Ethernet frame */
475                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
476                         0x04, 0x03, 0x02, 0x01, 0x7A, 0xF0,
477                         /* CRC */
478                         0x8A, 0x0F, 0x74, 0xE8
479                 },
480                 .len = 24,
481                 .cipher_offset = 18,
482                 .crc_offset = 6,
483                 .no_cipher = false,
484                 .no_crc = true
485         }
486 };
487
488 struct docsis_test_data docsis_test_case_9 = {
489         .key = {
490                 .data = {
491                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
492                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
493                 },
494                 .len = 16
495         },
496         .iv = {
497                 .data = {
498                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
499                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
500                 },
501                 .len = 16
502         },
503         .plaintext = {
504                 .data = {
505                         /* DOCSIS header */
506                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
507                         /* Ethernet frame */
508                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
509                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
510                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
511                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
512                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
513                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
514                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
515                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
516                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
517                         0xAA,
518                         /* CRC */
519                         0xFF, 0xFF, 0xFF, 0xFF
520                 },
521                 .len = 83,
522                 .cipher_offset = 40,
523                 .crc_offset = 6,
524                 .no_cipher = false,
525                 .no_crc = true
526         },
527         .ciphertext = {
528                 .data = {
529                         /* DOCSIS header */
530                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
531                         /* Ethernet frame */
532                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
533                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
534                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
535                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
536                         0xAA, 0xAA, 0x3B, 0x9F, 0x72, 0x4C, 0xB5, 0x72,
537                         0x3E, 0x56, 0x54, 0x49, 0x13, 0x53, 0xC4, 0xAA,
538                         0xCD, 0xEA, 0x6A, 0x88, 0x99, 0x07, 0x86, 0xF4,
539                         0xCF, 0x03, 0x4E, 0xDF, 0x65, 0x61, 0x47, 0x5B,
540                         0x2F, 0x81, 0x09, 0x12, 0x9A, 0xC2, 0x24, 0x8C,
541                         0x09,
542                         /* CRC */
543                         0x5D, 0x2B, 0x12, 0xF4
544                 },
545                 .len = 83,
546                 .cipher_offset = 40,
547                 .crc_offset = 6,
548                 .no_cipher = false,
549                 .no_crc = true
550         }
551 };
552
553 struct docsis_test_data docsis_test_case_10 = {
554         .key = {
555                 .data = {
556                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
557                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
558                 },
559                 .len = 16
560         },
561         .iv = {
562                 .data = {
563                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
564                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
565                 },
566                 .len = 16
567         },
568         .plaintext = {
569                 .data = {
570                         /* DOCSIS header */
571                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
572                         /* Ethernet frame */
573                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
574                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
575                         /* CRC */
576                         0xFF, 0xFF, 0xFF, 0xFF
577                 },
578                 .len = 24,
579                 .cipher_offset = 18,
580                 .crc_offset = 6,
581                 .no_cipher = true,
582                 .no_crc = false
583         },
584         .ciphertext = {
585                 .data = {
586                         /* DOCSIS header */
587                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
588                         /* Ethernet frame */
589                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
590                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
591                         /* CRC */
592                         0x14, 0x08, 0xE8, 0x55
593                 },
594                 .len = 24,
595                 .cipher_offset = 18,
596                 .crc_offset = 6,
597                 .no_cipher = true,
598                 .no_crc = false
599         }
600 };
601
602 struct docsis_test_data docsis_test_case_11 = {
603         .key = {
604                 .data = {
605                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
606                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
607                 },
608                 .len = 16
609         },
610         .iv = {
611                 .data = {
612                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
613                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
614                 },
615                 .len = 16
616         },
617         .plaintext = {
618                 .data = {
619                         /* DOCSIS header */
620                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
621                         /* Ethernet frame */
622                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
623                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
624                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
625                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
626                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
627                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
628                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
629                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
630                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
631                         0xAA,
632                         /* CRC */
633                         0xFF, 0xFF, 0xFF, 0xFF
634                 },
635                 .len = 83,
636                 .cipher_offset = 40,
637                 .crc_offset = 6,
638                 .no_cipher = true,
639                 .no_crc = false
640         },
641         .ciphertext = {
642                 .data = {
643                         /* DOCSIS header */
644                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
645                         /* Ethernet frame */
646                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
647                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
648                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
649                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
650                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
651                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
652                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
653                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
654                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
655                         0xAA,
656                         /* CRC */
657                         0xB3, 0x60, 0xEB, 0x38
658                 },
659                 .len = 83,
660                 .cipher_offset = 40,
661                 .crc_offset = 6,
662                 .no_cipher = true,
663                 .no_crc = false
664         }
665 };
666
667 struct docsis_test_data docsis_test_case_12 = {
668         .key = {
669                 .data = {
670                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
671                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
672                 },
673                 .len = 16
674         },
675         .iv = {
676                 .data = {
677                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
678                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
679                 },
680                 .len = 16
681         },
682         .plaintext = {
683                 .data = {
684                         /* DOCSIS header */
685                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
686                         /* Ethernet frame */
687                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
688                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
689                         /* CRC */
690                         0xFF, 0xFF, 0xFF, 0xFF
691                 },
692                 .len = 24,
693                 .cipher_offset = 18,
694                 .crc_offset = 6,
695                 .no_cipher = true,
696                 .no_crc = true
697         },
698         .ciphertext = {
699                 .data = {
700                         /* DOCSIS header */
701                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
702                         /* Ethernet frame */
703                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
704                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
705                         /* CRC */
706                         0xFF, 0xFF, 0xFF, 0xFF
707                 },
708                 .len = 24,
709                 .cipher_offset = 18,
710                 .crc_offset = 6,
711                 .no_cipher = true,
712                 .no_crc = true
713         }
714 };
715
716 struct docsis_test_data docsis_test_case_13 = {
717         .key = {
718                 .data = {
719                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
720                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
721                 },
722                 .len = 16
723         },
724         .iv = {
725                 .data = {
726                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
727                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
728                 },
729                 .len = 16
730         },
731         .plaintext = {
732                 .data = {
733                         /* DOCSIS header */
734                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
735                         /* Ethernet frame */
736                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
737                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
738                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
739                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
740                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
741                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
742                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
743                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
744                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
745                         0xAA,
746                         /* CRC */
747                         0xFF, 0xFF, 0xFF, 0xFF
748                 },
749                 .len = 83,
750                 .cipher_offset = 40,
751                 .crc_offset = 6,
752                 .no_cipher = true,
753                 .no_crc = true
754         },
755         .ciphertext = {
756                 .data = {
757                         /* DOCSIS header */
758                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
759                         /* Ethernet frame */
760                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
761                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
762                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
763                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
764                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
765                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
766                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
767                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
768                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
769                         0xAA,
770                         /* CRC */
771                         0xFF, 0xFF, 0xFF, 0xFF
772                 },
773                 .len = 83,
774                 .cipher_offset = 40,
775                 .crc_offset = 6,
776                 .no_cipher = true,
777                 .no_crc = true
778         }
779 };
780
781 struct docsis_test_data docsis_test_case_14 = {
782         .key = {
783                 .data = {
784                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
785                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
786                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
787                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
788                 },
789                 .len = 32
790         },
791         .iv = {
792                 .data = {
793                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
794                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
795                 },
796                 .len = 16
797         },
798         .plaintext = {
799                 .data = {
800                         /* DOCSIS header */
801                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
802                         /* Ethernet frame */
803                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
804                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
805                         /* CRC */
806                         0xFF, 0xFF, 0xFF, 0xFF
807                 },
808                 .len = 24,
809                 .cipher_offset = 18,
810                 .crc_offset = 6,
811                 .no_cipher = false,
812                 .no_crc = false
813         },
814         .ciphertext = {
815                 .data = {
816                         /* DOCSIS header */
817                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
818                         /* Ethernet frame */
819                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
820                         0x04, 0x03, 0x02, 0x01, 0x6A, 0x86,
821                         /* CRC */
822                         0x9B, 0xB3, 0x1A, 0x26
823                 },
824                 .len = 24,
825                 .cipher_offset = 18,
826                 .crc_offset = 6,
827                 .no_cipher = false,
828                 .no_crc = false
829         }
830 };
831
832 struct docsis_test_data docsis_test_case_15 = {
833         .key = {
834                 .data = {
835                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
836                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
837                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
838                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
839                 },
840                 .len = 32
841         },
842         .iv = {
843                 .data = {
844                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
845                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
846                 },
847                 .len = 16
848         },
849         .plaintext = {
850                 .data = {
851                         /* DOCSIS header */
852                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
853                         /* Ethernet frame */
854                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
855                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA,
856                         /* CRC */
857                         0xFF, 0xFF, 0xFF, 0xFF
858                 },
859                 .len = 25,
860                 .cipher_offset = 18,
861                 .crc_offset = 6,
862                 .no_cipher = false,
863                 .no_crc = false
864         },
865         .ciphertext = {
866                 .data = {
867                         /* DOCSIS header */
868                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
869                         /* Ethernet frame */
870                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
871                         0x04, 0x03, 0x02, 0x01, 0x6A, 0x86, 0x25,
872                         /* CRC */
873                         0xB5, 0x6B, 0xFD, 0xCB
874                 },
875                 .len = 25,
876                 .cipher_offset = 18,
877                 .crc_offset = 6,
878                 .no_cipher = false,
879                 .no_crc = false
880         }
881 };
882
883 struct docsis_test_data docsis_test_case_16 = {
884         .key = {
885                 .data = {
886                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
887                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
888                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
889                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
890                 },
891                 .len = 32
892         },
893         .iv = {
894                 .data = {
895                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
896                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
897                 },
898                 .len = 16
899         },
900         .plaintext = {
901                 .data = {
902                         /* DOCSIS header */
903                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
904                         /* Ethernet frame */
905                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
906                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
907                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
908                         /* CRC */
909                         0xFF, 0xFF, 0xFF, 0xFF
910                 },
911                 .len = 34,
912                 .cipher_offset = 18,
913                 .crc_offset = 6,
914                 .no_cipher = false,
915                 .no_crc = false
916         },
917         .ciphertext = {
918                 .data = {
919                         /* DOCSIS header */
920                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
921                         /* Ethernet frame */
922                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
923                         0x04, 0x03, 0x02, 0x01, 0xF6, 0xA1, 0x2E, 0x0A,
924                         0xBB, 0x27, 0x82, 0x4F, 0x99, 0x0A, 0xE2, 0x3F,
925                         /* CRC */
926                         0xEB, 0xB7, 0x89, 0xB0
927                 },
928                 .len = 34,
929                 .cipher_offset = 18,
930                 .crc_offset = 6,
931                 .no_cipher = false,
932                 .no_crc = false
933         }
934 };
935
936 struct docsis_test_data docsis_test_case_17 = {
937         .key = {
938                 .data = {
939                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
940                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
941                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
942                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
943                 },
944                 .len = 32
945         },
946         .iv = {
947                 .data = {
948                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
949                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
950                 },
951                 .len = 16
952         },
953         .plaintext = {
954                 .data = {
955                         /* DOCSIS header */
956                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
957                         /* Ethernet frame */
958                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
959                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
960                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
961                         0xAA,
962                         /* CRC */
963                         0xFF, 0xFF, 0xFF, 0xFF
964                 },
965                 .len = 35,
966                 .cipher_offset = 18,
967                 .crc_offset = 6,
968                 .no_cipher = false,
969                 .no_crc = false
970         },
971         .ciphertext = {
972                 .data = {
973                         /* DOCSIS header */
974                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
975                         /* Ethernet frame */
976                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
977                         0x04, 0x03, 0x02, 0x01, 0xE1, 0x30, 0x38, 0xC8,
978                         0xC4, 0x59, 0x8D, 0x43, 0x9A, 0xBE, 0xBE, 0x73,
979                         0xC3,
980                         /*CRC */
981                         0x8C, 0xE1, 0x89, 0x8B
982                 },
983                 .len = 35,
984                 .cipher_offset = 18,
985                 .crc_offset = 6,
986                 .no_cipher = false,
987                 .no_crc = false
988         }
989 };
990
991 struct docsis_test_data docsis_test_case_18 = {
992         .key = {
993                 .data = {
994                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
995                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
996                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
997                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
998                 },
999                 .len = 32
1000         },
1001         .iv = {
1002                 .data = {
1003                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
1004                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
1005                 },
1006                 .len = 16
1007         },
1008         .plaintext = {
1009                 .data = {
1010                         /* DOCSIS header */
1011                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1012                         /* Ethernet frame */
1013                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1014                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
1015                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1016                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1017                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1018                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1019                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1020                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1021                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1022                         /* CRC */
1023                         0xFF, 0xFF, 0xFF, 0xFF
1024                 },
1025                 .len = 82,
1026                 .cipher_offset = 18,
1027                 .crc_offset = 6,
1028                 .no_cipher = false,
1029                 .no_crc = false
1030         },
1031         .ciphertext = {
1032                 .data = {
1033                         /* DOCSIS header */
1034                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1035                         /* Ethernet frame */
1036                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1037                         0x04, 0x03, 0x02, 0x01, 0xE9, 0x12, 0x3B, 0x12,
1038                         0x36, 0x56, 0x95, 0xA6, 0x97, 0xF1, 0x74, 0x68,
1039                         0xBA, 0x58, 0x77, 0xEA, 0x43, 0x11, 0x85, 0xD4,
1040                         0x7A, 0xF8, 0x1C, 0x11, 0x50, 0xD1, 0xF1, 0xBD,
1041                         0x15, 0x4D, 0x99, 0xB5, 0x39, 0x74, 0x84, 0xDF,
1042                         0xD4, 0x8B, 0xDC, 0xB7, 0x58, 0x1B, 0x22, 0xAB,
1043                         0xF3, 0x29, 0xC6, 0xCB, 0x26, 0x07, 0x36, 0x6B,
1044                         0x8C, 0xAC, 0x6E, 0x99, 0x37, 0x94, 0xDF, 0x31,
1045                         /* CRC */
1046                         0xA1, 0x7D, 0x70, 0xBB
1047                 },
1048                 .len = 82,
1049                 .cipher_offset = 18,
1050                 .crc_offset = 6,
1051                 .no_cipher = false,
1052                 .no_crc = false
1053         }
1054 };
1055
1056 struct docsis_test_data docsis_test_case_19 = {
1057         .key = {
1058                 .data = {
1059                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
1060                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
1061                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
1062                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
1063                 },
1064                 .len = 32
1065         },
1066         .iv = {
1067                 .data = {
1068                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
1069                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
1070                 },
1071                 .len = 16
1072         },
1073         .plaintext = {
1074                 .data = {
1075                         /* DOCSIS header */
1076                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1077                         /* Ethernet frame */
1078                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1079                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
1080                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1081                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1082                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1083                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1084                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1085                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1086                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1087                         0xAA,
1088                         /* CRC */
1089                         0xFF, 0xFF, 0xFF, 0xFF
1090                 },
1091                 .len = 83,
1092                 .cipher_offset = 18,
1093                 .crc_offset = 6,
1094                 .no_cipher = false,
1095                 .no_crc = false
1096         },
1097         .ciphertext = {
1098                 .data = {
1099                         /* DOCSIS header */
1100                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1101                         /* Ethernet frame */
1102                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1103                         0x04, 0x03, 0x02, 0x01, 0xE9, 0x12, 0x3B, 0x12,
1104                         0x36, 0x56, 0x95, 0xA6, 0x97, 0xF1, 0x74, 0x68,
1105                         0xBA, 0x58, 0x77, 0xEA, 0x43, 0x11, 0x85, 0xD4,
1106                         0x7A, 0xF8, 0x1C, 0x11, 0x50, 0xD1, 0xF1, 0xBD,
1107                         0x15, 0x4D, 0x99, 0xB5, 0x39, 0x74, 0x84, 0xDF,
1108                         0xD4, 0x8B, 0xDC, 0xB7, 0x58, 0x1B, 0x22, 0xAB,
1109                         0xF3, 0x29, 0xC6, 0xCB, 0x13, 0xED, 0x08, 0xF5,
1110                         0x1B, 0x4B, 0xD8, 0x79, 0x93, 0x26, 0x69, 0x03,
1111                         0x23,
1112                         /* CRC */
1113                         0xC8, 0x8E, 0x02, 0x3A
1114                 },
1115                 .len = 83,
1116                 .cipher_offset = 18,
1117                 .crc_offset = 6,
1118                 .no_cipher = false,
1119                 .no_crc = false
1120         }
1121 };
1122
1123 struct docsis_test_data docsis_test_case_20 = {
1124         .key = {
1125                 .data = {
1126                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
1127                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
1128                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
1129                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
1130                 },
1131                 .len = 32
1132         },
1133         .iv = {
1134                 .data = {
1135                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
1136                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
1137                 },
1138                 .len = 16
1139         },
1140         .plaintext = {
1141                 .data = {
1142                         /* DOCSIS header */
1143                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1144                         /* Ethernet frame */
1145                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1146                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
1147                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1148                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1149                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1150                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1151                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1152                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1153                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1154                         0xAA,
1155                         /* CRC */
1156                         0xFF, 0xFF, 0xFF, 0xFF
1157                 },
1158                 .len = 83,
1159                 .cipher_offset = 40,
1160                 .crc_offset = 6,
1161                 .no_cipher = false,
1162                 .no_crc = false
1163         },
1164         .ciphertext = {
1165                 .data = {
1166                         /* DOCSIS header */
1167                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1168                         /* Ethernet frame */
1169                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1170                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
1171                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1172                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1173                         0xAA, 0xAA, 0x54, 0xB4, 0x55, 0x68, 0x06, 0xBF,
1174                         0x00, 0x8B, 0x5F, 0x2C, 0x10, 0x4A, 0xBF, 0x5A,
1175                         0xF2, 0x20, 0xD9, 0x77, 0x7F, 0x2D, 0x2B, 0x11,
1176                         0xAC, 0xAF, 0x21, 0x36, 0xD2, 0xD4, 0x80, 0xF2,
1177                         0x4F, 0x14, 0xA0, 0x3A, 0x66, 0xE5, 0xC5, 0xE2,
1178                         0x15,
1179                         /* CRC */
1180                         0x0C, 0x89, 0x76, 0x26
1181                 },
1182                 .len = 83,
1183                 .cipher_offset = 40,
1184                 .crc_offset = 6,
1185                 .no_cipher = false,
1186                 .no_crc = false
1187         }
1188 };
1189
1190 struct docsis_test_data docsis_test_case_21 = {
1191         .key = {
1192                 .data = {
1193                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
1194                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
1195                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
1196                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
1197                 },
1198                 .len = 32
1199         },
1200         .iv = {
1201                 .data = {
1202                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
1203                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
1204                 },
1205                 .len = 16
1206         },
1207         .plaintext = {
1208                 .data = {
1209                         /* DOCSIS header */
1210                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1211                         /* Ethernet frame */
1212                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1213                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
1214                         /* CRC */
1215                         0xFF, 0xFF, 0xFF, 0xFF
1216                 },
1217                 .len = 24,
1218                 .cipher_offset = 18,
1219                 .crc_offset = 6,
1220                 .no_cipher = false,
1221                 .no_crc = true
1222         },
1223         .ciphertext = {
1224                 .data = {
1225                         /* DOCSIS header */
1226                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1227                         /* Ethernet frame */
1228                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1229                         0x04, 0x03, 0x02, 0x01, 0x6A, 0x86,
1230                         /* CRC */
1231                         0x70, 0x44, 0x0D, 0x8C
1232                 },
1233                 .len = 24,
1234                 .cipher_offset = 18,
1235                 .crc_offset = 6,
1236                 .no_cipher = false,
1237                 .no_crc = true
1238         }
1239 };
1240
1241 struct docsis_test_data docsis_test_case_22 = {
1242         .key = {
1243                 .data = {
1244                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
1245                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
1246                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
1247                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
1248                 },
1249                 .len = 32
1250         },
1251         .iv = {
1252                 .data = {
1253                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
1254                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
1255                 },
1256                 .len = 16
1257         },
1258         .plaintext = {
1259                 .data = {
1260                         /* DOCSIS header */
1261                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1262                         /* Ethernet frame */
1263                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1264                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
1265                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1266                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1267                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1268                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1269                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1270                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1271                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1272                         0xAA,
1273                         /* CRC */
1274                         0xFF, 0xFF, 0xFF, 0xFF
1275                 },
1276                 .len = 83,
1277                 .cipher_offset = 40,
1278                 .crc_offset = 6,
1279                 .no_cipher = false,
1280                 .no_crc = true
1281         },
1282         .ciphertext = {
1283                 .data = {
1284                         /* DOCSIS header */
1285                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1286                         /* Ethernet frame */
1287                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1288                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
1289                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1290                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1291                         0xAA, 0xAA, 0x54, 0xB4, 0x55, 0x68, 0x06, 0xBF,
1292                         0x00, 0x8B, 0x5F, 0x2C, 0x10, 0x4A, 0xBF, 0x5A,
1293                         0xF2, 0x20, 0xD9, 0x77, 0x7F, 0x2D, 0x2B, 0x11,
1294                         0xAC, 0xAF, 0x21, 0x36, 0xD2, 0xD4, 0x80, 0xF2,
1295                         0x4F, 0x14, 0xA0, 0x3A, 0x66, 0xE5, 0xC5, 0xE2,
1296                         0x15,
1297                         /* CRC */
1298                         0x40, 0x16, 0x62, 0xE1
1299                 },
1300                 .len = 83,
1301                 .cipher_offset = 40,
1302                 .crc_offset = 6,
1303                 .no_cipher = false,
1304                 .no_crc = true
1305         }
1306 };
1307
1308 struct docsis_test_data docsis_test_case_23 = {
1309         .key = {
1310                 .data = {
1311                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
1312                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
1313                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
1314                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
1315                 },
1316                 .len = 32
1317         },
1318         .iv = {
1319                 .data = {
1320                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
1321                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
1322                 },
1323                 .len = 16
1324         },
1325         .plaintext = {
1326                 .data = {
1327                         /* DOCSIS header */
1328                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1329                         /* Ethernet frame */
1330                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1331                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
1332                         /* CRC */
1333                         0xFF, 0xFF, 0xFF, 0xFF
1334                 },
1335                 .len = 24,
1336                 .cipher_offset = 18,
1337                 .crc_offset = 6,
1338                 .no_cipher = true,
1339                 .no_crc = false
1340         },
1341         .ciphertext = {
1342                 .data = {
1343                         /* DOCSIS header */
1344                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1345                         /* Ethernet frame */
1346                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1347                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
1348                         /* CRC */
1349                         0x14, 0x08, 0xE8, 0x55
1350                 },
1351                 .len = 24,
1352                 .cipher_offset = 18,
1353                 .crc_offset = 6,
1354                 .no_cipher = true,
1355                 .no_crc = false
1356         }
1357 };
1358
1359 struct docsis_test_data docsis_test_case_24 = {
1360         .key = {
1361                 .data = {
1362                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
1363                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
1364                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
1365                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
1366                 },
1367                 .len = 32
1368         },
1369         .iv = {
1370                 .data = {
1371                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
1372                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
1373                 },
1374                 .len = 16
1375         },
1376         .plaintext = {
1377                 .data = {
1378                         /* DOCSIS header */
1379                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1380                         /* Ethernet frame */
1381                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1382                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
1383                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1384                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1385                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1386                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1387                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1388                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1389                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1390                         0xAA,
1391                         /* CRC */
1392                         0xFF, 0xFF, 0xFF, 0xFF
1393                 },
1394                 .len = 83,
1395                 .cipher_offset = 40,
1396                 .crc_offset = 6,
1397                 .no_cipher = true,
1398                 .no_crc = false
1399         },
1400         .ciphertext = {
1401                 .data = {
1402                         /* DOCSIS header */
1403                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1404                         /* Ethernet frame */
1405                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1406                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
1407                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1408                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1409                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1410                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1411                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1412                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1413                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1414                         0xAA,
1415                         /* CRC */
1416                         0xB3, 0x60, 0xEB, 0x38
1417                 },
1418                 .len = 83,
1419                 .cipher_offset = 40,
1420                 .crc_offset = 6,
1421                 .no_cipher = true,
1422                 .no_crc = false
1423         }
1424 };
1425
1426 struct docsis_test_data docsis_test_case_25 = {
1427         .key = {
1428                 .data = {
1429                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
1430                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
1431                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
1432                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
1433                 },
1434                 .len = 32
1435         },
1436         .iv = {
1437                 .data = {
1438                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
1439                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
1440                 },
1441                 .len = 16
1442         },
1443         .plaintext = {
1444                 .data = {
1445                         /* DOCSIS header */
1446                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1447                         /* Ethernet frame */
1448                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1449                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
1450                         /* CRC */
1451                         0xFF, 0xFF, 0xFF, 0xFF
1452                 },
1453                 .len = 24,
1454                 .cipher_offset = 18,
1455                 .crc_offset = 6,
1456                 .no_cipher = true,
1457                 .no_crc = true
1458         },
1459         .ciphertext = {
1460                 .data = {
1461                         /* DOCSIS header */
1462                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1463                         /* Ethernet frame */
1464                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1465                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00,
1466                         /* CRC */
1467                         0xFF, 0xFF, 0xFF, 0xFF
1468                 },
1469                 .len = 24,
1470                 .cipher_offset = 18,
1471                 .crc_offset = 6,
1472                 .no_cipher = true,
1473                 .no_crc = true
1474         }
1475 };
1476
1477 struct docsis_test_data docsis_test_case_26 = {
1478         .key = {
1479                 .data = {
1480                         0x00, 0x00, 0x00, 0x00, 0xAA, 0xBB, 0xCC, 0xDD,
1481                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
1482                         0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD,
1483                         0xEE, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55
1484                 },
1485                 .len = 32
1486         },
1487         .iv = {
1488                 .data = {
1489                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
1490                         0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11
1491                 },
1492                 .len = 16
1493         },
1494         .plaintext = {
1495                 .data = {
1496                         /* DOCSIS header */
1497                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1498                         /* Ethernet frame */
1499                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1500                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
1501                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1502                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1503                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1504                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1505                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1506                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1507                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1508                         0xAA,
1509                         /* CRC */
1510                         0xFF, 0xFF, 0xFF, 0xFF
1511                 },
1512                 .len = 83,
1513                 .cipher_offset = 40,
1514                 .crc_offset = 6,
1515                 .no_cipher = true,
1516                 .no_crc = true
1517         },
1518         .ciphertext = {
1519                 .data = {
1520                         /* DOCSIS header */
1521                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1522                         /* Ethernet frame */
1523                         0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x06, 0x05,
1524                         0x04, 0x03, 0x02, 0x01, 0x08, 0x00, 0xAA, 0xAA,
1525                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1526                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1527                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1528                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1529                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1530                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1531                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
1532                         0xAA,
1533                         /* CRC */
1534                         0xFF, 0xFF, 0xFF, 0xFF
1535                 },
1536                 .len = 83,
1537                 .cipher_offset = 40,
1538                 .crc_offset = 6,
1539                 .no_cipher = true,
1540                 .no_crc = true
1541         }
1542 };
1543
1544 #endif /* TEST_CRYPTODEV_SECURITY_DOCSIS_TEST_VECTORS_H_ */