test: move unit tests to separate directory
[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_aes192ctr[] = {
60         0x01, 0x0F, 0x10, 0x1F, 0x20, 0x1C, 0x0E, 0xB8,
61         0xFB, 0x5C, 0xCD, 0xCC, 0x1F, 0xF9, 0xAF, 0x0B,
62         0x95, 0x03, 0x74, 0x99, 0x49, 0xE7, 0x62, 0x55,
63         0xDA, 0xEA, 0x13, 0x20, 0x1D, 0xC6, 0xCC, 0xCC,
64         0xD1, 0x70, 0x75, 0x47, 0x02, 0x2F, 0xFB, 0x86,
65         0xBB, 0x6B, 0x23, 0xD2, 0xC9, 0x74, 0xD7, 0x7B,
66         0x08, 0x03, 0x3B, 0x79, 0x39, 0xBB, 0x91, 0x29,
67         0xDA, 0x14, 0x39, 0x8D, 0xFF, 0x81, 0x50, 0x96,
68 };
69
70 static const uint8_t ciphertext64_aes192ctr[] = {
71         0x4A, 0x6C, 0xC8, 0xCC, 0x96, 0x2A, 0x13, 0x84,
72         0x1C, 0x36, 0x88, 0xE9, 0xE5, 0x94, 0x70, 0xB2,
73         0x14, 0x5B, 0x13, 0x80, 0xEA, 0xD8, 0x8D, 0x37,
74         0xFD, 0x70, 0xA8, 0x83, 0xE8, 0x2B, 0x88, 0x1E,
75         0xBA, 0x94, 0x3F, 0xF6, 0xB3, 0x1F, 0xDE, 0x34,
76         0xF3, 0x5B, 0x80, 0xE9, 0xAB, 0xF5, 0x1C, 0x29,
77         0xB6, 0xD9, 0x76, 0x2B, 0x06, 0xC6, 0x74, 0xF1,
78         0x59, 0x5E, 0x9E, 0xA5, 0x7B, 0x2D, 0xD7, 0xF0
79 };
80
81 static const uint8_t plaintext_aes256ctr[] = {
82         0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
83         0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A,
84         0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C,
85         0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51,
86         0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11,
87         0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF,
88         0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17,
89         0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10
90 };
91
92 static const uint8_t ciphertext64_aes256ctr[] = {
93         0x60, 0x1E, 0xC3, 0x13, 0x77, 0x57, 0x89, 0xA5,
94         0xB7, 0xA7, 0xF5, 0x04, 0xBB, 0xF3, 0xD2, 0x28,
95         0xF4, 0x43, 0xE3, 0xCA, 0x4D, 0x62, 0xB5, 0x9A,
96         0xCA, 0x84, 0xE9, 0x90, 0xCA, 0xCA, 0xF5, 0xC5,
97         0x2B, 0x09, 0x30, 0xDA, 0xA2, 0x3D, 0xE9, 0x4C,
98         0xE8, 0x70, 0x17, 0xBA, 0x2D, 0x84, 0x98, 0x8D,
99         0xDF, 0xC9, 0xC5, 0x8D, 0xB6, 0x7A, 0xAD, 0xA6,
100         0x13, 0xC2, 0xDD, 0x08, 0x45, 0x79, 0x41, 0xA6
101 };
102
103 static const uint8_t plaintext_aes_common[] = {
104         "What a lousy earth! He wondered how many people "
105         "were destitute that same night even in his own "
106         "prosperous country, how many homes were "
107         "shanties, how many husbands were drunk and "
108         "wives socked, and how many children were "
109         "bullied, abused, or abandoned. How many "
110         "families hungered for food they could not "
111         "afford to buy? How many hearts were broken? How "
112         "many suicides would take place that same night, "
113         "how many people would go insane? How many "
114         "cockroaches and landlords would triumph? How "
115         "many winners were losers, successes failures, "
116         "and rich men poor men? How many wise guys were "
117         "stupid? How many happy endings were unhappy "
118         "endings? How many honest men were liars, brave "
119         "men cowards, loyal men traitors, how many "
120         "sainted men were corrupt, how many people in "
121         "positions of trust had sold their souls to "
122         "bodyguards, how many had never had souls? How "
123         "many straight-and-narrow paths were crooked "
124         "paths? How many best families were worst "
125         "families and how many good people were bad "
126         "people? When you added them all up and then "
127         "subtracted, you might be left with only the "
128         "children, and perhaps with Albert Einstein and "
129         "an old violinist or sculptor somewhere."
130 };
131
132 static const uint8_t ciphertext512_aes128cbc[] = {
133         0x8B, 0x4D, 0xDA, 0x1B, 0xCF, 0x04, 0xA0, 0x31,
134         0xB4, 0xBF, 0xBD, 0x68, 0x43, 0x20, 0x7E, 0x76,
135         0xB1, 0x96, 0x8B, 0xA2, 0x7C, 0xA2, 0x83, 0x9E,
136         0x39, 0x5A, 0x2F, 0x7E, 0x92, 0xB4, 0x48, 0x1A,
137         0x3F, 0x6B, 0x5D, 0xDF, 0x52, 0x85, 0x5F, 0x8E,
138         0x42, 0x3C, 0xFB, 0xE9, 0x1A, 0x24, 0xD6, 0x08,
139         0xDD, 0xFD, 0x16, 0xFB, 0xE9, 0x55, 0xEF, 0xF0,
140         0xA0, 0x8D, 0x13, 0xAB, 0x81, 0xC6, 0x90, 0x01,
141         0xB5, 0x18, 0x84, 0xB3, 0xF6, 0xE6, 0x11, 0x57,
142         0xD6, 0x71, 0xC6, 0x3C, 0x3F, 0x2F, 0x33, 0xEE,
143         0x24, 0x42, 0x6E, 0xAC, 0x0B, 0xCA, 0xEC, 0xF9,
144         0x84, 0xF8, 0x22, 0xAA, 0x60, 0xF0, 0x32, 0xA9,
145         0x75, 0x75, 0x3B, 0xCB, 0x70, 0x21, 0x0A, 0x8D,
146         0x0F, 0xE0, 0xC4, 0x78, 0x2B, 0xF8, 0x97, 0xE3,
147         0xE4, 0x26, 0x4B, 0x29, 0xDA, 0x88, 0xCD, 0x46,
148         0xEC, 0xAA, 0xF9, 0x7F, 0xF1, 0x15, 0xEA, 0xC3,
149         0x87, 0xE6, 0x31, 0xF2, 0xCF, 0xDE, 0x4D, 0x80,
150         0x70, 0x91, 0x7E, 0x0C, 0xF7, 0x26, 0x3A, 0x92,
151         0x4F, 0x18, 0x83, 0xC0, 0x8F, 0x59, 0x01, 0xA5,
152         0x88, 0xD1, 0xDB, 0x26, 0x71, 0x27, 0x16, 0xF5,
153         0xEE, 0x10, 0x82, 0xAC, 0x68, 0x26, 0x9B, 0xE2,
154         0x6D, 0xD8, 0x9A, 0x80, 0xDF, 0x04, 0x31, 0xD5,
155         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
156         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
157         0x73, 0x02, 0x42, 0xC9, 0x23, 0x18, 0x8E, 0xB4,
158         0x6F, 0xB4, 0xA3, 0x54, 0x6E, 0x88, 0x3B, 0x62,
159         0x7C, 0x02, 0x8D, 0x4C, 0x9F, 0xC8, 0x45, 0xF4,
160         0xC9, 0xDE, 0x4F, 0xEB, 0x22, 0x83, 0x1B, 0xE4,
161         0x49, 0x37, 0xE4, 0xAD, 0xE7, 0xCD, 0x21, 0x54,
162         0xBC, 0x1C, 0xC2, 0x04, 0x97, 0xB4, 0x10, 0x61,
163         0xF0, 0xE4, 0xEF, 0x27, 0x63, 0x3A, 0xDA, 0x91,
164         0x41, 0x25, 0x62, 0x1C, 0x5C, 0xB6, 0x38, 0x4A,
165         0x88, 0x71, 0x59, 0x5A, 0x8D, 0xA0, 0x09, 0xAF,
166         0x72, 0x94, 0xD7, 0x79, 0x5C, 0x60, 0x7C, 0x8F,
167         0x4C, 0xF5, 0xD9, 0xA1, 0x39, 0x6D, 0x81, 0x28,
168         0xEF, 0x13, 0x28, 0xDF, 0xF5, 0x3E, 0xF7, 0x8E,
169         0x09, 0x9C, 0x78, 0x18, 0x79, 0xB8, 0x68, 0xD7,
170         0xA8, 0x29, 0x62, 0xAD, 0xDE, 0xE1, 0x61, 0x76,
171         0x1B, 0x05, 0x16, 0xCD, 0xBF, 0x02, 0x8E, 0xA6,
172         0x43, 0x6E, 0x92, 0x55, 0x4F, 0x60, 0x9C, 0x03,
173         0xB8, 0x4F, 0xA3, 0x02, 0xAC, 0xA8, 0xA7, 0x0C,
174         0x1E, 0xB5, 0x6B, 0xF8, 0xC8, 0x4D, 0xDE, 0xD2,
175         0xB0, 0x29, 0x6E, 0x40, 0xE6, 0xD6, 0xC9, 0xE6,
176         0xB9, 0x0F, 0xB6, 0x63, 0xF5, 0xAA, 0x2B, 0x96,
177         0xA7, 0x16, 0xAC, 0x4E, 0x0A, 0x33, 0x1C, 0xA6,
178         0xE6, 0xBD, 0x8A, 0xCF, 0x40, 0xA9, 0xB2, 0xFA,
179         0x63, 0x27, 0xFD, 0x9B, 0xD9, 0xFC, 0xD5, 0x87,
180         0x8D, 0x4C, 0xB6, 0xA4, 0xCB, 0xE7, 0x74, 0x55,
181         0xF4, 0xFB, 0x41, 0x25, 0xB5, 0x4B, 0x0A, 0x1B,
182         0xB1, 0xD6, 0xB7, 0xD9, 0x47, 0x2A, 0xC3, 0x98,
183         0x6A, 0xC4, 0x03, 0x73, 0x1F, 0x93, 0x6E, 0x53,
184         0x19, 0x25, 0x64, 0x15, 0x83, 0xF9, 0x73, 0x2A,
185         0x74, 0xB4, 0x93, 0x69, 0xC4, 0x72, 0xFC, 0x26,
186         0xA2, 0x9F, 0x43, 0x45, 0xDD, 0xB9, 0xEF, 0x36,
187         0xC8, 0x3A, 0xCD, 0x99, 0x9B, 0x54, 0x1A, 0x36,
188         0xC1, 0x59, 0xF8, 0x98, 0xA8, 0xCC, 0x28, 0x0D,
189         0x73, 0x4C, 0xEE, 0x98, 0xCB, 0x7C, 0x58, 0x7E,
190         0x20, 0x75, 0x1E, 0xB7, 0xC9, 0xF8, 0xF2, 0x0E,
191         0x63, 0x9E, 0x05, 0x78, 0x1A, 0xB6, 0xA8, 0x7A,
192         0xF9, 0x98, 0x6A, 0xA6, 0x46, 0x84, 0x2E, 0xF6,
193         0x4B, 0xDC, 0x9B, 0x8F, 0x9B, 0x8F, 0xEE, 0xB4,
194         0xAA, 0x3F, 0xEE, 0xC0, 0x37, 0x27, 0x76, 0xC7,
195         0x95, 0xBB, 0x26, 0x74, 0x69, 0x12, 0x7F, 0xF1,
196         0xBB, 0xFF, 0xAE, 0xB5, 0x99, 0x6E, 0xCB, 0x0C
197 };
198
199 /* AES128-CTR-SHA1 test vector */
200 static const struct blockcipher_test_data aes_test_data_1 = {
201         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
202         .cipher_key = {
203                 .data = {
204                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
205                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
206                 },
207                 .len = 16
208         },
209         .iv = {
210                 .data = {
211                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
212                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
213                 },
214                 .len = 16
215         },
216         .plaintext = {
217                 .data = plaintext_aes128ctr,
218                 .len = 64
219         },
220         .ciphertext = {
221                 .data = ciphertext64_aes128ctr,
222                 .len = 64
223         },
224         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
225         .auth_key = {
226                 .data = {
227                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
228                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
229                         0xDE, 0xF4, 0xDE, 0xAD
230                 },
231                 .len = 20
232         },
233         .digest = {
234                 .data = {
235                         0x9B, 0x6F, 0x0C, 0x43, 0xF5, 0xC1, 0x3E, 0xB0,
236                         0xB1, 0x70, 0xB8, 0x2B, 0x33, 0x09, 0xD2, 0xB2,
237                         0x56, 0x20, 0xFB, 0xFE
238                 },
239                 .len = 20,
240                 .truncated_len = 12
241         }
242 };
243
244 /** AES-192-CTR XCBC test vector */
245 static const struct blockcipher_test_data aes_test_data_2 = {
246         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
247         .cipher_key = {
248                 .data = {
249                         0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C,
250                         0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F,
251                         0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4
252                 },
253                 .len = 24
254         },
255         .iv = {
256                 .data = {
257                         0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
258                         0xB8, 0x7A, 0x4B, 0xED, 0x2B, 0xAF, 0xBF, 0x57
259                 },
260                 .len = 16
261         },
262         .plaintext = {
263                 .data = plaintext_aes192ctr,
264                 .len = 64
265         },
266         .ciphertext = {
267                 .data = ciphertext64_aes192ctr,
268                 .len = 64
269         },
270         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
271         .auth_key = {
272                 .data = {
273                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
274                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
275                 },
276                 .len = 16
277         },
278         .digest = {
279                 .data = {
280                         0xCA, 0x33, 0xB3, 0x3B, 0x16, 0x94, 0xAA, 0x55,
281                         0x36, 0x6B, 0x45, 0x46
282                 },
283                 .len = 12,
284                 .truncated_len = 12
285         }
286 };
287
288 /** AES-256-CTR SHA1 test vector */
289 static const struct blockcipher_test_data aes_test_data_3 = {
290         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
291         .cipher_key = {
292                 .data = {
293                         0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE,
294                         0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81,
295                         0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7,
296                         0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4
297                 },
298                 .len = 32
299         },
300         .iv = {
301                 .data = {
302                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
303                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
304                 },
305                 .len = 16
306         },
307         .plaintext = {
308                 .data = plaintext_aes256ctr,
309                 .len = 64
310         },
311         .ciphertext = {
312                 .data = ciphertext64_aes256ctr,
313                 .len = 64
314         },
315         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
316         .auth_key = {
317                 .data = {
318                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
319                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
320                         0xDE, 0xF4, 0xDE, 0xAD
321                 },
322                 .len = 20
323         },
324         .digest = {
325                 .data = {
326                         0x3B, 0x1A, 0x9D, 0x82, 0x35, 0xD5, 0xDD, 0x64,
327                         0xCC, 0x1B, 0xA9, 0xC0, 0xEB, 0xE9, 0x42, 0x16,
328                         0xE7, 0x87, 0xA3, 0xEF
329                 },
330                 .len = 20,
331                 .truncated_len = 12
332         }
333 };
334
335 /** AES-128-CBC SHA1 test vector */
336 static const struct blockcipher_test_data aes_test_data_4 = {
337         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
338         .cipher_key = {
339                 .data = {
340                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
341                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
342                 },
343                 .len = 16
344         },
345         .iv = {
346                 .data = {
347                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
348                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
349                 },
350                 .len = 16
351         },
352         .plaintext = {
353                 .data = plaintext_aes_common,
354                 .len = 512
355         },
356         .ciphertext = {
357                 .data = ciphertext512_aes128cbc,
358                 .len = 512
359         },
360         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
361         .auth_key = {
362                 .data = {
363                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
364                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
365                         0xDE, 0xF4, 0xDE, 0xAD
366                 },
367                 .len = 20
368         },
369         .digest = {
370                 .data = {
371                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60,
372                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
373                         0x18, 0x8C, 0x1D, 0x32
374                 },
375                 .len = 20,
376                 .truncated_len = 12
377         }
378 };
379
380 /** AES-128-CBC SHA256 test vector */
381 static const struct blockcipher_test_data aes_test_data_5 = {
382         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
383         .cipher_key = {
384                 .data = {
385                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
386                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
387                 },
388                 .len = 16
389         },
390         .iv = {
391                 .data = {
392                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
393                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
394                 },
395                 .len = 16
396         },
397         .plaintext = {
398                 .data = plaintext_aes_common,
399                 .len = 512
400         },
401         .ciphertext = {
402                 .data = ciphertext512_aes128cbc,
403                 .len = 512
404         },
405         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
406         .auth_key = {
407                 .data = {
408                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
409                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
410                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
411                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
412                 },
413                 .len = 32
414         },
415         .digest = {
416                 .data = {
417                         0xC8, 0x57, 0x57, 0x31, 0x03, 0xE0, 0x03, 0x55,
418                         0x07, 0xC8, 0x9E, 0x7F, 0x48, 0x9A, 0x61, 0x9A,
419                         0x68, 0xEE, 0x03, 0x0E, 0x71, 0x75, 0xC7, 0xF4,
420                         0x2E, 0x45, 0x26, 0x32, 0x7C, 0x12, 0x15, 0x15
421                 },
422                 .len = 32,
423                 .truncated_len = 16
424         }
425 };
426
427 /** AES-128-CBC SHA512 test vector */
428 static const struct blockcipher_test_data aes_test_data_6 = {
429         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
430         .cipher_key = {
431                 .data = {
432                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
433                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
434                 },
435                 .len = 16
436         },
437         .iv = {
438                 .data = {
439                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
440                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
441                 },
442                 .len = 16
443         },
444         .plaintext = {
445                 .data = plaintext_aes_common,
446                 .len = 512
447         },
448         .ciphertext = {
449                 .data = ciphertext512_aes128cbc,
450                 .len = 512
451         },
452         .auth_algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
453         .auth_key = {
454                 .data = {
455                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
456                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
457                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
458                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
459                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
460                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
461                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
462                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
463                 },
464                 .len = 64
465         },
466         .digest = {
467                 .data = {
468                         0x5D, 0x54, 0x66, 0xC1, 0x6E, 0xBC, 0x04, 0xB8,
469                         0x46, 0xB8, 0x08, 0x6E, 0xE0, 0xF0, 0x43, 0x48,
470                         0x37, 0x96, 0x9C, 0xC6, 0x9C, 0xC2, 0x1E, 0xE8,
471                         0xF2, 0x0C, 0x0B, 0xEF, 0x86, 0xA2, 0xE3, 0x70,
472                         0x95, 0xC8, 0xB3, 0x06, 0x47, 0xA9, 0x90, 0xE8,
473                         0xA0, 0xC6, 0x72, 0x69, 0x05, 0xC0, 0x0D, 0x0E,
474                         0x21, 0x96, 0x65, 0x93, 0x74, 0x43, 0x2A, 0x1D,
475                         0x2E, 0xBF, 0xC2, 0xC2, 0xEE, 0xCC, 0x2F, 0x0A
476                 },
477                 .len = 64,
478                 .truncated_len = 32
479         }
480 };
481
482 /** AES-128-CBC XCBC test vector */
483 static const struct blockcipher_test_data aes_test_data_7 = {
484         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
485         .cipher_key = {
486                 .data = {
487                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
488                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
489                 },
490                 .len = 16
491         },
492         .iv = {
493                 .data = {
494                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
495                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
496                 },
497                 .len = 16
498         },
499         .plaintext = {
500                 .data = plaintext_aes_common,
501                 .len = 512
502         },
503         .ciphertext = {
504                 .data = ciphertext512_aes128cbc,
505                 .len = 512
506         },
507         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
508         .auth_key = {
509                 .data = {
510                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
511                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
512                 },
513                 .len = 16
514         },
515         .digest = {
516                 .data = {
517                         0xE0, 0xAC, 0x9A, 0xC4, 0x22, 0x64, 0x35, 0x89,
518                         0x77, 0x1D, 0x8B, 0x75
519                 },
520                 .len = 12,
521                 .truncated_len = 12
522         }
523 };
524
525 /** AES-128-CBC SHA224 test vector */
526 static const struct blockcipher_test_data aes_test_data_8 = {
527         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
528         .cipher_key = {
529                 .data = {
530                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
531                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
532                 },
533                 .len = 16
534         },
535         .iv = {
536                 .data = {
537                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
538                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
539                 },
540                 .len = 16
541         },
542         .plaintext = {
543                 .data = plaintext_aes_common,
544                 .len = 512
545         },
546         .ciphertext = {
547                 .data = ciphertext512_aes128cbc,
548                 .len = 512
549         },
550         .auth_algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
551         .auth_key = {
552                 .data = {
553                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
554                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
555                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
556                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
557                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
558                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
559                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
560                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
561                 },
562                 .len = 64
563         },
564         .digest = {
565                 .data = {
566                         0xA3, 0xCA, 0xC7, 0x1D, 0xA8, 0x61, 0x30, 0x98,
567                         0x3B, 0x8F, 0x01, 0x19, 0xAE, 0x8D, 0xBD, 0x34,
568                         0x40, 0x63, 0xA8, 0x2F, 0xDF, 0x85, 0x2B, 0x7F,
569                         0x63, 0x7C, 0xDD, 0xB7
570                 },
571                 .len = 28,
572                 .truncated_len = 14
573         }
574 };
575
576 /** AES-128-CBC SHA384 test vector */
577 static const struct blockcipher_test_data aes_test_data_9 = {
578         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
579         .cipher_key = {
580                 .data = {
581                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
582                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
583                 },
584                 .len = 16
585         },
586         .iv = {
587                 .data = {
588                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
589                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
590                 },
591                 .len = 16
592         },
593         .plaintext = {
594                 .data = plaintext_aes_common,
595                 .len = 512
596         },
597         .ciphertext = {
598                 .data = ciphertext512_aes128cbc,
599                 .len = 512
600         },
601         .auth_algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
602         .auth_key = {
603                 .data = {
604                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
605                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
606                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
607                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
608                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
609                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
610                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
611                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60,
612                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
613                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
614                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
615                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
616                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
617                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
618                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
619                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
620                 },
621                 .len = 128
622         },
623         .digest = {
624                 .data = {
625                         0x23, 0x60, 0xC8, 0xB1, 0x2D, 0x6C, 0x1E, 0x72,
626                         0x25, 0xAB, 0xF9, 0xC3, 0x9A, 0xA9, 0x4F, 0x8C,
627                         0x56, 0x38, 0x65, 0x0E, 0x74, 0xD5, 0x45, 0x9D,
628                         0xA3, 0xFD, 0x7E, 0x6D, 0x9E, 0x74, 0x88, 0x9D,
629                         0xA7, 0x12, 0x9D, 0xD8, 0x81, 0x3C, 0x86, 0x2F,
630                         0x4D, 0xF9, 0x6F, 0x0A, 0xB0, 0xC9, 0xEB, 0x0B
631                 },
632                 .len = 48,
633                 .truncated_len = 24
634         }
635 };
636
637 static const uint8_t ciphertext512_aes192cbc[] = {
638         0x45, 0xEE, 0x9A, 0xEA, 0x3C, 0x03, 0xFC, 0x4C,
639         0x84, 0x36, 0xB0, 0xDA, 0xB0, 0xDC, 0xF3, 0x5B,
640         0x75, 0xA7, 0xBE, 0x0E, 0xC0, 0x8D, 0x6C, 0xF8,
641         0xC1, 0x0F, 0xD0, 0x35, 0x1D, 0x82, 0xAE, 0x7C,
642         0x57, 0xC5, 0x7A, 0x55, 0x87, 0x1B, 0xD4, 0x03,
643         0x0A, 0x64, 0xC9, 0xE0, 0xF4, 0xC7, 0x6F, 0x57,
644         0x52, 0xC6, 0x73, 0xBA, 0x84, 0x0B, 0x5B, 0x89,
645         0x21, 0xD2, 0x9B, 0x88, 0x68, 0xF5, 0xA9, 0x7F,
646         0x3F, 0x49, 0xEB, 0xF4, 0xD4, 0x52, 0xD2, 0x64,
647         0x80, 0xB2, 0x53, 0xDA, 0x19, 0xF6, 0x10, 0x24,
648         0x23, 0x26, 0x7A, 0x7C, 0x07, 0x57, 0x4B, 0x0E,
649         0x58, 0x49, 0x61, 0xD1, 0xDC, 0x9A, 0x32, 0x6B,
650         0x0F, 0x43, 0x9E, 0x4D, 0xB4, 0x07, 0x4E, 0xB3,
651         0x51, 0x74, 0xDE, 0x29, 0xBC, 0x98, 0xF9, 0xDF,
652         0x78, 0x9A, 0x18, 0x9C, 0xD6, 0x7A, 0x55, 0x7C,
653         0xE6, 0x1D, 0x5C, 0x1A, 0x99, 0xD2, 0xC3, 0x7B,
654         0x9F, 0x96, 0x74, 0x2D, 0xE0, 0xEF, 0xD1, 0xE3,
655         0x08, 0x9F, 0xAF, 0xE6, 0xED, 0xCA, 0xE1, 0xEA,
656         0x23, 0x6F, 0x7C, 0x81, 0xA8, 0xC0, 0x5B, 0x8B,
657         0x53, 0x90, 0x51, 0x2D, 0x0F, 0xF6, 0x7D, 0xA7,
658         0x1C, 0xBD, 0x83, 0x84, 0x54, 0xA4, 0x15, 0xFB,
659         0x3E, 0x25, 0xA7, 0x3A, 0x0A, 0x73, 0xD9, 0x88,
660         0x6F, 0x80, 0x78, 0x95, 0x7F, 0x60, 0xAA, 0x86,
661         0x8A, 0xFC, 0xDF, 0xC1, 0xCB, 0xDE, 0xBB, 0x25,
662         0x52, 0x20, 0xC6, 0x79, 0xD4, 0x0F, 0x25, 0xE7,
663         0xDB, 0xB2, 0x17, 0xA4, 0x6F, 0x3C, 0x6F, 0x91,
664         0xF6, 0x44, 0x1E, 0xB6, 0x85, 0xBC, 0x7A, 0x14,
665         0x10, 0x72, 0xBD, 0x16, 0x63, 0x39, 0x9E, 0x7B,
666         0x84, 0x5B, 0x17, 0x61, 0xB1, 0x5D, 0x82, 0x0B,
667         0x6D, 0x37, 0xD7, 0x79, 0xB8, 0x24, 0x91, 0x30,
668         0x82, 0x91, 0x02, 0xB1, 0x18, 0x4B, 0xE0, 0xF4,
669         0x13, 0x1B, 0xB2, 0x4C, 0xDA, 0xB8, 0x99, 0x96,
670         0x83, 0x2F, 0xBE, 0x53, 0x8D, 0xDE, 0xFA, 0xAD,
671         0xF6, 0x5C, 0xDB, 0xE5, 0x66, 0x26, 0x8F, 0x13,
672         0x2B, 0x76, 0x47, 0x73, 0xDE, 0x1A, 0x74, 0xA6,
673         0x30, 0xAF, 0x42, 0xA0, 0xE5, 0xD2, 0x8F, 0xC2,
674         0xED, 0x3E, 0x9E, 0x29, 0x54, 0x3C, 0xDE, 0x9F,
675         0x5D, 0x30, 0x2B, 0x63, 0xFB, 0xE3, 0xB1, 0x07,
676         0xEE, 0x74, 0x4A, 0xAF, 0xB1, 0x20, 0x8D, 0xEC,
677         0xE6, 0x78, 0x16, 0x8D, 0xA4, 0x6E, 0x34, 0x7D,
678         0x47, 0xFB, 0x0B, 0xC1, 0x32, 0xD7, 0x0D, 0x6C,
679         0x6F, 0x93, 0x9C, 0x5E, 0xEF, 0x1F, 0x9C, 0x45,
680         0x80, 0x6B, 0x74, 0xA6, 0x81, 0xF2, 0xF6, 0xFA,
681         0xAA, 0x9D, 0x4F, 0xCA, 0xB5, 0x90, 0x59, 0xB0,
682         0x3B, 0xF2, 0xF0, 0x75, 0xFD, 0x8A, 0xD8, 0x97,
683         0x65, 0x88, 0x56, 0x4C, 0x44, 0xDF, 0x73, 0xF7,
684         0x56, 0x9C, 0x48, 0x7E, 0xB0, 0x1F, 0x1D, 0x7D,
685         0x6A, 0x11, 0xF5, 0xC2, 0xF4, 0x17, 0xEF, 0x58,
686         0xD8, 0x2A, 0xAF, 0x56, 0x2F, 0xCF, 0xEC, 0xA4,
687         0x58, 0x8B, 0x60, 0xCE, 0xD4, 0x0F, 0x9C, 0x21,
688         0xEC, 0x3E, 0x74, 0x7B, 0x81, 0x3D, 0x69, 0xC6,
689         0x5E, 0x12, 0x83, 0xE9, 0xEF, 0x81, 0x58, 0x36,
690         0x6A, 0x60, 0x0F, 0x54, 0x28, 0x11, 0xF9, 0x64,
691         0x36, 0xAD, 0x79, 0xF5, 0x1C, 0x74, 0xD0, 0xC3,
692         0x7B, 0x61, 0xE1, 0x92, 0xB0, 0x13, 0x91, 0x87,
693         0x32, 0x1F, 0xF2, 0x5A, 0xDA, 0x25, 0x69, 0xEB,
694         0xD7, 0x32, 0x7F, 0xF5, 0x23, 0x21, 0x54, 0x47,
695         0x7B, 0x1B, 0x33, 0xB0, 0x3D, 0xF6, 0xE2, 0x7E,
696         0x3E, 0xA2, 0x9E, 0xCA, 0x48, 0x0B, 0x4A, 0x29,
697         0x81, 0xD4, 0x4E, 0xD5, 0x69, 0xFB, 0xCD, 0x37,
698         0x8A, 0xC1, 0x5B, 0x50, 0xFF, 0xB5, 0x7D, 0x43,
699         0x0F, 0xAE, 0xA6, 0xC2, 0xE5, 0x8F, 0x45, 0xB2,
700         0x85, 0x99, 0x02, 0xA2, 0x9B, 0xBE, 0x90, 0x43,
701         0x4F, 0x2F, 0x50, 0xE2, 0x77, 0x62, 0xD9, 0xCC
702 };
703
704 /** AES-192-CBC test vector */
705 static const struct blockcipher_test_data aes_test_data_10 = {
706         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
707         .cipher_key = {
708                 .data = {
709                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
710                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
711                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
712                 },
713                 .len = 24
714         },
715         .iv = {
716                 .data = {
717                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
718                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
719                 },
720                 .len = 16
721         },
722         .plaintext = {
723                 .data = plaintext_aes_common,
724                 .len = 512
725         },
726         .ciphertext = {
727                 .data = ciphertext512_aes192cbc,
728                 .len = 512
729         }
730 };
731
732 static const uint8_t ciphertext512_aes256cbc[] = {
733         0xF3, 0xDD, 0xF0, 0x0B, 0xFF, 0xA2, 0x6A, 0x04,
734         0xBE, 0xDA, 0x52, 0xA6, 0xFE, 0x6B, 0xA6, 0xA7,
735         0x48, 0x1D, 0x7D, 0x98, 0x65, 0xDB, 0xEF, 0x06,
736         0x26, 0xB5, 0x8E, 0xEB, 0x05, 0x0E, 0x77, 0x98,
737         0x17, 0x8E, 0xD0, 0xD4, 0x7B, 0x92, 0x8F, 0x5C,
738         0xD0, 0x74, 0x5C, 0xA8, 0x4B, 0x54, 0xB6, 0x2F,
739         0x83, 0x72, 0x2C, 0xFF, 0x72, 0xE9, 0xE4, 0x15,
740         0x4C, 0x32, 0xAF, 0xC8, 0xC9, 0x89, 0x3C, 0x6E,
741         0x31, 0xD5, 0xC0, 0x16, 0xC0, 0x31, 0x7D, 0x11,
742         0xAB, 0xCB, 0xDE, 0xD2, 0xD6, 0xAA, 0x76, 0x5E,
743         0xBA, 0xF6, 0xE2, 0x92, 0xCB, 0x86, 0x07, 0xFA,
744         0xD4, 0x9E, 0x83, 0xED, 0xFD, 0xB8, 0x70, 0x54,
745         0x6B, 0xBE, 0xEC, 0x72, 0xDD, 0x28, 0x5E, 0x95,
746         0x78, 0xA5, 0x28, 0x43, 0x3D, 0x6D, 0xB1, 0xD9,
747         0x69, 0x1F, 0xC9, 0x66, 0x0E, 0x32, 0x44, 0x08,
748         0xD2, 0xAE, 0x2C, 0x43, 0xF2, 0xD0, 0x7D, 0x26,
749         0x70, 0xE5, 0xA1, 0xCA, 0x37, 0xE9, 0x7D, 0xC7,
750         0xA3, 0xFA, 0x81, 0x91, 0x64, 0xAA, 0x64, 0x91,
751         0x9A, 0x95, 0x2D, 0xC9, 0xF9, 0xCE, 0xFE, 0x9F,
752         0xC4, 0xD8, 0x81, 0xBE, 0x57, 0x84, 0xC5, 0x02,
753         0xDB, 0x30, 0xC1, 0xD9, 0x0E, 0xA0, 0xA6, 0x00,
754         0xD6, 0xF3, 0x52, 0x7E, 0x0D, 0x23, 0x6B, 0x2B,
755         0x34, 0x99, 0x1F, 0x70, 0x27, 0x6D, 0x58, 0x84,
756         0x93, 0x77, 0xB8, 0x3E, 0xF1, 0x71, 0x58, 0x42,
757         0x8B, 0x2B, 0xC8, 0x6D, 0x05, 0x84, 0xFF, 0x4E,
758         0x85, 0xEF, 0x4A, 0x9D, 0x91, 0x6A, 0xD5, 0xE1,
759         0xAF, 0x01, 0xEB, 0x83, 0x8F, 0x23, 0x7C, 0x7F,
760         0x12, 0x91, 0x05, 0xF0, 0x4E, 0xD9, 0x17, 0x62,
761         0x75, 0xBB, 0xAC, 0x97, 0xEE, 0x3B, 0x4E, 0xC7,
762         0xE5, 0x92, 0xF8, 0x9D, 0x4C, 0xF9, 0xEE, 0x55,
763         0x18, 0xBB, 0xCC, 0xB4, 0xF2, 0x59, 0xB9, 0xFC,
764         0x7A, 0x0F, 0x98, 0xD4, 0x8B, 0xFE, 0xF7, 0x83,
765         0x46, 0xE2, 0x83, 0x33, 0x3E, 0x95, 0x8D, 0x17,
766         0x1E, 0x85, 0xF8, 0x8C, 0x51, 0xB0, 0x6C, 0xB5,
767         0x5E, 0x95, 0xBA, 0x4B, 0x69, 0x1B, 0x48, 0x69,
768         0x0B, 0x8F, 0xA5, 0x18, 0x13, 0xB9, 0x77, 0xD1,
769         0x80, 0x32, 0x32, 0x6D, 0x53, 0xA1, 0x95, 0x40,
770         0x96, 0x8A, 0xCC, 0xA3, 0x69, 0xF8, 0x9F, 0xB5,
771         0x8E, 0xD2, 0x68, 0x07, 0x4F, 0xA7, 0xEC, 0xF8,
772         0x20, 0x21, 0x58, 0xF8, 0xD8, 0x9E, 0x5F, 0x40,
773         0xBA, 0xB9, 0x76, 0x57, 0x3B, 0x17, 0xAD, 0xEE,
774         0xCB, 0xDF, 0x07, 0xC1, 0xDF, 0x66, 0xA8, 0x0D,
775         0xC2, 0xCE, 0x8F, 0x79, 0xC3, 0x32, 0xE0, 0x8C,
776         0xFE, 0x5A, 0xF3, 0x55, 0x27, 0x73, 0x6F, 0xA1,
777         0x54, 0xC6, 0xFC, 0x28, 0x9D, 0xBE, 0x97, 0xB9,
778         0x54, 0x97, 0x72, 0x3A, 0x61, 0xAF, 0x6F, 0xDE,
779         0xF8, 0x0E, 0xBB, 0x6B, 0x96, 0x84, 0xDD, 0x9B,
780         0x62, 0xBA, 0x47, 0xB5, 0xC9, 0x3B, 0x4E, 0x8C,
781         0x78, 0x2A, 0xCC, 0x0A, 0x69, 0x54, 0x25, 0x5E,
782         0x8B, 0xAC, 0x56, 0xD9, 0xFE, 0x48, 0xBA, 0xCE,
783         0xA9, 0xCE, 0xA6, 0x1D, 0xBF, 0x3E, 0x3C, 0x66,
784         0x40, 0x71, 0x79, 0xAD, 0x5B, 0x26, 0xAD, 0xBE,
785         0x58, 0x13, 0x64, 0x60, 0x7C, 0x05, 0xFC, 0xE3,
786         0x51, 0x7A, 0xF2, 0xCC, 0x54, 0x16, 0x2C, 0xA4,
787         0xCE, 0x5F, 0x59, 0x12, 0x77, 0xEB, 0xD9, 0x23,
788         0xE3, 0x86, 0xFB, 0xD7, 0x48, 0x76, 0x9D, 0xE3,
789         0x89, 0x87, 0x39, 0xFA, 0x7B, 0x21, 0x0B, 0x76,
790         0xB2, 0xED, 0x1C, 0x27, 0x4B, 0xD5, 0x27, 0x05,
791         0x8C, 0x7D, 0x58, 0x6C, 0xCA, 0xA5, 0x54, 0x9A,
792         0x0F, 0xCB, 0xE9, 0x88, 0x31, 0xAD, 0x49, 0xEE,
793         0x38, 0xFB, 0xC9, 0xFB, 0xB4, 0x7A, 0x00, 0x58,
794         0x20, 0x32, 0xD3, 0x53, 0x5A, 0xDD, 0x74, 0x95,
795         0x60, 0x59, 0x09, 0xAE, 0x7E, 0xEC, 0x74, 0xA3,
796         0xB7, 0x1C, 0x6D, 0xF2, 0xAE, 0x79, 0xA4, 0x7C
797 };
798
799 /** AES-256-CBC test vector */
800 static const struct blockcipher_test_data aes_test_data_11 = {
801         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
802         .cipher_key = {
803                 .data = {
804                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
805                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
806                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0,
807                         0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D
808                 },
809                 .len = 32
810         },
811         .iv = {
812                 .data = {
813                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
814                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
815                 },
816                 .len = 16
817         },
818         .plaintext = {
819                 .data = plaintext_aes_common,
820                 .len = 512
821         },
822         .ciphertext = {
823                 .data = ciphertext512_aes256cbc,
824                 .len = 512
825         }
826 };
827
828 /** AES-128-CBC SHA256 HMAC test vector (160 bytes) */
829 static const struct blockcipher_test_data aes_test_data_12 = {
830         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
831         .cipher_key = {
832                 .data = {
833                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
834                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
835                 },
836                 .len = 16
837         },
838         .iv = {
839                 .data = {
840                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
841                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
842                 },
843                 .len = 16
844         },
845         .plaintext = {
846                 .data = plaintext_aes_common,
847                 .len = 160
848         },
849         .ciphertext = {
850                 .data = ciphertext512_aes128cbc,
851                 .len = 160
852         },
853         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
854         .auth_key = {
855                 .data = {
856                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
857                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
858                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
859                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
860                 },
861                 .len = 32
862         },
863         .digest = {
864                 .data = {
865                         0x92, 0xEC, 0x65, 0x9A, 0x52, 0xCC, 0x50, 0xA5,
866                         0xEE, 0x0E, 0xDF, 0x1E, 0xA4, 0xC9, 0xC1, 0x04,
867                         0xD5, 0xDC, 0x78, 0x90, 0xF4, 0xE3, 0x35, 0x62,
868                         0xAD, 0x95, 0x45, 0x28, 0x5C, 0xF8, 0x8C, 0x0B
869                 },
870                 .len = 32,
871                 .truncated_len = 16
872         }
873 };
874
875 /** AES-128-CBC SHA1 HMAC test vector (160 bytes) */
876 static const struct blockcipher_test_data aes_test_data_13 = {
877         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
878         .cipher_key = {
879                 .data = {
880                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
881                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
882                 },
883                 .len = 16
884         },
885         .iv = {
886                 .data = {
887                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
888                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
889                 },
890                 .len = 16
891         },
892         .plaintext = {
893                 .data = plaintext_aes_common,
894                 .len = 160
895         },
896         .ciphertext = {
897                 .data = ciphertext512_aes128cbc,
898                 .len = 160
899         },
900         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
901         .auth_key = {
902                 .data = {
903                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
904                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
905                         0xDE, 0xF4, 0xDE, 0xAD
906                 },
907                 .len = 20
908         },
909         .digest = {
910                 .data = {
911                         0x4F, 0x16, 0xEA, 0xF7, 0x4A, 0x88, 0xD3, 0xE0,
912                         0x0E, 0x12, 0x8B, 0xE7, 0x05, 0xD0, 0x86, 0x48,
913                         0x22, 0x43, 0x30, 0xA7
914                 },
915                 .len = 20,
916                 .truncated_len = 12
917         }
918 };
919
920 static const struct blockcipher_test_case aes_chain_test_cases[] = {
921         {
922                 .test_descr = "AES-128-CTR HMAC-SHA1 Encryption Digest",
923                 .test_data = &aes_test_data_1,
924                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
925                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
926                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
927                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
928                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
929         },
930         {
931                 .test_descr = "AES-128-CTR HMAC-SHA1 Decryption Digest "
932                         "Verify",
933                 .test_data = &aes_test_data_1,
934                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
935                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
936                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
937                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
938                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
939         },
940         {
941                 .test_descr = "AES-192-CTR XCBC Encryption Digest",
942                 .test_data = &aes_test_data_2,
943                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
944                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
945                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
946                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
947         },
948         {
949                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify",
950                 .test_data = &aes_test_data_2,
951                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
952                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
953                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
954                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
955         },
956         {
957                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify "
958                                 "Scatter Gather",
959                 .test_data = &aes_test_data_2,
960                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
961                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
962                         BLOCKCIPHER_TEST_FEATURE_OOP,
963                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
964                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
965                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
966         },
967         {
968                 .test_descr = "AES-256-CTR HMAC-SHA1 Encryption Digest",
969                 .test_data = &aes_test_data_3,
970                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
971                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
972                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
973                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
974                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
975         },
976         {
977                 .test_descr = "AES-256-CTR HMAC-SHA1 Decryption Digest "
978                         "Verify",
979                 .test_data = &aes_test_data_3,
980                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
981                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
982                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
983                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
984                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
985         },
986         {
987                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest",
988                 .test_data = &aes_test_data_4,
989                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
990                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
991                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
992                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
993                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
994                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
995         },
996         {
997                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
998                         "(short buffers)",
999                 .test_data = &aes_test_data_13,
1000                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1001                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8
1002         },
1003         {
1004                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1005                                 "Scatter Gather",
1006                 .test_data = &aes_test_data_4,
1007                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1008                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1009                         BLOCKCIPHER_TEST_FEATURE_OOP,
1010                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1011                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1012                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1013                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1014         },
1015         {
1016                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1017                         "Verify",
1018                 .test_data = &aes_test_data_4,
1019                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1020                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1021                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1022                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1023                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1024                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1025         },
1026         {
1027                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1028                         "Verify (short buffers)",
1029                 .test_data = &aes_test_data_13,
1030                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1031                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8
1032         },
1033         {
1034                 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest",
1035                 .test_data = &aes_test_data_5,
1036                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1037                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1038                         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-128-CBC HMAC-SHA256 Encryption Digest "
1045                         "(short buffers)",
1046                 .test_data = &aes_test_data_12,
1047                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1048                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8
1049         },
1050         {
1051                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1052                         "Verify",
1053                 .test_data = &aes_test_data_5,
1054                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1055                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1056                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1057                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1058                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1059                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1060         },
1061         {
1062                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1063                         "Verify (short buffers)",
1064                 .test_data = &aes_test_data_12,
1065                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1066                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8
1067         },
1068         {
1069                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest",
1070                 .test_data = &aes_test_data_6,
1071                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1072                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1073                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1074                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1075                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1076         },
1077         {
1078                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1079                         "Sessionless",
1080                 .test_data = &aes_test_data_6,
1081                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1082                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1083                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1084                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1085         },
1086         {
1087                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1088                                 "Scatter Gather Sessionless",
1089                 .test_data = &aes_test_data_6,
1090                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1091                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
1092                         BLOCKCIPHER_TEST_FEATURE_SG |
1093                         BLOCKCIPHER_TEST_FEATURE_OOP,
1094                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1095                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1096         },
1097         {
1098                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1099                         "Verify",
1100                 .test_data = &aes_test_data_6,
1101                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1102                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1103                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1104                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1105                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1106         },
1107         {
1108                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1109                         "Verify Scatter Gather",
1110                 .test_data = &aes_test_data_6,
1111                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1112                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1113                         BLOCKCIPHER_TEST_FEATURE_OOP,
1114                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1115                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1116                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1117                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1118         },
1119         {
1120                 .test_descr = "AES-128-CBC XCBC Encryption Digest",
1121                 .test_data = &aes_test_data_7,
1122                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1123                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1124                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1125                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1126         },
1127         {
1128                 .test_descr = "AES-128-CBC XCBC Decryption Digest Verify",
1129                 .test_data = &aes_test_data_7,
1130                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1131                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1132                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1133                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1134         },
1135         {
1136                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1137                         "OOP",
1138                 .test_data = &aes_test_data_4,
1139                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1140                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1141                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1142                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1143                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1144         },
1145         {
1146                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1147                         "Verify OOP",
1148                 .test_data = &aes_test_data_4,
1149                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1150                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1151                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1152                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1153                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1154         },
1155         {
1156                 .test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
1157                 .test_data = &aes_test_data_8,
1158                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1159                 .pmd_mask = 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-SHA224 Decryption Digest "
1166                         "Verify",
1167                 .test_data = &aes_test_data_8,
1168                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1169                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1170                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1171                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1172                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1173         },
1174         {
1175                 .test_descr = "AES-128-CBC HMAC-SHA384 Encryption Digest",
1176                 .test_data = &aes_test_data_9,
1177                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1178                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1179                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1180                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1181                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1182         },
1183         {
1184                 .test_descr = "AES-128-CBC HMAC-SHA384 Decryption Digest "
1185                         "Verify",
1186                 .test_data = &aes_test_data_9,
1187                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1188                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1189                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1190                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1191                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1192         },
1193         {
1194                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1195                                 "Sessionless",
1196                 .test_data = &aes_test_data_4,
1197                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1198                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1199                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1200                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1201         },
1202         {
1203                 .test_descr =
1204                                 "AES-128-CBC HMAC-SHA1 Decryption Digest "
1205                                 "Verify Sessionless",
1206                 .test_data = &aes_test_data_4,
1207                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1208                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1209                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1210                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1211         },
1212 };
1213
1214 static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
1215         {
1216                 .test_descr = "AES-128-CBC Encryption",
1217                 .test_data = &aes_test_data_4,
1218                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1219                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1220                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1221                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1222                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1223         },
1224         {
1225                 .test_descr = "AES-128-CBC Decryption",
1226                 .test_data = &aes_test_data_4,
1227                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1228                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1229                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1230                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1231                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1232         },
1233         {
1234                 .test_descr = "AES-192-CBC Encryption",
1235                 .test_data = &aes_test_data_10,
1236                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1237                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1238                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1239                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1240                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1241         },
1242         {
1243                 .test_descr = "AES-192-CBC Encryption Scater gather",
1244                 .test_data = &aes_test_data_10,
1245                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1246                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1247                         BLOCKCIPHER_TEST_FEATURE_OOP,
1248                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1249         },
1250         {
1251                 .test_descr = "AES-192-CBC Decryption",
1252                 .test_data = &aes_test_data_10,
1253                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1254                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1255                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1256                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1257                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1258         },
1259         {
1260                 .test_descr = "AES-256-CBC Encryption",
1261                 .test_data = &aes_test_data_11,
1262                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1263                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1264                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1265                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1266                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1267         },
1268         {
1269                 .test_descr = "AES-256-CBC Decryption",
1270                 .test_data = &aes_test_data_11,
1271                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1272                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1273                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1274                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1275                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1276         },
1277         {
1278                 .test_descr = "AES-128-CTR Encryption",
1279                 .test_data = &aes_test_data_1,
1280                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1281                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1282                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1283                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1284                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1285         },
1286         {
1287                 .test_descr = "AES-128-CTR Decryption",
1288                 .test_data = &aes_test_data_1,
1289                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1290                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1291                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1292                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1293                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1294         },
1295         {
1296                 .test_descr = "AES-192-CTR Encryption",
1297                 .test_data = &aes_test_data_2,
1298                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1299                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1300                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1301                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1302                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1303         },
1304         {
1305                 .test_descr = "AES-192-CTR Decryption",
1306                 .test_data = &aes_test_data_2,
1307                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1308                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1309                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1310                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1311                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1312         },
1313         {
1314                 .test_descr = "AES-256-CTR Encryption",
1315                 .test_data = &aes_test_data_3,
1316                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1317                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1318                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1319                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1320                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1321         },
1322         {
1323                 .test_descr = "AES-256-CTR Decryption",
1324                 .test_data = &aes_test_data_3,
1325                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1326                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1327                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1328                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1329                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1330         },
1331 };
1332
1333 #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */