07d6eab2c92508ed7a8d05a16d9a5102a4f26d9f
[deb_dpdk.git] / test / test / test_cryptodev_aes_test_vectors.h
1 /*
2  *   BSD LICENSE
3  *
4  *   Copyright(c) 2016-2017 Intel Corporation. All rights reserved.
5  *
6  *   Redistribution and use in source and binary forms, with or without
7  *   modification, are permitted provided that the following conditions
8  *   are met:
9  *
10  *       * Redistributions of source code must retain the above copyright
11  *         notice, this list of conditions and the following disclaimer.
12  *       * Redistributions in binary form must reproduce the above copyright
13  *         notice, this list of conditions and the following disclaimer in
14  *         the documentation and/or other materials provided with the
15  *         distribution.
16  *       * Neither the name of Intel Corporation nor the names of its
17  *         contributors may be used to endorse or promote products derived
18  *         from this software without specific prior written permission.
19  *
20  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32
33 #ifndef TEST_CRYPTODEV_AES_TEST_VECTORS_H_
34 #define TEST_CRYPTODEV_AES_TEST_VECTORS_H_
35
36 /* test vectors */
37 static const uint8_t plaintext_aes128ctr[] = {
38         0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
39         0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A,
40         0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C,
41         0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51,
42         0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11,
43         0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF,
44         0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17,
45         0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10
46 };
47
48 static const uint8_t ciphertext64_aes128ctr[] = {
49         0x87, 0x4D, 0x61, 0x91, 0xB6, 0x20, 0xE3, 0x26,
50         0x1B, 0xEF, 0x68, 0x64, 0x99, 0x0D, 0xB6, 0xCE,
51         0x98, 0x06, 0xF6, 0x6B, 0x79, 0x70, 0xFD, 0xFF,
52         0x86, 0x17, 0x18, 0x7B, 0xB9, 0xFF, 0xFD, 0xFF,
53         0x5A, 0xE4, 0xDF, 0x3E, 0xDB, 0xD5, 0xD3, 0x5E,
54         0x5B, 0x4F, 0x09, 0x02, 0x0D, 0xB0, 0x3E, 0xAB,
55         0x1E, 0x03, 0x1D, 0xDA, 0x2F, 0xBE, 0x03, 0xD1,
56         0x79, 0x21, 0x70, 0xA0, 0xF3, 0x00, 0x9C, 0xEE
57 };
58
59 static const uint8_t plaintext_aes_docsis_bpi_cfb[] = {
60         0x00, 0x01, 0x02, 0x88, 0xEE, 0x59, 0x7E
61 };
62
63 static const uint8_t ciphertext_aes_docsis_bpi_cfb[] = {
64         0xFC, 0x68, 0xA3, 0x55, 0x60, 0x37, 0xDC
65 };
66
67 static const uint8_t plaintext_aes_docsis_bpi_cbc_cfb[] = {
68         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
69         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x91,
70         0xD2, 0xD1, 0x9F
71 };
72
73 static const uint8_t ciphertext_aes_docsis_bpi_cbc_cfb[] = {
74         0x9D, 0xD1, 0x67, 0x4B, 0xBA, 0x61, 0x10, 0x1B,
75         0x56, 0x75, 0x64, 0x74, 0x36, 0x4F, 0x10, 0x1D,
76         0x44, 0xD4, 0x73
77 };
78
79 static const uint8_t plaintext_aes192ctr[] = {
80         0x01, 0x0F, 0x10, 0x1F, 0x20, 0x1C, 0x0E, 0xB8,
81         0xFB, 0x5C, 0xCD, 0xCC, 0x1F, 0xF9, 0xAF, 0x0B,
82         0x95, 0x03, 0x74, 0x99, 0x49, 0xE7, 0x62, 0x55,
83         0xDA, 0xEA, 0x13, 0x20, 0x1D, 0xC6, 0xCC, 0xCC,
84         0xD1, 0x70, 0x75, 0x47, 0x02, 0x2F, 0xFB, 0x86,
85         0xBB, 0x6B, 0x23, 0xD2, 0xC9, 0x74, 0xD7, 0x7B,
86         0x08, 0x03, 0x3B, 0x79, 0x39, 0xBB, 0x91, 0x29,
87         0xDA, 0x14, 0x39, 0x8D, 0xFF, 0x81, 0x50, 0x96,
88 };
89
90 static const uint8_t ciphertext64_aes192ctr[] = {
91         0x4A, 0x6C, 0xC8, 0xCC, 0x96, 0x2A, 0x13, 0x84,
92         0x1C, 0x36, 0x88, 0xE9, 0xE5, 0x94, 0x70, 0xB2,
93         0x14, 0x5B, 0x13, 0x80, 0xEA, 0xD8, 0x8D, 0x37,
94         0xFD, 0x70, 0xA8, 0x83, 0xE8, 0x2B, 0x88, 0x1E,
95         0xBA, 0x94, 0x3F, 0xF6, 0xB3, 0x1F, 0xDE, 0x34,
96         0xF3, 0x5B, 0x80, 0xE9, 0xAB, 0xF5, 0x1C, 0x29,
97         0xB6, 0xD9, 0x76, 0x2B, 0x06, 0xC6, 0x74, 0xF1,
98         0x59, 0x5E, 0x9E, 0xA5, 0x7B, 0x2D, 0xD7, 0xF0
99 };
100
101 static const uint8_t plaintext_aes256ctr[] = {
102         0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
103         0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A,
104         0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C,
105         0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51,
106         0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11,
107         0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF,
108         0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17,
109         0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10
110 };
111
112 static const uint8_t ciphertext64_aes256ctr[] = {
113         0x60, 0x1E, 0xC3, 0x13, 0x77, 0x57, 0x89, 0xA5,
114         0xB7, 0xA7, 0xF5, 0x04, 0xBB, 0xF3, 0xD2, 0x28,
115         0xF4, 0x43, 0xE3, 0xCA, 0x4D, 0x62, 0xB5, 0x9A,
116         0xCA, 0x84, 0xE9, 0x90, 0xCA, 0xCA, 0xF5, 0xC5,
117         0x2B, 0x09, 0x30, 0xDA, 0xA2, 0x3D, 0xE9, 0x4C,
118         0xE8, 0x70, 0x17, 0xBA, 0x2D, 0x84, 0x98, 0x8D,
119         0xDF, 0xC9, 0xC5, 0x8D, 0xB6, 0x7A, 0xAD, 0xA6,
120         0x13, 0xC2, 0xDD, 0x08, 0x45, 0x79, 0x41, 0xA6
121 };
122
123 static const uint8_t plaintext_aes_common[] = {
124         "What a lousy earth! He wondered how many people "
125         "were destitute that same night even in his own "
126         "prosperous country, how many homes were "
127         "shanties, how many husbands were drunk and "
128         "wives socked, and how many children were "
129         "bullied, abused, or abandoned. How many "
130         "families hungered for food they could not "
131         "afford to buy? How many hearts were broken? How "
132         "many suicides would take place that same night, "
133         "how many people would go insane? How many "
134         "cockroaches and landlords would triumph? How "
135         "many winners were losers, successes failures, "
136         "and rich men poor men? How many wise guys were "
137         "stupid? How many happy endings were unhappy "
138         "endings? How many honest men were liars, brave "
139         "men cowards, loyal men traitors, how many "
140         "sainted men were corrupt, how many people in "
141         "positions of trust had sold their souls to "
142         "bodyguards, how many had never had souls? How "
143         "many straight-and-narrow paths were crooked "
144         "paths? How many best families were worst "
145         "families and how many good people were bad "
146         "people? When you added them all up and then "
147         "subtracted, you might be left with only the "
148         "children, and perhaps with Albert Einstein and "
149         "an old violinist or sculptor somewhere."
150 };
151
152 static const uint8_t ciphertext512_aes128cbc[] = {
153         0x8B, 0x4D, 0xDA, 0x1B, 0xCF, 0x04, 0xA0, 0x31,
154         0xB4, 0xBF, 0xBD, 0x68, 0x43, 0x20, 0x7E, 0x76,
155         0xB1, 0x96, 0x8B, 0xA2, 0x7C, 0xA2, 0x83, 0x9E,
156         0x39, 0x5A, 0x2F, 0x7E, 0x92, 0xB4, 0x48, 0x1A,
157         0x3F, 0x6B, 0x5D, 0xDF, 0x52, 0x85, 0x5F, 0x8E,
158         0x42, 0x3C, 0xFB, 0xE9, 0x1A, 0x24, 0xD6, 0x08,
159         0xDD, 0xFD, 0x16, 0xFB, 0xE9, 0x55, 0xEF, 0xF0,
160         0xA0, 0x8D, 0x13, 0xAB, 0x81, 0xC6, 0x90, 0x01,
161         0xB5, 0x18, 0x84, 0xB3, 0xF6, 0xE6, 0x11, 0x57,
162         0xD6, 0x71, 0xC6, 0x3C, 0x3F, 0x2F, 0x33, 0xEE,
163         0x24, 0x42, 0x6E, 0xAC, 0x0B, 0xCA, 0xEC, 0xF9,
164         0x84, 0xF8, 0x22, 0xAA, 0x60, 0xF0, 0x32, 0xA9,
165         0x75, 0x75, 0x3B, 0xCB, 0x70, 0x21, 0x0A, 0x8D,
166         0x0F, 0xE0, 0xC4, 0x78, 0x2B, 0xF8, 0x97, 0xE3,
167         0xE4, 0x26, 0x4B, 0x29, 0xDA, 0x88, 0xCD, 0x46,
168         0xEC, 0xAA, 0xF9, 0x7F, 0xF1, 0x15, 0xEA, 0xC3,
169         0x87, 0xE6, 0x31, 0xF2, 0xCF, 0xDE, 0x4D, 0x80,
170         0x70, 0x91, 0x7E, 0x0C, 0xF7, 0x26, 0x3A, 0x92,
171         0x4F, 0x18, 0x83, 0xC0, 0x8F, 0x59, 0x01, 0xA5,
172         0x88, 0xD1, 0xDB, 0x26, 0x71, 0x27, 0x16, 0xF5,
173         0xEE, 0x10, 0x82, 0xAC, 0x68, 0x26, 0x9B, 0xE2,
174         0x6D, 0xD8, 0x9A, 0x80, 0xDF, 0x04, 0x31, 0xD5,
175         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
176         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
177         0x73, 0x02, 0x42, 0xC9, 0x23, 0x18, 0x8E, 0xB4,
178         0x6F, 0xB4, 0xA3, 0x54, 0x6E, 0x88, 0x3B, 0x62,
179         0x7C, 0x02, 0x8D, 0x4C, 0x9F, 0xC8, 0x45, 0xF4,
180         0xC9, 0xDE, 0x4F, 0xEB, 0x22, 0x83, 0x1B, 0xE4,
181         0x49, 0x37, 0xE4, 0xAD, 0xE7, 0xCD, 0x21, 0x54,
182         0xBC, 0x1C, 0xC2, 0x04, 0x97, 0xB4, 0x10, 0x61,
183         0xF0, 0xE4, 0xEF, 0x27, 0x63, 0x3A, 0xDA, 0x91,
184         0x41, 0x25, 0x62, 0x1C, 0x5C, 0xB6, 0x38, 0x4A,
185         0x88, 0x71, 0x59, 0x5A, 0x8D, 0xA0, 0x09, 0xAF,
186         0x72, 0x94, 0xD7, 0x79, 0x5C, 0x60, 0x7C, 0x8F,
187         0x4C, 0xF5, 0xD9, 0xA1, 0x39, 0x6D, 0x81, 0x28,
188         0xEF, 0x13, 0x28, 0xDF, 0xF5, 0x3E, 0xF7, 0x8E,
189         0x09, 0x9C, 0x78, 0x18, 0x79, 0xB8, 0x68, 0xD7,
190         0xA8, 0x29, 0x62, 0xAD, 0xDE, 0xE1, 0x61, 0x76,
191         0x1B, 0x05, 0x16, 0xCD, 0xBF, 0x02, 0x8E, 0xA6,
192         0x43, 0x6E, 0x92, 0x55, 0x4F, 0x60, 0x9C, 0x03,
193         0xB8, 0x4F, 0xA3, 0x02, 0xAC, 0xA8, 0xA7, 0x0C,
194         0x1E, 0xB5, 0x6B, 0xF8, 0xC8, 0x4D, 0xDE, 0xD2,
195         0xB0, 0x29, 0x6E, 0x40, 0xE6, 0xD6, 0xC9, 0xE6,
196         0xB9, 0x0F, 0xB6, 0x63, 0xF5, 0xAA, 0x2B, 0x96,
197         0xA7, 0x16, 0xAC, 0x4E, 0x0A, 0x33, 0x1C, 0xA6,
198         0xE6, 0xBD, 0x8A, 0xCF, 0x40, 0xA9, 0xB2, 0xFA,
199         0x63, 0x27, 0xFD, 0x9B, 0xD9, 0xFC, 0xD5, 0x87,
200         0x8D, 0x4C, 0xB6, 0xA4, 0xCB, 0xE7, 0x74, 0x55,
201         0xF4, 0xFB, 0x41, 0x25, 0xB5, 0x4B, 0x0A, 0x1B,
202         0xB1, 0xD6, 0xB7, 0xD9, 0x47, 0x2A, 0xC3, 0x98,
203         0x6A, 0xC4, 0x03, 0x73, 0x1F, 0x93, 0x6E, 0x53,
204         0x19, 0x25, 0x64, 0x15, 0x83, 0xF9, 0x73, 0x2A,
205         0x74, 0xB4, 0x93, 0x69, 0xC4, 0x72, 0xFC, 0x26,
206         0xA2, 0x9F, 0x43, 0x45, 0xDD, 0xB9, 0xEF, 0x36,
207         0xC8, 0x3A, 0xCD, 0x99, 0x9B, 0x54, 0x1A, 0x36,
208         0xC1, 0x59, 0xF8, 0x98, 0xA8, 0xCC, 0x28, 0x0D,
209         0x73, 0x4C, 0xEE, 0x98, 0xCB, 0x7C, 0x58, 0x7E,
210         0x20, 0x75, 0x1E, 0xB7, 0xC9, 0xF8, 0xF2, 0x0E,
211         0x63, 0x9E, 0x05, 0x78, 0x1A, 0xB6, 0xA8, 0x7A,
212         0xF9, 0x98, 0x6A, 0xA6, 0x46, 0x84, 0x2E, 0xF6,
213         0x4B, 0xDC, 0x9B, 0x8F, 0x9B, 0x8F, 0xEE, 0xB4,
214         0xAA, 0x3F, 0xEE, 0xC0, 0x37, 0x27, 0x76, 0xC7,
215         0x95, 0xBB, 0x26, 0x74, 0x69, 0x12, 0x7F, 0xF1,
216         0xBB, 0xFF, 0xAE, 0xB5, 0x99, 0x6E, 0xCB, 0x0C
217 };
218
219 /* AES128-CTR-SHA1 test vector */
220 static const struct blockcipher_test_data aes_test_data_1 = {
221         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
222         .cipher_key = {
223                 .data = {
224                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
225                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
226                 },
227                 .len = 16
228         },
229         .iv = {
230                 .data = {
231                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
232                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
233                 },
234                 .len = 16
235         },
236         .plaintext = {
237                 .data = plaintext_aes128ctr,
238                 .len = 64
239         },
240         .ciphertext = {
241                 .data = ciphertext64_aes128ctr,
242                 .len = 64
243         },
244         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
245         .auth_key = {
246                 .data = {
247                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
248                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
249                         0xDE, 0xF4, 0xDE, 0xAD
250                 },
251                 .len = 20
252         },
253         .digest = {
254                 .data = {
255                         0x9B, 0x6F, 0x0C, 0x43, 0xF5, 0xC1, 0x3E, 0xB0,
256                         0xB1, 0x70, 0xB8, 0x2B, 0x33, 0x09, 0xD2, 0xB2,
257                         0x56, 0x20, 0xFB, 0xFE
258                 },
259                 .len = 20,
260                 .truncated_len = 12
261         }
262 };
263
264 /** AES-192-CTR XCBC test vector */
265 static const struct blockcipher_test_data aes_test_data_2 = {
266         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
267         .cipher_key = {
268                 .data = {
269                         0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C,
270                         0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F,
271                         0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4
272                 },
273                 .len = 24
274         },
275         .iv = {
276                 .data = {
277                         0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
278                         0xB8, 0x7A, 0x4B, 0xED, 0x2B, 0xAF, 0xBF, 0x57
279                 },
280                 .len = 16
281         },
282         .plaintext = {
283                 .data = plaintext_aes192ctr,
284                 .len = 64
285         },
286         .ciphertext = {
287                 .data = ciphertext64_aes192ctr,
288                 .len = 64
289         },
290         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
291         .auth_key = {
292                 .data = {
293                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
294                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
295                 },
296                 .len = 16
297         },
298         .digest = {
299                 .data = {
300                         0xCA, 0x33, 0xB3, 0x3B, 0x16, 0x94, 0xAA, 0x55,
301                         0x36, 0x6B, 0x45, 0x46
302                 },
303                 .len = 12,
304                 .truncated_len = 12
305         }
306 };
307
308 /** AES-256-CTR SHA1 test vector */
309 static const struct blockcipher_test_data aes_test_data_3 = {
310         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
311         .cipher_key = {
312                 .data = {
313                         0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE,
314                         0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81,
315                         0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7,
316                         0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4
317                 },
318                 .len = 32
319         },
320         .iv = {
321                 .data = {
322                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
323                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
324                 },
325                 .len = 16
326         },
327         .plaintext = {
328                 .data = plaintext_aes256ctr,
329                 .len = 64
330         },
331         .ciphertext = {
332                 .data = ciphertext64_aes256ctr,
333                 .len = 64
334         },
335         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
336         .auth_key = {
337                 .data = {
338                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
339                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
340                         0xDE, 0xF4, 0xDE, 0xAD
341                 },
342                 .len = 20
343         },
344         .digest = {
345                 .data = {
346                         0x3B, 0x1A, 0x9D, 0x82, 0x35, 0xD5, 0xDD, 0x64,
347                         0xCC, 0x1B, 0xA9, 0xC0, 0xEB, 0xE9, 0x42, 0x16,
348                         0xE7, 0x87, 0xA3, 0xEF
349                 },
350                 .len = 20,
351                 .truncated_len = 12
352         }
353 };
354
355 /** AES-128-CBC SHA1 test vector */
356 static const struct blockcipher_test_data aes_test_data_4 = {
357         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
358         .cipher_key = {
359                 .data = {
360                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
361                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
362                 },
363                 .len = 16
364         },
365         .iv = {
366                 .data = {
367                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
368                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
369                 },
370                 .len = 16
371         },
372         .plaintext = {
373                 .data = plaintext_aes_common,
374                 .len = 512
375         },
376         .ciphertext = {
377                 .data = ciphertext512_aes128cbc,
378                 .len = 512
379         },
380         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
381         .auth_key = {
382                 .data = {
383                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
384                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
385                         0xDE, 0xF4, 0xDE, 0xAD
386                 },
387                 .len = 20
388         },
389         .digest = {
390                 .data = {
391                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60,
392                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
393                         0x18, 0x8C, 0x1D, 0x32
394                 },
395                 .len = 20,
396                 .truncated_len = 12
397         }
398 };
399
400 /** AES-128-CBC SHA256 test vector */
401 static const struct blockcipher_test_data aes_test_data_5 = {
402         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
403         .cipher_key = {
404                 .data = {
405                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
406                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
407                 },
408                 .len = 16
409         },
410         .iv = {
411                 .data = {
412                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
413                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
414                 },
415                 .len = 16
416         },
417         .plaintext = {
418                 .data = plaintext_aes_common,
419                 .len = 512
420         },
421         .ciphertext = {
422                 .data = ciphertext512_aes128cbc,
423                 .len = 512
424         },
425         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
426         .auth_key = {
427                 .data = {
428                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
429                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
430                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
431                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
432                 },
433                 .len = 32
434         },
435         .digest = {
436                 .data = {
437                         0xC8, 0x57, 0x57, 0x31, 0x03, 0xE0, 0x03, 0x55,
438                         0x07, 0xC8, 0x9E, 0x7F, 0x48, 0x9A, 0x61, 0x9A,
439                         0x68, 0xEE, 0x03, 0x0E, 0x71, 0x75, 0xC7, 0xF4,
440                         0x2E, 0x45, 0x26, 0x32, 0x7C, 0x12, 0x15, 0x15
441                 },
442                 .len = 32,
443                 .truncated_len = 16
444         }
445 };
446
447 /** AES-128-CBC SHA512 test vector */
448 static const struct blockcipher_test_data aes_test_data_6 = {
449         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
450         .cipher_key = {
451                 .data = {
452                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
453                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
454                 },
455                 .len = 16
456         },
457         .iv = {
458                 .data = {
459                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
460                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
461                 },
462                 .len = 16
463         },
464         .plaintext = {
465                 .data = plaintext_aes_common,
466                 .len = 512
467         },
468         .ciphertext = {
469                 .data = ciphertext512_aes128cbc,
470                 .len = 512
471         },
472         .auth_algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
473         .auth_key = {
474                 .data = {
475                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
476                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
477                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
478                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
479                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
480                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
481                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
482                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
483                 },
484                 .len = 64
485         },
486         .digest = {
487                 .data = {
488                         0x5D, 0x54, 0x66, 0xC1, 0x6E, 0xBC, 0x04, 0xB8,
489                         0x46, 0xB8, 0x08, 0x6E, 0xE0, 0xF0, 0x43, 0x48,
490                         0x37, 0x96, 0x9C, 0xC6, 0x9C, 0xC2, 0x1E, 0xE8,
491                         0xF2, 0x0C, 0x0B, 0xEF, 0x86, 0xA2, 0xE3, 0x70,
492                         0x95, 0xC8, 0xB3, 0x06, 0x47, 0xA9, 0x90, 0xE8,
493                         0xA0, 0xC6, 0x72, 0x69, 0x05, 0xC0, 0x0D, 0x0E,
494                         0x21, 0x96, 0x65, 0x93, 0x74, 0x43, 0x2A, 0x1D,
495                         0x2E, 0xBF, 0xC2, 0xC2, 0xEE, 0xCC, 0x2F, 0x0A
496                 },
497                 .len = 64,
498                 .truncated_len = 32
499         }
500 };
501
502 /** AES-128-CBC XCBC test vector */
503 static const struct blockcipher_test_data aes_test_data_7 = {
504         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
505         .cipher_key = {
506                 .data = {
507                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
508                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
509                 },
510                 .len = 16
511         },
512         .iv = {
513                 .data = {
514                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
515                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
516                 },
517                 .len = 16
518         },
519         .plaintext = {
520                 .data = plaintext_aes_common,
521                 .len = 512
522         },
523         .ciphertext = {
524                 .data = ciphertext512_aes128cbc,
525                 .len = 512
526         },
527         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
528         .auth_key = {
529                 .data = {
530                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
531                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
532                 },
533                 .len = 16
534         },
535         .digest = {
536                 .data = {
537                         0xE0, 0xAC, 0x9A, 0xC4, 0x22, 0x64, 0x35, 0x89,
538                         0x77, 0x1D, 0x8B, 0x75
539                 },
540                 .len = 12,
541                 .truncated_len = 12
542         }
543 };
544
545 /** AES-128-CBC SHA224 test vector */
546 static const struct blockcipher_test_data aes_test_data_8 = {
547         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
548         .cipher_key = {
549                 .data = {
550                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
551                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
552                 },
553                 .len = 16
554         },
555         .iv = {
556                 .data = {
557                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
558                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
559                 },
560                 .len = 16
561         },
562         .plaintext = {
563                 .data = plaintext_aes_common,
564                 .len = 512
565         },
566         .ciphertext = {
567                 .data = ciphertext512_aes128cbc,
568                 .len = 512
569         },
570         .auth_algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
571         .auth_key = {
572                 .data = {
573                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
574                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
575                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
576                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
577                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
578                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
579                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
580                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
581                 },
582                 .len = 64
583         },
584         .digest = {
585                 .data = {
586                         0xA3, 0xCA, 0xC7, 0x1D, 0xA8, 0x61, 0x30, 0x98,
587                         0x3B, 0x8F, 0x01, 0x19, 0xAE, 0x8D, 0xBD, 0x34,
588                         0x40, 0x63, 0xA8, 0x2F, 0xDF, 0x85, 0x2B, 0x7F,
589                         0x63, 0x7C, 0xDD, 0xB7
590                 },
591                 .len = 28,
592                 .truncated_len = 14
593         }
594 };
595
596 /** AES-128-CBC SHA384 test vector */
597 static const struct blockcipher_test_data aes_test_data_9 = {
598         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
599         .cipher_key = {
600                 .data = {
601                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
602                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
603                 },
604                 .len = 16
605         },
606         .iv = {
607                 .data = {
608                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
609                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
610                 },
611                 .len = 16
612         },
613         .plaintext = {
614                 .data = plaintext_aes_common,
615                 .len = 512
616         },
617         .ciphertext = {
618                 .data = ciphertext512_aes128cbc,
619                 .len = 512
620         },
621         .auth_algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
622         .auth_key = {
623                 .data = {
624                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
625                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
626                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
627                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
628                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
629                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
630                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
631                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60,
632                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
633                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
634                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
635                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
636                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
637                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
638                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
639                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
640                 },
641                 .len = 128
642         },
643         .digest = {
644                 .data = {
645                         0x23, 0x60, 0xC8, 0xB1, 0x2D, 0x6C, 0x1E, 0x72,
646                         0x25, 0xAB, 0xF9, 0xC3, 0x9A, 0xA9, 0x4F, 0x8C,
647                         0x56, 0x38, 0x65, 0x0E, 0x74, 0xD5, 0x45, 0x9D,
648                         0xA3, 0xFD, 0x7E, 0x6D, 0x9E, 0x74, 0x88, 0x9D,
649                         0xA7, 0x12, 0x9D, 0xD8, 0x81, 0x3C, 0x86, 0x2F,
650                         0x4D, 0xF9, 0x6F, 0x0A, 0xB0, 0xC9, 0xEB, 0x0B
651                 },
652                 .len = 48,
653                 .truncated_len = 24
654         }
655 };
656
657 static const uint8_t ciphertext512_aes192cbc[] = {
658         0x45, 0xEE, 0x9A, 0xEA, 0x3C, 0x03, 0xFC, 0x4C,
659         0x84, 0x36, 0xB0, 0xDA, 0xB0, 0xDC, 0xF3, 0x5B,
660         0x75, 0xA7, 0xBE, 0x0E, 0xC0, 0x8D, 0x6C, 0xF8,
661         0xC1, 0x0F, 0xD0, 0x35, 0x1D, 0x82, 0xAE, 0x7C,
662         0x57, 0xC5, 0x7A, 0x55, 0x87, 0x1B, 0xD4, 0x03,
663         0x0A, 0x64, 0xC9, 0xE0, 0xF4, 0xC7, 0x6F, 0x57,
664         0x52, 0xC6, 0x73, 0xBA, 0x84, 0x0B, 0x5B, 0x89,
665         0x21, 0xD2, 0x9B, 0x88, 0x68, 0xF5, 0xA9, 0x7F,
666         0x3F, 0x49, 0xEB, 0xF4, 0xD4, 0x52, 0xD2, 0x64,
667         0x80, 0xB2, 0x53, 0xDA, 0x19, 0xF6, 0x10, 0x24,
668         0x23, 0x26, 0x7A, 0x7C, 0x07, 0x57, 0x4B, 0x0E,
669         0x58, 0x49, 0x61, 0xD1, 0xDC, 0x9A, 0x32, 0x6B,
670         0x0F, 0x43, 0x9E, 0x4D, 0xB4, 0x07, 0x4E, 0xB3,
671         0x51, 0x74, 0xDE, 0x29, 0xBC, 0x98, 0xF9, 0xDF,
672         0x78, 0x9A, 0x18, 0x9C, 0xD6, 0x7A, 0x55, 0x7C,
673         0xE6, 0x1D, 0x5C, 0x1A, 0x99, 0xD2, 0xC3, 0x7B,
674         0x9F, 0x96, 0x74, 0x2D, 0xE0, 0xEF, 0xD1, 0xE3,
675         0x08, 0x9F, 0xAF, 0xE6, 0xED, 0xCA, 0xE1, 0xEA,
676         0x23, 0x6F, 0x7C, 0x81, 0xA8, 0xC0, 0x5B, 0x8B,
677         0x53, 0x90, 0x51, 0x2D, 0x0F, 0xF6, 0x7D, 0xA7,
678         0x1C, 0xBD, 0x83, 0x84, 0x54, 0xA4, 0x15, 0xFB,
679         0x3E, 0x25, 0xA7, 0x3A, 0x0A, 0x73, 0xD9, 0x88,
680         0x6F, 0x80, 0x78, 0x95, 0x7F, 0x60, 0xAA, 0x86,
681         0x8A, 0xFC, 0xDF, 0xC1, 0xCB, 0xDE, 0xBB, 0x25,
682         0x52, 0x20, 0xC6, 0x79, 0xD4, 0x0F, 0x25, 0xE7,
683         0xDB, 0xB2, 0x17, 0xA4, 0x6F, 0x3C, 0x6F, 0x91,
684         0xF6, 0x44, 0x1E, 0xB6, 0x85, 0xBC, 0x7A, 0x14,
685         0x10, 0x72, 0xBD, 0x16, 0x63, 0x39, 0x9E, 0x7B,
686         0x84, 0x5B, 0x17, 0x61, 0xB1, 0x5D, 0x82, 0x0B,
687         0x6D, 0x37, 0xD7, 0x79, 0xB8, 0x24, 0x91, 0x30,
688         0x82, 0x91, 0x02, 0xB1, 0x18, 0x4B, 0xE0, 0xF4,
689         0x13, 0x1B, 0xB2, 0x4C, 0xDA, 0xB8, 0x99, 0x96,
690         0x83, 0x2F, 0xBE, 0x53, 0x8D, 0xDE, 0xFA, 0xAD,
691         0xF6, 0x5C, 0xDB, 0xE5, 0x66, 0x26, 0x8F, 0x13,
692         0x2B, 0x76, 0x47, 0x73, 0xDE, 0x1A, 0x74, 0xA6,
693         0x30, 0xAF, 0x42, 0xA0, 0xE5, 0xD2, 0x8F, 0xC2,
694         0xED, 0x3E, 0x9E, 0x29, 0x54, 0x3C, 0xDE, 0x9F,
695         0x5D, 0x30, 0x2B, 0x63, 0xFB, 0xE3, 0xB1, 0x07,
696         0xEE, 0x74, 0x4A, 0xAF, 0xB1, 0x20, 0x8D, 0xEC,
697         0xE6, 0x78, 0x16, 0x8D, 0xA4, 0x6E, 0x34, 0x7D,
698         0x47, 0xFB, 0x0B, 0xC1, 0x32, 0xD7, 0x0D, 0x6C,
699         0x6F, 0x93, 0x9C, 0x5E, 0xEF, 0x1F, 0x9C, 0x45,
700         0x80, 0x6B, 0x74, 0xA6, 0x81, 0xF2, 0xF6, 0xFA,
701         0xAA, 0x9D, 0x4F, 0xCA, 0xB5, 0x90, 0x59, 0xB0,
702         0x3B, 0xF2, 0xF0, 0x75, 0xFD, 0x8A, 0xD8, 0x97,
703         0x65, 0x88, 0x56, 0x4C, 0x44, 0xDF, 0x73, 0xF7,
704         0x56, 0x9C, 0x48, 0x7E, 0xB0, 0x1F, 0x1D, 0x7D,
705         0x6A, 0x11, 0xF5, 0xC2, 0xF4, 0x17, 0xEF, 0x58,
706         0xD8, 0x2A, 0xAF, 0x56, 0x2F, 0xCF, 0xEC, 0xA4,
707         0x58, 0x8B, 0x60, 0xCE, 0xD4, 0x0F, 0x9C, 0x21,
708         0xEC, 0x3E, 0x74, 0x7B, 0x81, 0x3D, 0x69, 0xC6,
709         0x5E, 0x12, 0x83, 0xE9, 0xEF, 0x81, 0x58, 0x36,
710         0x6A, 0x60, 0x0F, 0x54, 0x28, 0x11, 0xF9, 0x64,
711         0x36, 0xAD, 0x79, 0xF5, 0x1C, 0x74, 0xD0, 0xC3,
712         0x7B, 0x61, 0xE1, 0x92, 0xB0, 0x13, 0x91, 0x87,
713         0x32, 0x1F, 0xF2, 0x5A, 0xDA, 0x25, 0x69, 0xEB,
714         0xD7, 0x32, 0x7F, 0xF5, 0x23, 0x21, 0x54, 0x47,
715         0x7B, 0x1B, 0x33, 0xB0, 0x3D, 0xF6, 0xE2, 0x7E,
716         0x3E, 0xA2, 0x9E, 0xCA, 0x48, 0x0B, 0x4A, 0x29,
717         0x81, 0xD4, 0x4E, 0xD5, 0x69, 0xFB, 0xCD, 0x37,
718         0x8A, 0xC1, 0x5B, 0x50, 0xFF, 0xB5, 0x7D, 0x43,
719         0x0F, 0xAE, 0xA6, 0xC2, 0xE5, 0x8F, 0x45, 0xB2,
720         0x85, 0x99, 0x02, 0xA2, 0x9B, 0xBE, 0x90, 0x43,
721         0x4F, 0x2F, 0x50, 0xE2, 0x77, 0x62, 0xD9, 0xCC
722 };
723
724 /** AES-192-CBC test vector */
725 static const struct blockcipher_test_data aes_test_data_10 = {
726         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
727         .cipher_key = {
728                 .data = {
729                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
730                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
731                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
732                 },
733                 .len = 24
734         },
735         .iv = {
736                 .data = {
737                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
738                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
739                 },
740                 .len = 16
741         },
742         .plaintext = {
743                 .data = plaintext_aes_common,
744                 .len = 512
745         },
746         .ciphertext = {
747                 .data = ciphertext512_aes192cbc,
748                 .len = 512
749         }
750 };
751
752 static const uint8_t ciphertext512_aes256cbc[] = {
753         0xF3, 0xDD, 0xF0, 0x0B, 0xFF, 0xA2, 0x6A, 0x04,
754         0xBE, 0xDA, 0x52, 0xA6, 0xFE, 0x6B, 0xA6, 0xA7,
755         0x48, 0x1D, 0x7D, 0x98, 0x65, 0xDB, 0xEF, 0x06,
756         0x26, 0xB5, 0x8E, 0xEB, 0x05, 0x0E, 0x77, 0x98,
757         0x17, 0x8E, 0xD0, 0xD4, 0x7B, 0x92, 0x8F, 0x5C,
758         0xD0, 0x74, 0x5C, 0xA8, 0x4B, 0x54, 0xB6, 0x2F,
759         0x83, 0x72, 0x2C, 0xFF, 0x72, 0xE9, 0xE4, 0x15,
760         0x4C, 0x32, 0xAF, 0xC8, 0xC9, 0x89, 0x3C, 0x6E,
761         0x31, 0xD5, 0xC0, 0x16, 0xC0, 0x31, 0x7D, 0x11,
762         0xAB, 0xCB, 0xDE, 0xD2, 0xD6, 0xAA, 0x76, 0x5E,
763         0xBA, 0xF6, 0xE2, 0x92, 0xCB, 0x86, 0x07, 0xFA,
764         0xD4, 0x9E, 0x83, 0xED, 0xFD, 0xB8, 0x70, 0x54,
765         0x6B, 0xBE, 0xEC, 0x72, 0xDD, 0x28, 0x5E, 0x95,
766         0x78, 0xA5, 0x28, 0x43, 0x3D, 0x6D, 0xB1, 0xD9,
767         0x69, 0x1F, 0xC9, 0x66, 0x0E, 0x32, 0x44, 0x08,
768         0xD2, 0xAE, 0x2C, 0x43, 0xF2, 0xD0, 0x7D, 0x26,
769         0x70, 0xE5, 0xA1, 0xCA, 0x37, 0xE9, 0x7D, 0xC7,
770         0xA3, 0xFA, 0x81, 0x91, 0x64, 0xAA, 0x64, 0x91,
771         0x9A, 0x95, 0x2D, 0xC9, 0xF9, 0xCE, 0xFE, 0x9F,
772         0xC4, 0xD8, 0x81, 0xBE, 0x57, 0x84, 0xC5, 0x02,
773         0xDB, 0x30, 0xC1, 0xD9, 0x0E, 0xA0, 0xA6, 0x00,
774         0xD6, 0xF3, 0x52, 0x7E, 0x0D, 0x23, 0x6B, 0x2B,
775         0x34, 0x99, 0x1F, 0x70, 0x27, 0x6D, 0x58, 0x84,
776         0x93, 0x77, 0xB8, 0x3E, 0xF1, 0x71, 0x58, 0x42,
777         0x8B, 0x2B, 0xC8, 0x6D, 0x05, 0x84, 0xFF, 0x4E,
778         0x85, 0xEF, 0x4A, 0x9D, 0x91, 0x6A, 0xD5, 0xE1,
779         0xAF, 0x01, 0xEB, 0x83, 0x8F, 0x23, 0x7C, 0x7F,
780         0x12, 0x91, 0x05, 0xF0, 0x4E, 0xD9, 0x17, 0x62,
781         0x75, 0xBB, 0xAC, 0x97, 0xEE, 0x3B, 0x4E, 0xC7,
782         0xE5, 0x92, 0xF8, 0x9D, 0x4C, 0xF9, 0xEE, 0x55,
783         0x18, 0xBB, 0xCC, 0xB4, 0xF2, 0x59, 0xB9, 0xFC,
784         0x7A, 0x0F, 0x98, 0xD4, 0x8B, 0xFE, 0xF7, 0x83,
785         0x46, 0xE2, 0x83, 0x33, 0x3E, 0x95, 0x8D, 0x17,
786         0x1E, 0x85, 0xF8, 0x8C, 0x51, 0xB0, 0x6C, 0xB5,
787         0x5E, 0x95, 0xBA, 0x4B, 0x69, 0x1B, 0x48, 0x69,
788         0x0B, 0x8F, 0xA5, 0x18, 0x13, 0xB9, 0x77, 0xD1,
789         0x80, 0x32, 0x32, 0x6D, 0x53, 0xA1, 0x95, 0x40,
790         0x96, 0x8A, 0xCC, 0xA3, 0x69, 0xF8, 0x9F, 0xB5,
791         0x8E, 0xD2, 0x68, 0x07, 0x4F, 0xA7, 0xEC, 0xF8,
792         0x20, 0x21, 0x58, 0xF8, 0xD8, 0x9E, 0x5F, 0x40,
793         0xBA, 0xB9, 0x76, 0x57, 0x3B, 0x17, 0xAD, 0xEE,
794         0xCB, 0xDF, 0x07, 0xC1, 0xDF, 0x66, 0xA8, 0x0D,
795         0xC2, 0xCE, 0x8F, 0x79, 0xC3, 0x32, 0xE0, 0x8C,
796         0xFE, 0x5A, 0xF3, 0x55, 0x27, 0x73, 0x6F, 0xA1,
797         0x54, 0xC6, 0xFC, 0x28, 0x9D, 0xBE, 0x97, 0xB9,
798         0x54, 0x97, 0x72, 0x3A, 0x61, 0xAF, 0x6F, 0xDE,
799         0xF8, 0x0E, 0xBB, 0x6B, 0x96, 0x84, 0xDD, 0x9B,
800         0x62, 0xBA, 0x47, 0xB5, 0xC9, 0x3B, 0x4E, 0x8C,
801         0x78, 0x2A, 0xCC, 0x0A, 0x69, 0x54, 0x25, 0x5E,
802         0x8B, 0xAC, 0x56, 0xD9, 0xFE, 0x48, 0xBA, 0xCE,
803         0xA9, 0xCE, 0xA6, 0x1D, 0xBF, 0x3E, 0x3C, 0x66,
804         0x40, 0x71, 0x79, 0xAD, 0x5B, 0x26, 0xAD, 0xBE,
805         0x58, 0x13, 0x64, 0x60, 0x7C, 0x05, 0xFC, 0xE3,
806         0x51, 0x7A, 0xF2, 0xCC, 0x54, 0x16, 0x2C, 0xA4,
807         0xCE, 0x5F, 0x59, 0x12, 0x77, 0xEB, 0xD9, 0x23,
808         0xE3, 0x86, 0xFB, 0xD7, 0x48, 0x76, 0x9D, 0xE3,
809         0x89, 0x87, 0x39, 0xFA, 0x7B, 0x21, 0x0B, 0x76,
810         0xB2, 0xED, 0x1C, 0x27, 0x4B, 0xD5, 0x27, 0x05,
811         0x8C, 0x7D, 0x58, 0x6C, 0xCA, 0xA5, 0x54, 0x9A,
812         0x0F, 0xCB, 0xE9, 0x88, 0x31, 0xAD, 0x49, 0xEE,
813         0x38, 0xFB, 0xC9, 0xFB, 0xB4, 0x7A, 0x00, 0x58,
814         0x20, 0x32, 0xD3, 0x53, 0x5A, 0xDD, 0x74, 0x95,
815         0x60, 0x59, 0x09, 0xAE, 0x7E, 0xEC, 0x74, 0xA3,
816         0xB7, 0x1C, 0x6D, 0xF2, 0xAE, 0x79, 0xA4, 0x7C
817 };
818
819 /** AES-256-CBC test vector */
820 static const struct blockcipher_test_data aes_test_data_11 = {
821         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
822         .cipher_key = {
823                 .data = {
824                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
825                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
826                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0,
827                         0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D
828                 },
829                 .len = 32
830         },
831         .iv = {
832                 .data = {
833                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
834                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
835                 },
836                 .len = 16
837         },
838         .plaintext = {
839                 .data = plaintext_aes_common,
840                 .len = 512
841         },
842         .ciphertext = {
843                 .data = ciphertext512_aes256cbc,
844                 .len = 512
845         }
846 };
847
848 /** AES-128-CBC SHA256 HMAC test vector (160 bytes) */
849 static const struct blockcipher_test_data aes_test_data_12 = {
850         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
851         .cipher_key = {
852                 .data = {
853                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
854                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
855                 },
856                 .len = 16
857         },
858         .iv = {
859                 .data = {
860                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
861                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
862                 },
863                 .len = 16
864         },
865         .plaintext = {
866                 .data = plaintext_aes_common,
867                 .len = 160
868         },
869         .ciphertext = {
870                 .data = ciphertext512_aes128cbc,
871                 .len = 160
872         },
873         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
874         .auth_key = {
875                 .data = {
876                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
877                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
878                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
879                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
880                 },
881                 .len = 32
882         },
883         .digest = {
884                 .data = {
885                         0x92, 0xEC, 0x65, 0x9A, 0x52, 0xCC, 0x50, 0xA5,
886                         0xEE, 0x0E, 0xDF, 0x1E, 0xA4, 0xC9, 0xC1, 0x04,
887                         0xD5, 0xDC, 0x78, 0x90, 0xF4, 0xE3, 0x35, 0x62,
888                         0xAD, 0x95, 0x45, 0x28, 0x5C, 0xF8, 0x8C, 0x0B
889                 },
890                 .len = 32,
891                 .truncated_len = 16
892         }
893 };
894
895 /** AES-128-CBC SHA1 HMAC test vector (160 bytes) */
896 static const struct blockcipher_test_data aes_test_data_13 = {
897         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
898         .cipher_key = {
899                 .data = {
900                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
901                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
902                 },
903                 .len = 16
904         },
905         .iv = {
906                 .data = {
907                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
908                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
909                 },
910                 .len = 16
911         },
912         .plaintext = {
913                 .data = plaintext_aes_common,
914                 .len = 160
915         },
916         .ciphertext = {
917                 .data = ciphertext512_aes128cbc,
918                 .len = 160
919         },
920         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
921         .auth_key = {
922                 .data = {
923                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
924                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
925                         0xDE, 0xF4, 0xDE, 0xAD
926                 },
927                 .len = 20
928         },
929         .digest = {
930                 .data = {
931                         0x4F, 0x16, 0xEA, 0xF7, 0x4A, 0x88, 0xD3, 0xE0,
932                         0x0E, 0x12, 0x8B, 0xE7, 0x05, 0xD0, 0x86, 0x48,
933                         0x22, 0x43, 0x30, 0xA7
934                 },
935                 .len = 20,
936                 .truncated_len = 12
937         }
938 };
939
940 /* AES-DOCSIS-BPI test vectors */
941
942 /* Multiple of AES block size */
943 static const struct blockcipher_test_data aes_test_data_docsis_1 = {
944         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
945         .cipher_key = {
946                 .data = {
947                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
948                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
949                 },
950                 .len = 16
951         },
952         .iv = {
953                 .data = {
954                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
955                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
956                 },
957                 .len = 16
958         },
959         .plaintext = {
960                 .data = plaintext_aes_common,
961                 .len = 512
962         },
963         .ciphertext = {
964                 .data = ciphertext512_aes128cbc,
965                 .len = 512
966         }
967 };
968
969 /* Less than AES block size */
970 static const struct blockcipher_test_data aes_test_data_docsis_2 = {
971         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
972         .cipher_key = {
973                 .data = {
974                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
975                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
976                 },
977                 .len = 16
978         },
979         .iv = {
980                 .data = {
981                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
982                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
983                 },
984                 .len = 16
985         },
986         .plaintext = {
987                 .data = plaintext_aes_docsis_bpi_cfb,
988                 .len = 7
989         },
990         .ciphertext = {
991                 .data = ciphertext_aes_docsis_bpi_cfb,
992                 .len = 7
993         }
994 };
995
996 /* Not multiple of AES block size */
997 static const struct blockcipher_test_data aes_test_data_docsis_3 = {
998         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
999         .cipher_key = {
1000                 .data = {
1001                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
1002                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
1003                 },
1004                 .len = 16
1005         },
1006         .iv = {
1007                 .data = {
1008                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
1009                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
1010                 },
1011                 .len = 16
1012         },
1013         .plaintext = {
1014                 .data = plaintext_aes_docsis_bpi_cbc_cfb,
1015                 .len = 19
1016         },
1017         .ciphertext = {
1018                 .data = ciphertext_aes_docsis_bpi_cbc_cfb,
1019                 .len = 19
1020         }
1021 };
1022
1023 static const struct blockcipher_test_case aes_chain_test_cases[] = {
1024         {
1025                 .test_descr = "AES-128-CTR HMAC-SHA1 Encryption Digest",
1026                 .test_data = &aes_test_data_1,
1027                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1028                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1029                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1030                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1031                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1032         },
1033         {
1034                 .test_descr = "AES-128-CTR HMAC-SHA1 Decryption Digest "
1035                         "Verify",
1036                 .test_data = &aes_test_data_1,
1037                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1038                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1039                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1040                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1041                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1042         },
1043         {
1044                 .test_descr = "AES-192-CTR XCBC Encryption Digest",
1045                 .test_data = &aes_test_data_2,
1046                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1047                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1048                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1049                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1050         },
1051         {
1052                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify",
1053                 .test_data = &aes_test_data_2,
1054                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1055                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1056                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1057                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1058         },
1059         {
1060                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify "
1061                                 "Scatter Gather",
1062                 .test_data = &aes_test_data_2,
1063                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1064                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1065                         BLOCKCIPHER_TEST_FEATURE_OOP,
1066                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1067                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1068                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1069         },
1070         {
1071                 .test_descr = "AES-256-CTR HMAC-SHA1 Encryption Digest",
1072                 .test_data = &aes_test_data_3,
1073                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1074                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1075                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1076                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1077                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1078         },
1079         {
1080                 .test_descr = "AES-256-CTR HMAC-SHA1 Decryption Digest "
1081                         "Verify",
1082                 .test_data = &aes_test_data_3,
1083                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1084                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1085                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1086                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1087                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1088         },
1089         {
1090                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest",
1091                 .test_data = &aes_test_data_4,
1092                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1093                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1094                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1095                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1096                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1097                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1098         },
1099         {
1100                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1101                         "(short buffers)",
1102                 .test_data = &aes_test_data_13,
1103                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1104                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8
1105         },
1106         {
1107                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1108                                 "Scatter Gather",
1109                 .test_data = &aes_test_data_4,
1110                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1111                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1112                         BLOCKCIPHER_TEST_FEATURE_OOP,
1113                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1114                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1115                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1116                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1117         },
1118         {
1119                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1120                         "Verify",
1121                 .test_data = &aes_test_data_4,
1122                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1123                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1124                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1125                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1126                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1127                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1128         },
1129         {
1130                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1131                         "Verify (short buffers)",
1132                 .test_data = &aes_test_data_13,
1133                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1134                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8
1135         },
1136         {
1137                 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest",
1138                 .test_data = &aes_test_data_5,
1139                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1140                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1141                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1142                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1143                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1144                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1145         },
1146         {
1147                 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest "
1148                         "(short buffers)",
1149                 .test_data = &aes_test_data_12,
1150                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1151                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8
1152         },
1153         {
1154                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1155                         "Verify",
1156                 .test_data = &aes_test_data_5,
1157                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1158                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1159                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1160                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1161                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1162                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1163         },
1164         {
1165                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1166                         "Verify (short buffers)",
1167                 .test_data = &aes_test_data_12,
1168                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1169                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8
1170         },
1171         {
1172                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest",
1173                 .test_data = &aes_test_data_6,
1174                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1175                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1176                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1177                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1178                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1179         },
1180         {
1181                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1182                         "Sessionless",
1183                 .test_data = &aes_test_data_6,
1184                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1185                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1186                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1187                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1188         },
1189         {
1190                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1191                                 "Scatter Gather Sessionless",
1192                 .test_data = &aes_test_data_6,
1193                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1194                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
1195                         BLOCKCIPHER_TEST_FEATURE_SG |
1196                         BLOCKCIPHER_TEST_FEATURE_OOP,
1197                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1198                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1199         },
1200         {
1201                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1202                         "Verify",
1203                 .test_data = &aes_test_data_6,
1204                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1205                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1206                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1207                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1208                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1209         },
1210         {
1211                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1212                         "Verify Scatter Gather",
1213                 .test_data = &aes_test_data_6,
1214                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1215                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1216                         BLOCKCIPHER_TEST_FEATURE_OOP,
1217                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1218                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1219                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1220                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1221         },
1222         {
1223                 .test_descr = "AES-128-CBC XCBC Encryption Digest",
1224                 .test_data = &aes_test_data_7,
1225                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1226                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1227                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1228                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1229         },
1230         {
1231                 .test_descr = "AES-128-CBC XCBC Decryption Digest Verify",
1232                 .test_data = &aes_test_data_7,
1233                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1234                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1235                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1236                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1237         },
1238         {
1239                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1240                         "OOP",
1241                 .test_data = &aes_test_data_4,
1242                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1243                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1244                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1245                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1246                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1247         },
1248         {
1249                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1250                         "Verify OOP",
1251                 .test_data = &aes_test_data_4,
1252                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1253                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1254                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1255                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1256                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1257         },
1258         {
1259                 .test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
1260                 .test_data = &aes_test_data_8,
1261                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1262                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1263                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1264                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1265                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1266         },
1267         {
1268                 .test_descr = "AES-128-CBC HMAC-SHA224 Decryption Digest "
1269                         "Verify",
1270                 .test_data = &aes_test_data_8,
1271                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1272                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1273                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1274                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1275                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1276         },
1277         {
1278                 .test_descr = "AES-128-CBC HMAC-SHA384 Encryption Digest",
1279                 .test_data = &aes_test_data_9,
1280                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1281                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1282                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1283                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1284                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1285         },
1286         {
1287                 .test_descr = "AES-128-CBC HMAC-SHA384 Decryption Digest "
1288                         "Verify",
1289                 .test_data = &aes_test_data_9,
1290                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1291                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1292                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1293                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1294                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1295         },
1296         {
1297                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1298                                 "Sessionless",
1299                 .test_data = &aes_test_data_4,
1300                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1301                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1302                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1303                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1304         },
1305         {
1306                 .test_descr =
1307                                 "AES-128-CBC HMAC-SHA1 Decryption Digest "
1308                                 "Verify Sessionless",
1309                 .test_data = &aes_test_data_4,
1310                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1311                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1312                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1313                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1314         },
1315 };
1316
1317 static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
1318         {
1319                 .test_descr = "AES-128-CBC Encryption",
1320                 .test_data = &aes_test_data_4,
1321                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1322                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1323                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1324                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1325                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1326         },
1327         {
1328                 .test_descr = "AES-128-CBC Decryption",
1329                 .test_data = &aes_test_data_4,
1330                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1331                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1332                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1333                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1334                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1335         },
1336         {
1337                 .test_descr = "AES-192-CBC Encryption",
1338                 .test_data = &aes_test_data_10,
1339                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1340                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1341                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1342                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1343                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1344         },
1345         {
1346                 .test_descr = "AES-192-CBC Encryption Scater gather",
1347                 .test_data = &aes_test_data_10,
1348                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1349                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1350                         BLOCKCIPHER_TEST_FEATURE_OOP,
1351                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1352         },
1353         {
1354                 .test_descr = "AES-192-CBC Decryption",
1355                 .test_data = &aes_test_data_10,
1356                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1357                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1358                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1359                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1360                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1361         },
1362         {
1363                 .test_descr = "AES-256-CBC Encryption",
1364                 .test_data = &aes_test_data_11,
1365                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1366                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1367                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1368                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1369                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1370         },
1371         {
1372                 .test_descr = "AES-256-CBC Decryption",
1373                 .test_data = &aes_test_data_11,
1374                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1375                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1376                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1377                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1378                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1379         },
1380         {
1381                 .test_descr = "AES-256-CBC OOP Encryption",
1382                 .test_data = &aes_test_data_11,
1383                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1384                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1385                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1386                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1387         },
1388         {
1389                 .test_descr = "AES-256-CBC OOP Decryption",
1390                 .test_data = &aes_test_data_11,
1391                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1392                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1393                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1394                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1395         },
1396         {
1397                 .test_descr = "AES-128-CTR Encryption",
1398                 .test_data = &aes_test_data_1,
1399                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1400                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1401                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1402                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1403                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1404         },
1405         {
1406                 .test_descr = "AES-128-CTR Decryption",
1407                 .test_data = &aes_test_data_1,
1408                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1409                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1410                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1411                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1412                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1413         },
1414         {
1415                 .test_descr = "AES-192-CTR Encryption",
1416                 .test_data = &aes_test_data_2,
1417                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1418                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1419                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1420                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1421                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1422         },
1423         {
1424                 .test_descr = "AES-192-CTR Decryption",
1425                 .test_data = &aes_test_data_2,
1426                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1427                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1428                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1429                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1430                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1431         },
1432         {
1433                 .test_descr = "AES-256-CTR Encryption",
1434                 .test_data = &aes_test_data_3,
1435                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1436                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1437                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1438                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1439                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1440         },
1441         {
1442                 .test_descr = "AES-256-CTR Decryption",
1443                 .test_data = &aes_test_data_3,
1444                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1445                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1446                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1447                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1448                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1449         },
1450 };
1451
1452 static const struct blockcipher_test_case aes_docsis_test_cases[] = {
1453
1454         {
1455                 .test_descr = "AES-DOCSIS-BPI Full Block Encryption",
1456                 .test_data = &aes_test_data_docsis_1,
1457                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1458                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1459                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1460         },
1461         {
1462                 .test_descr = "AES-DOCSIS-BPI Runt Block Encryption",
1463                 .test_data = &aes_test_data_docsis_2,
1464                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1465                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1466                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1467         },
1468         {
1469                 .test_descr = "AES-DOCSIS-BPI Uneven Encryption",
1470                 .test_data = &aes_test_data_docsis_3,
1471                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1472                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1473                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1474         },
1475         {
1476                 .test_descr = "AES-DOCSIS-BPI Full Block Decryption",
1477                 .test_data = &aes_test_data_docsis_1,
1478                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1479                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1480                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1481         },
1482         {
1483                 .test_descr = "AES-DOCSIS-BPI Runt Block Decryption",
1484                 .test_data = &aes_test_data_docsis_2,
1485                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1486                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1487                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1488         },
1489         {
1490                 .test_descr = "AES-DOCSIS-BPI Uneven Decryption",
1491                 .test_data = &aes_test_data_docsis_3,
1492                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1493                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1494                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1495         },
1496         {
1497                 .test_descr = "AES-DOCSIS-BPI OOP Full Block Encryption",
1498                 .test_data = &aes_test_data_docsis_1,
1499                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1500                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1501                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1502         },
1503         {
1504                 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Encryption",
1505                 .test_data = &aes_test_data_docsis_2,
1506                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1507                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1508                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1509         },
1510         {
1511                 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Encryption",
1512                 .test_data = &aes_test_data_docsis_3,
1513                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1514                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1515                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1516         },
1517         {
1518                 .test_descr = "AES-DOCSIS-BPI OOP Full Block Decryption",
1519                 .test_data = &aes_test_data_docsis_1,
1520                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1521                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1522                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1523         },
1524         {
1525                 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Decryption",
1526                 .test_data = &aes_test_data_docsis_2,
1527                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1528                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1529                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1530         },
1531         {
1532                 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Decryption",
1533                 .test_data = &aes_test_data_docsis_3,
1534                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1535                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1536                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1537         }
1538 };
1539 #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */