test/crypto: enable additional cases for dpaax
[dpdk.git] / app / test / test_cryptodev_aes_test_vectors.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2016-2019 Intel Corporation
3  */
4
5 #ifndef TEST_CRYPTODEV_AES_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_AES_TEST_VECTORS_H_
7
8 /* test vectors */
9 static const uint8_t plaintext_aes128ctr[] = {
10         0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
11         0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A,
12         0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C,
13         0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51,
14         0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11,
15         0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF,
16         0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17,
17         0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10
18 };
19
20 static const uint8_t ciphertext64_aes128ctr[] = {
21         0x87, 0x4D, 0x61, 0x91, 0xB6, 0x20, 0xE3, 0x26,
22         0x1B, 0xEF, 0x68, 0x64, 0x99, 0x0D, 0xB6, 0xCE,
23         0x98, 0x06, 0xF6, 0x6B, 0x79, 0x70, 0xFD, 0xFF,
24         0x86, 0x17, 0x18, 0x7B, 0xB9, 0xFF, 0xFD, 0xFF,
25         0x5A, 0xE4, 0xDF, 0x3E, 0xDB, 0xD5, 0xD3, 0x5E,
26         0x5B, 0x4F, 0x09, 0x02, 0x0D, 0xB0, 0x3E, 0xAB,
27         0x1E, 0x03, 0x1D, 0xDA, 0x2F, 0xBE, 0x03, 0xD1,
28         0x79, 0x21, 0x70, 0xA0, 0xF3, 0x00, 0x9C, 0xEE
29 };
30
31 static const uint8_t ciphertext64_aes128ctr_IV_12bytes[] = {
32         0x28, 0x80, 0x28, 0xC7, 0x15, 0x99, 0xC5, 0xA8,
33         0xDD, 0x53, 0xC2, 0x67, 0x1B, 0x86, 0xB8, 0x13,
34         0xAB, 0x25, 0x39, 0x7A, 0xD2, 0x1F, 0x8B, 0x4B,
35         0x94, 0x89, 0x2B, 0x65, 0xCF, 0x89, 0x1E, 0xDD,
36         0xD4, 0x7C, 0xFD, 0x8D, 0x0E, 0xCD, 0x23, 0xA4,
37         0xEB, 0x8C, 0x05, 0x58, 0x45, 0x4A, 0x63, 0x44,
38         0x11, 0x42, 0x07, 0x17, 0xB4, 0xD2, 0xCC, 0x75,
39         0xB7, 0x23, 0x99, 0xA9, 0xC5, 0x89, 0x7F, 0x66
40 };
41
42 static const uint8_t plaintext_aes_docsis_bpi_cfb[] = {
43         0x00, 0x01, 0x02, 0x88, 0xEE, 0x59, 0x7E
44 };
45
46 static const uint8_t ciphertext_aes_docsis_bpi_cfb[] = {
47         0xFC, 0x68, 0xA3, 0x55, 0x60, 0x37, 0xDC
48 };
49
50 static const uint8_t plaintext_aes_docsis_bpi_cbc_cfb[] = {
51         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
52         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x91,
53         0xD2, 0xD1, 0x9F
54 };
55
56 static const uint8_t ciphertext_aes_docsis_bpi_cbc_cfb[] = {
57         0x9D, 0xD1, 0x67, 0x4B, 0xBA, 0x61, 0x10, 0x1B,
58         0x56, 0x75, 0x64, 0x74, 0x36, 0x4F, 0x10, 0x1D,
59         0x44, 0xD4, 0x73
60 };
61
62 static const uint8_t plaintext_aes192ctr[] = {
63         0x01, 0x0F, 0x10, 0x1F, 0x20, 0x1C, 0x0E, 0xB8,
64         0xFB, 0x5C, 0xCD, 0xCC, 0x1F, 0xF9, 0xAF, 0x0B,
65         0x95, 0x03, 0x74, 0x99, 0x49, 0xE7, 0x62, 0x55,
66         0xDA, 0xEA, 0x13, 0x20, 0x1D, 0xC6, 0xCC, 0xCC,
67         0xD1, 0x70, 0x75, 0x47, 0x02, 0x2F, 0xFB, 0x86,
68         0xBB, 0x6B, 0x23, 0xD2, 0xC9, 0x74, 0xD7, 0x7B,
69         0x08, 0x03, 0x3B, 0x79, 0x39, 0xBB, 0x91, 0x29,
70         0xDA, 0x14, 0x39, 0x8D, 0xFF, 0x81, 0x50, 0x96,
71 };
72
73 static const uint8_t ciphertext64_aes192ctr[] = {
74         0x4A, 0x6C, 0xC8, 0xCC, 0x96, 0x2A, 0x13, 0x84,
75         0x1C, 0x36, 0x88, 0xE9, 0xE5, 0x94, 0x70, 0xB2,
76         0x14, 0x5B, 0x13, 0x80, 0xEA, 0xD8, 0x8D, 0x37,
77         0xFD, 0x70, 0xA8, 0x83, 0xE8, 0x2B, 0x88, 0x1E,
78         0xBA, 0x94, 0x3F, 0xF6, 0xB3, 0x1F, 0xDE, 0x34,
79         0xF3, 0x5B, 0x80, 0xE9, 0xAB, 0xF5, 0x1C, 0x29,
80         0xB6, 0xD9, 0x76, 0x2B, 0x06, 0xC6, 0x74, 0xF1,
81         0x59, 0x5E, 0x9E, 0xA5, 0x7B, 0x2D, 0xD7, 0xF0
82 };
83
84 static const uint8_t ciphertext64_aes192ctr_IV_12bytes[] = {
85         0x67, 0x65, 0xa9, 0xee, 0xfd, 0x31, 0x62, 0xfc,
86         0xad, 0xfd, 0xc7, 0x25, 0xb7, 0x25, 0x16, 0xbe,
87         0x25, 0xce, 0xc0, 0x1d, 0xda, 0xa9, 0xd3, 0xda,
88         0x1b, 0x7d, 0x68, 0x6a, 0x6f, 0x06, 0xea, 0x47,
89         0xa0, 0xe0, 0x15, 0xf4, 0xbd, 0x1b, 0x70, 0x34,
90         0xd4, 0x6d, 0x1c, 0x84, 0x17, 0x91, 0x46, 0x0c,
91         0xe8, 0xbc, 0x7a, 0xfb, 0x9f, 0x2a, 0x8f, 0xb4,
92         0xd4, 0xf3, 0x6e, 0x5b, 0x75, 0xa0, 0xce, 0x32
93 };
94
95 static const uint8_t plaintext_aes256ctr[] = {
96         0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
97         0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A,
98         0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C,
99         0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51,
100         0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11,
101         0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF,
102         0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17,
103         0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10
104 };
105
106 static const uint8_t ciphertext64_aes256ctr[] = {
107         0x60, 0x1E, 0xC3, 0x13, 0x77, 0x57, 0x89, 0xA5,
108         0xB7, 0xA7, 0xF5, 0x04, 0xBB, 0xF3, 0xD2, 0x28,
109         0xF4, 0x43, 0xE3, 0xCA, 0x4D, 0x62, 0xB5, 0x9A,
110         0xCA, 0x84, 0xE9, 0x90, 0xCA, 0xCA, 0xF5, 0xC5,
111         0x2B, 0x09, 0x30, 0xDA, 0xA2, 0x3D, 0xE9, 0x4C,
112         0xE8, 0x70, 0x17, 0xBA, 0x2D, 0x84, 0x98, 0x8D,
113         0xDF, 0xC9, 0xC5, 0x8D, 0xB6, 0x7A, 0xAD, 0xA6,
114         0x13, 0xC2, 0xDD, 0x08, 0x45, 0x79, 0x41, 0xA6
115 };
116
117 static const uint8_t ciphertext64_aes256ctr_IV_12bytes[] = {
118         0x7B, 0x7A, 0x7D, 0x83, 0x85, 0xF8, 0x81, 0xF3,
119         0x32, 0x33, 0xD9, 0xFB, 0x04, 0x73, 0xD4, 0x2F,
120         0x70, 0xDE, 0x90, 0x3E, 0xD0, 0xA9, 0x93, 0x8A,
121         0x91, 0xF3, 0xB5, 0x29, 0x4D, 0x2A, 0x74, 0xD0,
122         0xDC, 0x4E, 0x5C, 0x9B, 0x97, 0x24, 0xD8, 0x02,
123         0xFE, 0xAB, 0x38, 0xE8, 0x73, 0x51, 0x29, 0x7E,
124         0xF1, 0xF9, 0x40, 0x78, 0xB1, 0x04, 0x7A, 0x78,
125         0x61, 0x07, 0x47, 0xE6, 0x8C, 0x0F, 0xA8, 0x76
126 };
127
128 static const uint8_t plaintext_aes_common[] = {
129         "What a lousy earth! He wondered how many people "
130         "were destitute that same night even in his own "
131         "prosperous country, how many homes were "
132         "shanties, how many husbands were drunk and "
133         "wives socked, and how many children were "
134         "bullied, abused, or abandoned. How many "
135         "families hungered for food they could not "
136         "afford to buy? How many hearts were broken? How "
137         "many suicides would take place that same night, "
138         "how many people would go insane? How many "
139         "cockroaches and landlords would triumph? How "
140         "many winners were losers, successes failures, "
141         "and rich men poor men? How many wise guys were "
142         "stupid? How many happy endings were unhappy "
143         "endings? How many honest men were liars, brave "
144         "men cowards, loyal men traitors, how many "
145         "sainted men were corrupt, how many people in "
146         "positions of trust had sold their souls to "
147         "bodyguards, how many had never had souls? How "
148         "many straight-and-narrow paths were crooked "
149         "paths? How many best families were worst "
150         "families and how many good people were bad "
151         "people? When you added them all up and then "
152         "subtracted, you might be left with only the "
153         "children, and perhaps with Albert Einstein and "
154         "an old violinist or sculptor somewhere."
155 };
156
157 static const uint8_t ciphertext512_aes128cbc[] = {
158         0x8B, 0x4D, 0xDA, 0x1B, 0xCF, 0x04, 0xA0, 0x31,
159         0xB4, 0xBF, 0xBD, 0x68, 0x43, 0x20, 0x7E, 0x76,
160         0xB1, 0x96, 0x8B, 0xA2, 0x7C, 0xA2, 0x83, 0x9E,
161         0x39, 0x5A, 0x2F, 0x7E, 0x92, 0xB4, 0x48, 0x1A,
162         0x3F, 0x6B, 0x5D, 0xDF, 0x52, 0x85, 0x5F, 0x8E,
163         0x42, 0x3C, 0xFB, 0xE9, 0x1A, 0x24, 0xD6, 0x08,
164         0xDD, 0xFD, 0x16, 0xFB, 0xE9, 0x55, 0xEF, 0xF0,
165         0xA0, 0x8D, 0x13, 0xAB, 0x81, 0xC6, 0x90, 0x01,
166         0xB5, 0x18, 0x84, 0xB3, 0xF6, 0xE6, 0x11, 0x57,
167         0xD6, 0x71, 0xC6, 0x3C, 0x3F, 0x2F, 0x33, 0xEE,
168         0x24, 0x42, 0x6E, 0xAC, 0x0B, 0xCA, 0xEC, 0xF9,
169         0x84, 0xF8, 0x22, 0xAA, 0x60, 0xF0, 0x32, 0xA9,
170         0x75, 0x75, 0x3B, 0xCB, 0x70, 0x21, 0x0A, 0x8D,
171         0x0F, 0xE0, 0xC4, 0x78, 0x2B, 0xF8, 0x97, 0xE3,
172         0xE4, 0x26, 0x4B, 0x29, 0xDA, 0x88, 0xCD, 0x46,
173         0xEC, 0xAA, 0xF9, 0x7F, 0xF1, 0x15, 0xEA, 0xC3,
174         0x87, 0xE6, 0x31, 0xF2, 0xCF, 0xDE, 0x4D, 0x80,
175         0x70, 0x91, 0x7E, 0x0C, 0xF7, 0x26, 0x3A, 0x92,
176         0x4F, 0x18, 0x83, 0xC0, 0x8F, 0x59, 0x01, 0xA5,
177         0x88, 0xD1, 0xDB, 0x26, 0x71, 0x27, 0x16, 0xF5,
178         0xEE, 0x10, 0x82, 0xAC, 0x68, 0x26, 0x9B, 0xE2,
179         0x6D, 0xD8, 0x9A, 0x80, 0xDF, 0x04, 0x31, 0xD5,
180         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
181         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
182         0x73, 0x02, 0x42, 0xC9, 0x23, 0x18, 0x8E, 0xB4,
183         0x6F, 0xB4, 0xA3, 0x54, 0x6E, 0x88, 0x3B, 0x62,
184         0x7C, 0x02, 0x8D, 0x4C, 0x9F, 0xC8, 0x45, 0xF4,
185         0xC9, 0xDE, 0x4F, 0xEB, 0x22, 0x83, 0x1B, 0xE4,
186         0x49, 0x37, 0xE4, 0xAD, 0xE7, 0xCD, 0x21, 0x54,
187         0xBC, 0x1C, 0xC2, 0x04, 0x97, 0xB4, 0x10, 0x61,
188         0xF0, 0xE4, 0xEF, 0x27, 0x63, 0x3A, 0xDA, 0x91,
189         0x41, 0x25, 0x62, 0x1C, 0x5C, 0xB6, 0x38, 0x4A,
190         0x88, 0x71, 0x59, 0x5A, 0x8D, 0xA0, 0x09, 0xAF,
191         0x72, 0x94, 0xD7, 0x79, 0x5C, 0x60, 0x7C, 0x8F,
192         0x4C, 0xF5, 0xD9, 0xA1, 0x39, 0x6D, 0x81, 0x28,
193         0xEF, 0x13, 0x28, 0xDF, 0xF5, 0x3E, 0xF7, 0x8E,
194         0x09, 0x9C, 0x78, 0x18, 0x79, 0xB8, 0x68, 0xD7,
195         0xA8, 0x29, 0x62, 0xAD, 0xDE, 0xE1, 0x61, 0x76,
196         0x1B, 0x05, 0x16, 0xCD, 0xBF, 0x02, 0x8E, 0xA6,
197         0x43, 0x6E, 0x92, 0x55, 0x4F, 0x60, 0x9C, 0x03,
198         0xB8, 0x4F, 0xA3, 0x02, 0xAC, 0xA8, 0xA7, 0x0C,
199         0x1E, 0xB5, 0x6B, 0xF8, 0xC8, 0x4D, 0xDE, 0xD2,
200         0xB0, 0x29, 0x6E, 0x40, 0xE6, 0xD6, 0xC9, 0xE6,
201         0xB9, 0x0F, 0xB6, 0x63, 0xF5, 0xAA, 0x2B, 0x96,
202         0xA7, 0x16, 0xAC, 0x4E, 0x0A, 0x33, 0x1C, 0xA6,
203         0xE6, 0xBD, 0x8A, 0xCF, 0x40, 0xA9, 0xB2, 0xFA,
204         0x63, 0x27, 0xFD, 0x9B, 0xD9, 0xFC, 0xD5, 0x87,
205         0x8D, 0x4C, 0xB6, 0xA4, 0xCB, 0xE7, 0x74, 0x55,
206         0xF4, 0xFB, 0x41, 0x25, 0xB5, 0x4B, 0x0A, 0x1B,
207         0xB1, 0xD6, 0xB7, 0xD9, 0x47, 0x2A, 0xC3, 0x98,
208         0x6A, 0xC4, 0x03, 0x73, 0x1F, 0x93, 0x6E, 0x53,
209         0x19, 0x25, 0x64, 0x15, 0x83, 0xF9, 0x73, 0x2A,
210         0x74, 0xB4, 0x93, 0x69, 0xC4, 0x72, 0xFC, 0x26,
211         0xA2, 0x9F, 0x43, 0x45, 0xDD, 0xB9, 0xEF, 0x36,
212         0xC8, 0x3A, 0xCD, 0x99, 0x9B, 0x54, 0x1A, 0x36,
213         0xC1, 0x59, 0xF8, 0x98, 0xA8, 0xCC, 0x28, 0x0D,
214         0x73, 0x4C, 0xEE, 0x98, 0xCB, 0x7C, 0x58, 0x7E,
215         0x20, 0x75, 0x1E, 0xB7, 0xC9, 0xF8, 0xF2, 0x0E,
216         0x63, 0x9E, 0x05, 0x78, 0x1A, 0xB6, 0xA8, 0x7A,
217         0xF9, 0x98, 0x6A, 0xA6, 0x46, 0x84, 0x2E, 0xF6,
218         0x4B, 0xDC, 0x9B, 0x8F, 0x9B, 0x8F, 0xEE, 0xB4,
219         0xAA, 0x3F, 0xEE, 0xC0, 0x37, 0x27, 0x76, 0xC7,
220         0x95, 0xBB, 0x26, 0x74, 0x69, 0x12, 0x7F, 0xF1,
221         0xBB, 0xFF, 0xAE, 0xB5, 0x99, 0x6E, 0xCB, 0x0C
222 };
223
224 /* NULL cipher NULL auth 8-byte multiple test vector */
225 static const struct blockcipher_test_data null_test_data_chain_x8_multiple = {
226         .crypto_algo = RTE_CRYPTO_CIPHER_NULL,
227         .cipher_key = { /* arbitrary data - shouldn't be used */
228                 .data = {
229                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
230                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
231                 },
232                 .len = 16
233         },
234         .iv = {                 /* arbitrary data - shouldn't be used */
235                 .data = {
236                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
237                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
238                 },
239                 .len = 16
240         },
241         .plaintext = {
242                 .data = plaintext_aes_common,
243                 .len = 512
244         },
245         .ciphertext = {
246                 .data = plaintext_aes_common,
247                 .len = 512
248         },
249         .auth_algo = RTE_CRYPTO_AUTH_NULL,
250         .auth_key = {           /* arbitrary data - shouldn't be used */
251                 .data = {
252                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
253                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
254                         0xDE, 0xF4, 0xDE, 0xAD
255                 },
256                 .len = 20
257         },
258         .digest = {
259                 .data = {
260                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
261                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
262                         0x00, 0x00, 0x00, 0x00
263                 },
264                 .len = 20,
265                 .truncated_len = 12
266         }
267 };
268
269 /* NULL cipher NULL auth 4-byte multiple test vector */
270 static const struct blockcipher_test_data null_test_data_chain_x4_multiple = {
271         .crypto_algo = RTE_CRYPTO_CIPHER_NULL,
272         .cipher_key = { /* arbitrary data - shouldn't be used */
273                 .data = {
274                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
275                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
276                 },
277                 .len = 16
278         },
279         .iv = {                 /* arbitrary data - shouldn't be used */
280                 .data = {
281                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
282                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
283                 },
284                 .len = 16
285         },
286         .plaintext = {
287                 .data = plaintext_aes128ctr,
288                 .len = 20
289         },
290         .ciphertext = {
291                 .data = plaintext_aes128ctr,
292                 .len = 20
293         },
294         .auth_algo = RTE_CRYPTO_AUTH_NULL,
295         .auth_key = {           /* arbitrary data - shouldn't be used */
296                 .data = {
297                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
298                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
299                         0xDE, 0xF4, 0xDE, 0xAD
300                 },
301                 .len = 20
302         },
303         .digest = {
304                 .data = {
305                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
306                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
307                         0x00, 0x00, 0x00, 0x00
308                 },
309                 .len = 20,
310                 .truncated_len = 12
311         }
312 };
313
314 /* NULL cipher NULL auth 1-byte multiple test vector */
315 static const struct blockcipher_test_data null_test_data_chain_x1_multiple = {
316         .crypto_algo = RTE_CRYPTO_CIPHER_NULL,
317         .cipher_key = { /* arbitrary data - shouldn't be used */
318                 .data = {
319                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
320                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
321                 },
322                 .len = 16
323         },
324         .iv = {                 /* arbitrary data - shouldn't be used */
325                 .data = {
326                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
327                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
328                 },
329                 .len = 16
330         },
331         .plaintext = {
332                 .data = plaintext_aes128ctr,
333                 .len = 21
334         },
335         .ciphertext = {
336                 .data = plaintext_aes128ctr,
337                 .len = 21
338         },
339         .auth_algo = RTE_CRYPTO_AUTH_NULL,
340         .auth_key = {           /* arbitrary data - shouldn't be used */
341                 .data = {
342                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
343                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
344                         0xDE, 0xF4, 0xDE, 0xAD
345                 },
346                 .len = 20
347         },
348         .digest = {
349                 .data = {
350                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
351                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
352                         0x00, 0x00, 0x00, 0x00
353                 },
354                 .len = 20,
355                 .truncated_len = 12
356         }
357 };
358
359 static const uint8_t ciphertext512_aes128cbc_aad[] = {
360         0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C,
361         0x6F, 0x75, 0x73, 0x79, 0x6D, 0x70, 0xB4, 0xAD,
362         0x09, 0x7C, 0xD7, 0x52, 0xD6, 0xF2, 0xBF, 0xD1,
363         0x9D, 0x79, 0xC6, 0xB6, 0x8F, 0x94, 0xEB, 0xD8,
364         0xBA, 0x5E, 0x01, 0x49, 0x7D, 0xB3, 0xC5, 0xFE,
365         0x18, 0xF4, 0xE3, 0x60, 0x8C, 0x84, 0x68, 0x13,
366         0x33, 0x06, 0x85, 0x60, 0xD3, 0xE7, 0x8A, 0xB5,
367         0x23, 0xA2, 0xDE, 0x52, 0x5C, 0xB6, 0x26, 0x37,
368         0xBB, 0x23, 0x8A, 0x38, 0x07, 0x85, 0xB6, 0x2E,
369         0xC3, 0x69, 0x57, 0x79, 0x6B, 0xE4, 0xD7, 0x86,
370         0x23, 0x72, 0x4C, 0x65, 0x49, 0x08, 0x1E, 0xF3,
371         0xCC, 0x71, 0x4C, 0x45, 0x97, 0x03, 0xBC, 0xA0,
372         0x9D, 0xF0, 0x4F, 0x5D, 0xEC, 0x40, 0x6C, 0xC6,
373         0x52, 0xC0, 0x9D, 0x1C, 0xDC, 0x8B, 0xC2, 0xFA,
374         0x35, 0xA7, 0x3A, 0x00, 0x04, 0x1C, 0xA6, 0x91,
375         0x5D, 0xEB, 0x07, 0xA1, 0xB9, 0x3E, 0xD1, 0xB6,
376         0xCA, 0x96, 0xEC, 0x71, 0xF7, 0x7D, 0xB6, 0x09,
377         0x3D, 0x19, 0x6E, 0x75, 0x03, 0xC3, 0x1A, 0x4E,
378         0x5B, 0x4D, 0xEA, 0xD9, 0x92, 0x96, 0x01, 0xFB,
379         0xA3, 0xC2, 0x6D, 0xC4, 0x17, 0x6B, 0xB4, 0x3B,
380         0x1E, 0x87, 0x54, 0x26, 0x95, 0x63, 0x07, 0x73,
381         0xB6, 0xBA, 0x52, 0xD7, 0xA7, 0xD0, 0x9C, 0x75,
382         0x8A, 0xCF, 0xC4, 0x3C, 0x4A, 0x55, 0x0E, 0x53,
383         0xEC, 0xE0, 0x31, 0x51, 0xB7, 0xB7, 0xD2, 0xB4,
384         0xF3, 0x2B, 0x70, 0x6D, 0x15, 0x9E, 0x57, 0x30,
385         0x72, 0xE5, 0xA4, 0x71, 0x5F, 0xA4, 0xE8, 0x7C,
386         0x46, 0x58, 0x36, 0x71, 0x91, 0x55, 0xAA, 0x99,
387         0x3B, 0x3F, 0xF6, 0xA2, 0x9D, 0x27, 0xBF, 0xC2,
388         0x62, 0x2C, 0x85, 0xB7, 0x51, 0xDD, 0xFD, 0x7B,
389         0x8B, 0xB5, 0xDD, 0x2A, 0x73, 0xF8, 0x93, 0x9A,
390         0x3F, 0xAD, 0x1D, 0xF0, 0x46, 0xD1, 0x76, 0x83,
391         0x71, 0x4E, 0xD3, 0x0D, 0x64, 0x8C, 0xC3, 0xE6,
392         0x03, 0xED, 0xE8, 0x53, 0x23, 0x1A, 0xC7, 0x86,
393         0xEB, 0x87, 0xD6, 0x78, 0xF9, 0xFB, 0x9C, 0x1D,
394         0xE7, 0x4E, 0xC0, 0x70, 0x27, 0x7A, 0x43, 0xE2,
395         0x5D, 0xA4, 0x10, 0x40, 0xBE, 0x61, 0x0D, 0x2B,
396         0x25, 0x08, 0x75, 0x91, 0xB5, 0x5A, 0x26, 0xC8,
397         0x32, 0xA7, 0xC6, 0x88, 0xBF, 0x75, 0x94, 0xCC,
398         0x58, 0xA4, 0xFE, 0x2F, 0xF7, 0x5C, 0xD2, 0x36,
399         0x66, 0x55, 0xF0, 0xEA, 0xF5, 0x64, 0x43, 0xE7,
400         0x6D, 0xE0, 0xED, 0xA1, 0x10, 0x0A, 0x84, 0x07,
401         0x11, 0x88, 0xFA, 0xA1, 0xD3, 0xA0, 0x00, 0x5D,
402         0xEB, 0xB5, 0x62, 0x01, 0x72, 0xC1, 0x9B, 0x39,
403         0x0B, 0xD3, 0xAF, 0x04, 0x19, 0x42, 0xEC, 0xFF,
404         0x4B, 0xB3, 0x5E, 0x87, 0x27, 0xE4, 0x26, 0x57,
405         0x76, 0xCD, 0x36, 0x31, 0x5B, 0x94, 0x74, 0xFF,
406         0x33, 0x91, 0xAA, 0xD1, 0x45, 0x34, 0xC2, 0x11,
407         0xF0, 0x35, 0x44, 0xC9, 0xD5, 0xA2, 0x5A, 0xC2,
408         0xE9, 0x9E, 0xCA, 0xE2, 0x6F, 0xD2, 0x40, 0xB4,
409         0x93, 0x42, 0x78, 0x20, 0x92, 0x88, 0xC7, 0x16,
410         0xCF, 0x15, 0x54, 0x7B, 0xE1, 0x46, 0x38, 0x69,
411         0xB8, 0xE4, 0xF1, 0x81, 0xF0, 0x08, 0x6F, 0x92,
412         0x6D, 0x1A, 0xD9, 0x93, 0xFA, 0xD7, 0x35, 0xFE,
413         0x7F, 0x59, 0x43, 0x1D, 0x3A, 0x3B, 0xFC, 0xD0,
414         0x14, 0x95, 0x1E, 0xB2, 0x04, 0x08, 0x4F, 0xC6,
415         0xEA, 0xE8, 0x22, 0xF3, 0xD7, 0x66, 0x93, 0xAA,
416         0xFD, 0xA0, 0xFE, 0x03, 0x96, 0x54, 0x78, 0x35,
417         0x18, 0xED, 0xB7, 0x2F, 0x40, 0xE3, 0x8E, 0x22,
418         0xC6, 0xDA, 0xB0, 0x8E, 0xA0, 0xA1, 0x62, 0x03,
419         0x63, 0x34, 0x11, 0xF5, 0x9E, 0xAA, 0x6B, 0xC4,
420         0x14, 0x75, 0x4C, 0xF4, 0xD8, 0xD9, 0xF1, 0x76,
421         0xE3, 0xD3, 0x55, 0xCE, 0x22, 0x7D, 0x4A, 0xB7,
422         0xBB, 0x7F, 0x4F, 0x09, 0x88, 0x70, 0x6E, 0x09,
423         0x84, 0x6B, 0x24, 0x19, 0x2C, 0x20, 0x73, 0x75
424 };
425
426 /* AES128-CTR-SHA1 test vector */
427 static const struct blockcipher_test_data aes_test_data_1 = {
428         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
429         .cipher_key = {
430                 .data = {
431                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
432                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
433                 },
434                 .len = 16
435         },
436         .iv = {
437                 .data = {
438                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
439                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
440                 },
441                 .len = 16
442         },
443         .plaintext = {
444                 .data = plaintext_aes128ctr,
445                 .len = 64
446         },
447         .ciphertext = {
448                 .data = ciphertext64_aes128ctr,
449                 .len = 64
450         },
451         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
452         .auth_key = {
453                 .data = {
454                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
455                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
456                         0xDE, 0xF4, 0xDE, 0xAD
457                 },
458                 .len = 20
459         },
460         .digest = {
461                 .data = {
462                         0x9B, 0x6F, 0x0C, 0x43, 0xF5, 0xC1, 0x3E, 0xB0,
463                         0xB1, 0x70, 0xB8, 0x2B, 0x33, 0x09, 0xD2, 0xB2,
464                         0x56, 0x20, 0xFB, 0xFE
465                 },
466                 .len = 20,
467                 .truncated_len = 12
468         }
469 };
470
471 /** AES-192-CTR XCBC test vector */
472 static const struct blockcipher_test_data aes_test_data_2 = {
473         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
474         .cipher_key = {
475                 .data = {
476                         0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C,
477                         0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F,
478                         0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4
479                 },
480                 .len = 24
481         },
482         .iv = {
483                 .data = {
484                         0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
485                         0xB8, 0x7A, 0x4B, 0xED, 0x2B, 0xAF, 0xBF, 0x57
486                 },
487                 .len = 16
488         },
489         .plaintext = {
490                 .data = plaintext_aes192ctr,
491                 .len = 64
492         },
493         .ciphertext = {
494                 .data = ciphertext64_aes192ctr,
495                 .len = 64
496         },
497         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
498         .auth_key = {
499                 .data = {
500                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
501                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
502                 },
503                 .len = 16
504         },
505         .digest = {
506                 .data = {
507                         0xCA, 0x33, 0xB3, 0x3B, 0x16, 0x94, 0xAA, 0x55,
508                         0x36, 0x6B, 0x45, 0x46
509                 },
510                 .len = 12,
511                 .truncated_len = 12
512         }
513 };
514
515 /** AES-256-CTR SHA1 test vector */
516 static const struct blockcipher_test_data aes_test_data_3 = {
517         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
518         .cipher_key = {
519                 .data = {
520                         0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE,
521                         0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81,
522                         0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7,
523                         0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4
524                 },
525                 .len = 32
526         },
527         .iv = {
528                 .data = {
529                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
530                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
531                 },
532                 .len = 16
533         },
534         .plaintext = {
535                 .data = plaintext_aes256ctr,
536                 .len = 64
537         },
538         .ciphertext = {
539                 .data = ciphertext64_aes256ctr,
540                 .len = 64
541         },
542         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
543         .auth_key = {
544                 .data = {
545                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
546                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
547                         0xDE, 0xF4, 0xDE, 0xAD
548                 },
549                 .len = 20
550         },
551         .digest = {
552                 .data = {
553                         0x3B, 0x1A, 0x9D, 0x82, 0x35, 0xD5, 0xDD, 0x64,
554                         0xCC, 0x1B, 0xA9, 0xC0, 0xEB, 0xE9, 0x42, 0x16,
555                         0xE7, 0x87, 0xA3, 0xEF
556                 },
557                 .len = 20,
558                 .truncated_len = 12
559         }
560 };
561
562 /* AES128-CTR-SHA1 test vector (12-byte IV) */
563 static const struct blockcipher_test_data aes_test_data_1_IV_12_bytes = {
564         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
565         .cipher_key = {
566                 .data = {
567                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
568                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
569                 },
570                 .len = 16
571         },
572         .iv = {
573                 .data = {
574                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
575                         0xF8, 0xF9, 0xFA, 0xFB
576                 },
577                 .len = 12
578         },
579         .plaintext = {
580                 .data = plaintext_aes128ctr,
581                 .len = 64
582         },
583         .ciphertext = {
584                 .data = ciphertext64_aes128ctr_IV_12bytes,
585                 .len = 64
586         },
587         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
588         .auth_key = {
589                 .data = {
590                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
591                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
592                         0xDE, 0xF4, 0xDE, 0xAD
593                 },
594                 .len = 20
595         },
596         .digest = {
597                 .data = {
598                         0x5C, 0x34, 0x6B, 0xE4, 0x9A, 0x7F, 0x4A, 0xC3,
599                         0x82, 0xBE, 0xA0, 0x12, 0xD1, 0xF0, 0x15, 0xFA,
600                         0xCF, 0xC8, 0x7F, 0x60
601                 },
602                 .len = 20,
603                 .truncated_len = 12
604         }
605 };
606
607 /** AES-192-CTR XCBC test vector (12-byte IV) */
608 static const struct blockcipher_test_data aes_test_data_2_IV_12_bytes = {
609         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
610         .cipher_key = {
611                 .data = {
612                         0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C,
613                         0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F,
614                         0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4
615                 },
616                 .len = 24
617         },
618         .iv = {
619                 .data = {
620                         0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
621                         0xB8, 0x7A, 0x4B, 0xED
622                 },
623                 .len = 12
624         },
625         .plaintext = {
626                 .data = plaintext_aes192ctr,
627                 .len = 64
628         },
629         .ciphertext = {
630                 .data = ciphertext64_aes192ctr_IV_12bytes,
631                 .len = 64
632         },
633         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
634         .auth_key = {
635                 .data = {
636                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
637                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
638                 },
639                 .len = 16
640         },
641         .digest = {
642                 .data = {
643                         0x0C, 0xA1, 0xA5, 0xAF, 0x3E, 0x41, 0xD2, 0xF4,
644                         0x4C, 0x4C, 0xAB, 0x13
645                 },
646                 .len = 12,
647                 .truncated_len = 12
648         }
649 };
650
651 /** AES-256-CTR SHA1 test vector (12-byte IV) */
652 static const struct blockcipher_test_data aes_test_data_3_IV_12_bytes = {
653         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
654         .cipher_key = {
655                 .data = {
656                         0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE,
657                         0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81,
658                         0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7,
659                         0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4
660                 },
661                 .len = 32
662         },
663         .iv = {
664                 .data = {
665                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
666                         0xF8, 0xF9, 0xFA, 0xFB
667                 },
668                 .len = 12
669         },
670         .plaintext = {
671                 .data = plaintext_aes256ctr,
672                 .len = 64
673         },
674         .ciphertext = {
675                 .data = ciphertext64_aes256ctr_IV_12bytes,
676                 .len = 64
677         },
678         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
679         .auth_key = {
680                 .data = {
681                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
682                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
683                         0xDE, 0xF4, 0xDE, 0xAD
684                 },
685                 .len = 20
686         },
687         .digest = {
688                 .data = {
689                         0x57, 0x9A, 0x52, 0x6E, 0x31, 0x17, 0x57, 0x49,
690                         0xE7, 0xA1, 0x88, 0x6C, 0x2E, 0x36, 0x67, 0x63,
691                         0x3F, 0x2D, 0xA3, 0xEF
692                 },
693                 .len = 20,
694                 .truncated_len = 12
695         }
696 };
697 /** AES-128-CBC SHA1 test vector */
698 static const struct blockcipher_test_data aes_test_data_4 = {
699         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
700         .cipher_key = {
701                 .data = {
702                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
703                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
704                 },
705                 .len = 16
706         },
707         .iv = {
708                 .data = {
709                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
710                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
711                 },
712                 .len = 16
713         },
714         .plaintext = {
715                 .data = plaintext_aes_common,
716                 .len = 512
717         },
718         .ciphertext = {
719                 .data = ciphertext512_aes128cbc,
720                 .len = 512
721         },
722         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
723         .auth_key = {
724                 .data = {
725                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
726                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
727                         0xDE, 0xF4, 0xDE, 0xAD
728                 },
729                 .len = 20
730         },
731         .digest = {
732                 .data = {
733                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60,
734                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
735                         0x18, 0x8C, 0x1D, 0x32
736                 },
737                 .len = 20,
738                 .truncated_len = 12
739         }
740 };
741
742 /** AES-128-CBC SHA256 test vector */
743 static const struct blockcipher_test_data aes_test_data_5 = {
744         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
745         .cipher_key = {
746                 .data = {
747                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
748                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
749                 },
750                 .len = 16
751         },
752         .iv = {
753                 .data = {
754                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
755                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
756                 },
757                 .len = 16
758         },
759         .plaintext = {
760                 .data = plaintext_aes_common,
761                 .len = 512
762         },
763         .ciphertext = {
764                 .data = ciphertext512_aes128cbc,
765                 .len = 512
766         },
767         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
768         .auth_key = {
769                 .data = {
770                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
771                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
772                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
773                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
774                 },
775                 .len = 32
776         },
777         .digest = {
778                 .data = {
779                         0xC8, 0x57, 0x57, 0x31, 0x03, 0xE0, 0x03, 0x55,
780                         0x07, 0xC8, 0x9E, 0x7F, 0x48, 0x9A, 0x61, 0x9A,
781                         0x68, 0xEE, 0x03, 0x0E, 0x71, 0x75, 0xC7, 0xF4,
782                         0x2E, 0x45, 0x26, 0x32, 0x7C, 0x12, 0x15, 0x15
783                 },
784                 .len = 32,
785                 .truncated_len = 16
786         }
787 };
788
789 /** AES-128-CBC SHA512 test vector */
790 static const struct blockcipher_test_data aes_test_data_6 = {
791         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
792         .cipher_key = {
793                 .data = {
794                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
795                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
796                 },
797                 .len = 16
798         },
799         .iv = {
800                 .data = {
801                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
802                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
803                 },
804                 .len = 16
805         },
806         .plaintext = {
807                 .data = plaintext_aes_common,
808                 .len = 512
809         },
810         .ciphertext = {
811                 .data = ciphertext512_aes128cbc,
812                 .len = 512
813         },
814         .auth_algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
815         .auth_key = {
816                 .data = {
817                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
818                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
819                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
820                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
821                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
822                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
823                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
824                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
825                 },
826                 .len = 64
827         },
828         .digest = {
829                 .data = {
830                         0x5D, 0x54, 0x66, 0xC1, 0x6E, 0xBC, 0x04, 0xB8,
831                         0x46, 0xB8, 0x08, 0x6E, 0xE0, 0xF0, 0x43, 0x48,
832                         0x37, 0x96, 0x9C, 0xC6, 0x9C, 0xC2, 0x1E, 0xE8,
833                         0xF2, 0x0C, 0x0B, 0xEF, 0x86, 0xA2, 0xE3, 0x70,
834                         0x95, 0xC8, 0xB3, 0x06, 0x47, 0xA9, 0x90, 0xE8,
835                         0xA0, 0xC6, 0x72, 0x69, 0x05, 0xC0, 0x0D, 0x0E,
836                         0x21, 0x96, 0x65, 0x93, 0x74, 0x43, 0x2A, 0x1D,
837                         0x2E, 0xBF, 0xC2, 0xC2, 0xEE, 0xCC, 0x2F, 0x0A
838                 },
839                 .len = 64,
840                 .truncated_len = 32
841         }
842 };
843
844 /** AES-128-CBC XCBC test vector */
845 static const struct blockcipher_test_data aes_test_data_7 = {
846         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
847         .cipher_key = {
848                 .data = {
849                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
850                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
851                 },
852                 .len = 16
853         },
854         .iv = {
855                 .data = {
856                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
857                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
858                 },
859                 .len = 16
860         },
861         .plaintext = {
862                 .data = plaintext_aes_common,
863                 .len = 512
864         },
865         .ciphertext = {
866                 .data = ciphertext512_aes128cbc,
867                 .len = 512
868         },
869         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
870         .auth_key = {
871                 .data = {
872                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
873                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
874                 },
875                 .len = 16
876         },
877         .digest = {
878                 .data = {
879                         0xE0, 0xAC, 0x9A, 0xC4, 0x22, 0x64, 0x35, 0x89,
880                         0x77, 0x1D, 0x8B, 0x75
881                 },
882                 .len = 12,
883                 .truncated_len = 12
884         }
885 };
886
887 /** AES-128-CBC SHA224 test vector */
888 static const struct blockcipher_test_data aes_test_data_8 = {
889         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
890         .cipher_key = {
891                 .data = {
892                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
893                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
894                 },
895                 .len = 16
896         },
897         .iv = {
898                 .data = {
899                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
900                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
901                 },
902                 .len = 16
903         },
904         .plaintext = {
905                 .data = plaintext_aes_common,
906                 .len = 512
907         },
908         .ciphertext = {
909                 .data = ciphertext512_aes128cbc,
910                 .len = 512
911         },
912         .auth_algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
913         .auth_key = {
914                 .data = {
915                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
916                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
917                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
918                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
919                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
920                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
921                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
922                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
923                 },
924                 .len = 64
925         },
926         .digest = {
927                 .data = {
928                         0xA3, 0xCA, 0xC7, 0x1D, 0xA8, 0x61, 0x30, 0x98,
929                         0x3B, 0x8F, 0x01, 0x19, 0xAE, 0x8D, 0xBD, 0x34,
930                         0x40, 0x63, 0xA8, 0x2F, 0xDF, 0x85, 0x2B, 0x7F,
931                         0x63, 0x7C, 0xDD, 0xB7
932                 },
933                 .len = 28,
934                 .truncated_len = 14
935         }
936 };
937
938 /** AES-128-CBC SHA384 test vector */
939 static const struct blockcipher_test_data aes_test_data_9 = {
940         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
941         .cipher_key = {
942                 .data = {
943                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
944                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
945                 },
946                 .len = 16
947         },
948         .iv = {
949                 .data = {
950                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
951                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
952                 },
953                 .len = 16
954         },
955         .plaintext = {
956                 .data = plaintext_aes_common,
957                 .len = 512
958         },
959         .ciphertext = {
960                 .data = ciphertext512_aes128cbc,
961                 .len = 512
962         },
963         .auth_algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
964         .auth_key = {
965                 .data = {
966                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
967                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
968                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
969                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
970                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
971                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
972                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
973                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60,
974                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
975                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
976                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
977                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
978                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
979                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
980                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
981                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
982                 },
983                 .len = 128
984         },
985         .digest = {
986                 .data = {
987                         0x23, 0x60, 0xC8, 0xB1, 0x2D, 0x6C, 0x1E, 0x72,
988                         0x25, 0xAB, 0xF9, 0xC3, 0x9A, 0xA9, 0x4F, 0x8C,
989                         0x56, 0x38, 0x65, 0x0E, 0x74, 0xD5, 0x45, 0x9D,
990                         0xA3, 0xFD, 0x7E, 0x6D, 0x9E, 0x74, 0x88, 0x9D,
991                         0xA7, 0x12, 0x9D, 0xD8, 0x81, 0x3C, 0x86, 0x2F,
992                         0x4D, 0xF9, 0x6F, 0x0A, 0xB0, 0xC9, 0xEB, 0x0B
993                 },
994                 .len = 48,
995                 .truncated_len = 24
996         }
997 };
998
999 static const uint8_t ciphertext512_aes192cbc[] = {
1000         0x45, 0xEE, 0x9A, 0xEA, 0x3C, 0x03, 0xFC, 0x4C,
1001         0x84, 0x36, 0xB0, 0xDA, 0xB0, 0xDC, 0xF3, 0x5B,
1002         0x75, 0xA7, 0xBE, 0x0E, 0xC0, 0x8D, 0x6C, 0xF8,
1003         0xC1, 0x0F, 0xD0, 0x35, 0x1D, 0x82, 0xAE, 0x7C,
1004         0x57, 0xC5, 0x7A, 0x55, 0x87, 0x1B, 0xD4, 0x03,
1005         0x0A, 0x64, 0xC9, 0xE0, 0xF4, 0xC7, 0x6F, 0x57,
1006         0x52, 0xC6, 0x73, 0xBA, 0x84, 0x0B, 0x5B, 0x89,
1007         0x21, 0xD2, 0x9B, 0x88, 0x68, 0xF5, 0xA9, 0x7F,
1008         0x3F, 0x49, 0xEB, 0xF4, 0xD4, 0x52, 0xD2, 0x64,
1009         0x80, 0xB2, 0x53, 0xDA, 0x19, 0xF6, 0x10, 0x24,
1010         0x23, 0x26, 0x7A, 0x7C, 0x07, 0x57, 0x4B, 0x0E,
1011         0x58, 0x49, 0x61, 0xD1, 0xDC, 0x9A, 0x32, 0x6B,
1012         0x0F, 0x43, 0x9E, 0x4D, 0xB4, 0x07, 0x4E, 0xB3,
1013         0x51, 0x74, 0xDE, 0x29, 0xBC, 0x98, 0xF9, 0xDF,
1014         0x78, 0x9A, 0x18, 0x9C, 0xD6, 0x7A, 0x55, 0x7C,
1015         0xE6, 0x1D, 0x5C, 0x1A, 0x99, 0xD2, 0xC3, 0x7B,
1016         0x9F, 0x96, 0x74, 0x2D, 0xE0, 0xEF, 0xD1, 0xE3,
1017         0x08, 0x9F, 0xAF, 0xE6, 0xED, 0xCA, 0xE1, 0xEA,
1018         0x23, 0x6F, 0x7C, 0x81, 0xA8, 0xC0, 0x5B, 0x8B,
1019         0x53, 0x90, 0x51, 0x2D, 0x0F, 0xF6, 0x7D, 0xA7,
1020         0x1C, 0xBD, 0x83, 0x84, 0x54, 0xA4, 0x15, 0xFB,
1021         0x3E, 0x25, 0xA7, 0x3A, 0x0A, 0x73, 0xD9, 0x88,
1022         0x6F, 0x80, 0x78, 0x95, 0x7F, 0x60, 0xAA, 0x86,
1023         0x8A, 0xFC, 0xDF, 0xC1, 0xCB, 0xDE, 0xBB, 0x25,
1024         0x52, 0x20, 0xC6, 0x79, 0xD4, 0x0F, 0x25, 0xE7,
1025         0xDB, 0xB2, 0x17, 0xA4, 0x6F, 0x3C, 0x6F, 0x91,
1026         0xF6, 0x44, 0x1E, 0xB6, 0x85, 0xBC, 0x7A, 0x14,
1027         0x10, 0x72, 0xBD, 0x16, 0x63, 0x39, 0x9E, 0x7B,
1028         0x84, 0x5B, 0x17, 0x61, 0xB1, 0x5D, 0x82, 0x0B,
1029         0x6D, 0x37, 0xD7, 0x79, 0xB8, 0x24, 0x91, 0x30,
1030         0x82, 0x91, 0x02, 0xB1, 0x18, 0x4B, 0xE0, 0xF4,
1031         0x13, 0x1B, 0xB2, 0x4C, 0xDA, 0xB8, 0x99, 0x96,
1032         0x83, 0x2F, 0xBE, 0x53, 0x8D, 0xDE, 0xFA, 0xAD,
1033         0xF6, 0x5C, 0xDB, 0xE5, 0x66, 0x26, 0x8F, 0x13,
1034         0x2B, 0x76, 0x47, 0x73, 0xDE, 0x1A, 0x74, 0xA6,
1035         0x30, 0xAF, 0x42, 0xA0, 0xE5, 0xD2, 0x8F, 0xC2,
1036         0xED, 0x3E, 0x9E, 0x29, 0x54, 0x3C, 0xDE, 0x9F,
1037         0x5D, 0x30, 0x2B, 0x63, 0xFB, 0xE3, 0xB1, 0x07,
1038         0xEE, 0x74, 0x4A, 0xAF, 0xB1, 0x20, 0x8D, 0xEC,
1039         0xE6, 0x78, 0x16, 0x8D, 0xA4, 0x6E, 0x34, 0x7D,
1040         0x47, 0xFB, 0x0B, 0xC1, 0x32, 0xD7, 0x0D, 0x6C,
1041         0x6F, 0x93, 0x9C, 0x5E, 0xEF, 0x1F, 0x9C, 0x45,
1042         0x80, 0x6B, 0x74, 0xA6, 0x81, 0xF2, 0xF6, 0xFA,
1043         0xAA, 0x9D, 0x4F, 0xCA, 0xB5, 0x90, 0x59, 0xB0,
1044         0x3B, 0xF2, 0xF0, 0x75, 0xFD, 0x8A, 0xD8, 0x97,
1045         0x65, 0x88, 0x56, 0x4C, 0x44, 0xDF, 0x73, 0xF7,
1046         0x56, 0x9C, 0x48, 0x7E, 0xB0, 0x1F, 0x1D, 0x7D,
1047         0x6A, 0x11, 0xF5, 0xC2, 0xF4, 0x17, 0xEF, 0x58,
1048         0xD8, 0x2A, 0xAF, 0x56, 0x2F, 0xCF, 0xEC, 0xA4,
1049         0x58, 0x8B, 0x60, 0xCE, 0xD4, 0x0F, 0x9C, 0x21,
1050         0xEC, 0x3E, 0x74, 0x7B, 0x81, 0x3D, 0x69, 0xC6,
1051         0x5E, 0x12, 0x83, 0xE9, 0xEF, 0x81, 0x58, 0x36,
1052         0x6A, 0x60, 0x0F, 0x54, 0x28, 0x11, 0xF9, 0x64,
1053         0x36, 0xAD, 0x79, 0xF5, 0x1C, 0x74, 0xD0, 0xC3,
1054         0x7B, 0x61, 0xE1, 0x92, 0xB0, 0x13, 0x91, 0x87,
1055         0x32, 0x1F, 0xF2, 0x5A, 0xDA, 0x25, 0x69, 0xEB,
1056         0xD7, 0x32, 0x7F, 0xF5, 0x23, 0x21, 0x54, 0x47,
1057         0x7B, 0x1B, 0x33, 0xB0, 0x3D, 0xF6, 0xE2, 0x7E,
1058         0x3E, 0xA2, 0x9E, 0xCA, 0x48, 0x0B, 0x4A, 0x29,
1059         0x81, 0xD4, 0x4E, 0xD5, 0x69, 0xFB, 0xCD, 0x37,
1060         0x8A, 0xC1, 0x5B, 0x50, 0xFF, 0xB5, 0x7D, 0x43,
1061         0x0F, 0xAE, 0xA6, 0xC2, 0xE5, 0x8F, 0x45, 0xB2,
1062         0x85, 0x99, 0x02, 0xA2, 0x9B, 0xBE, 0x90, 0x43,
1063         0x4F, 0x2F, 0x50, 0xE2, 0x77, 0x62, 0xD9, 0xCC
1064 };
1065
1066 /** AES-192-CBC test vector */
1067 static const struct blockcipher_test_data aes_test_data_10 = {
1068         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1069         .cipher_key = {
1070                 .data = {
1071                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1072                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
1073                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
1074                 },
1075                 .len = 24
1076         },
1077         .iv = {
1078                 .data = {
1079                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1080                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1081                 },
1082                 .len = 16
1083         },
1084         .plaintext = {
1085                 .data = plaintext_aes_common,
1086                 .len = 512
1087         },
1088         .ciphertext = {
1089                 .data = ciphertext512_aes192cbc,
1090                 .len = 512
1091         }
1092 };
1093
1094 static const uint8_t ciphertext512_aes256cbc[] = {
1095         0xF3, 0xDD, 0xF0, 0x0B, 0xFF, 0xA2, 0x6A, 0x04,
1096         0xBE, 0xDA, 0x52, 0xA6, 0xFE, 0x6B, 0xA6, 0xA7,
1097         0x48, 0x1D, 0x7D, 0x98, 0x65, 0xDB, 0xEF, 0x06,
1098         0x26, 0xB5, 0x8E, 0xEB, 0x05, 0x0E, 0x77, 0x98,
1099         0x17, 0x8E, 0xD0, 0xD4, 0x7B, 0x92, 0x8F, 0x5C,
1100         0xD0, 0x74, 0x5C, 0xA8, 0x4B, 0x54, 0xB6, 0x2F,
1101         0x83, 0x72, 0x2C, 0xFF, 0x72, 0xE9, 0xE4, 0x15,
1102         0x4C, 0x32, 0xAF, 0xC8, 0xC9, 0x89, 0x3C, 0x6E,
1103         0x31, 0xD5, 0xC0, 0x16, 0xC0, 0x31, 0x7D, 0x11,
1104         0xAB, 0xCB, 0xDE, 0xD2, 0xD6, 0xAA, 0x76, 0x5E,
1105         0xBA, 0xF6, 0xE2, 0x92, 0xCB, 0x86, 0x07, 0xFA,
1106         0xD4, 0x9E, 0x83, 0xED, 0xFD, 0xB8, 0x70, 0x54,
1107         0x6B, 0xBE, 0xEC, 0x72, 0xDD, 0x28, 0x5E, 0x95,
1108         0x78, 0xA5, 0x28, 0x43, 0x3D, 0x6D, 0xB1, 0xD9,
1109         0x69, 0x1F, 0xC9, 0x66, 0x0E, 0x32, 0x44, 0x08,
1110         0xD2, 0xAE, 0x2C, 0x43, 0xF2, 0xD0, 0x7D, 0x26,
1111         0x70, 0xE5, 0xA1, 0xCA, 0x37, 0xE9, 0x7D, 0xC7,
1112         0xA3, 0xFA, 0x81, 0x91, 0x64, 0xAA, 0x64, 0x91,
1113         0x9A, 0x95, 0x2D, 0xC9, 0xF9, 0xCE, 0xFE, 0x9F,
1114         0xC4, 0xD8, 0x81, 0xBE, 0x57, 0x84, 0xC5, 0x02,
1115         0xDB, 0x30, 0xC1, 0xD9, 0x0E, 0xA0, 0xA6, 0x00,
1116         0xD6, 0xF3, 0x52, 0x7E, 0x0D, 0x23, 0x6B, 0x2B,
1117         0x34, 0x99, 0x1F, 0x70, 0x27, 0x6D, 0x58, 0x84,
1118         0x93, 0x77, 0xB8, 0x3E, 0xF1, 0x71, 0x58, 0x42,
1119         0x8B, 0x2B, 0xC8, 0x6D, 0x05, 0x84, 0xFF, 0x4E,
1120         0x85, 0xEF, 0x4A, 0x9D, 0x91, 0x6A, 0xD5, 0xE1,
1121         0xAF, 0x01, 0xEB, 0x83, 0x8F, 0x23, 0x7C, 0x7F,
1122         0x12, 0x91, 0x05, 0xF0, 0x4E, 0xD9, 0x17, 0x62,
1123         0x75, 0xBB, 0xAC, 0x97, 0xEE, 0x3B, 0x4E, 0xC7,
1124         0xE5, 0x92, 0xF8, 0x9D, 0x4C, 0xF9, 0xEE, 0x55,
1125         0x18, 0xBB, 0xCC, 0xB4, 0xF2, 0x59, 0xB9, 0xFC,
1126         0x7A, 0x0F, 0x98, 0xD4, 0x8B, 0xFE, 0xF7, 0x83,
1127         0x46, 0xE2, 0x83, 0x33, 0x3E, 0x95, 0x8D, 0x17,
1128         0x1E, 0x85, 0xF8, 0x8C, 0x51, 0xB0, 0x6C, 0xB5,
1129         0x5E, 0x95, 0xBA, 0x4B, 0x69, 0x1B, 0x48, 0x69,
1130         0x0B, 0x8F, 0xA5, 0x18, 0x13, 0xB9, 0x77, 0xD1,
1131         0x80, 0x32, 0x32, 0x6D, 0x53, 0xA1, 0x95, 0x40,
1132         0x96, 0x8A, 0xCC, 0xA3, 0x69, 0xF8, 0x9F, 0xB5,
1133         0x8E, 0xD2, 0x68, 0x07, 0x4F, 0xA7, 0xEC, 0xF8,
1134         0x20, 0x21, 0x58, 0xF8, 0xD8, 0x9E, 0x5F, 0x40,
1135         0xBA, 0xB9, 0x76, 0x57, 0x3B, 0x17, 0xAD, 0xEE,
1136         0xCB, 0xDF, 0x07, 0xC1, 0xDF, 0x66, 0xA8, 0x0D,
1137         0xC2, 0xCE, 0x8F, 0x79, 0xC3, 0x32, 0xE0, 0x8C,
1138         0xFE, 0x5A, 0xF3, 0x55, 0x27, 0x73, 0x6F, 0xA1,
1139         0x54, 0xC6, 0xFC, 0x28, 0x9D, 0xBE, 0x97, 0xB9,
1140         0x54, 0x97, 0x72, 0x3A, 0x61, 0xAF, 0x6F, 0xDE,
1141         0xF8, 0x0E, 0xBB, 0x6B, 0x96, 0x84, 0xDD, 0x9B,
1142         0x62, 0xBA, 0x47, 0xB5, 0xC9, 0x3B, 0x4E, 0x8C,
1143         0x78, 0x2A, 0xCC, 0x0A, 0x69, 0x54, 0x25, 0x5E,
1144         0x8B, 0xAC, 0x56, 0xD9, 0xFE, 0x48, 0xBA, 0xCE,
1145         0xA9, 0xCE, 0xA6, 0x1D, 0xBF, 0x3E, 0x3C, 0x66,
1146         0x40, 0x71, 0x79, 0xAD, 0x5B, 0x26, 0xAD, 0xBE,
1147         0x58, 0x13, 0x64, 0x60, 0x7C, 0x05, 0xFC, 0xE3,
1148         0x51, 0x7A, 0xF2, 0xCC, 0x54, 0x16, 0x2C, 0xA4,
1149         0xCE, 0x5F, 0x59, 0x12, 0x77, 0xEB, 0xD9, 0x23,
1150         0xE3, 0x86, 0xFB, 0xD7, 0x48, 0x76, 0x9D, 0xE3,
1151         0x89, 0x87, 0x39, 0xFA, 0x7B, 0x21, 0x0B, 0x76,
1152         0xB2, 0xED, 0x1C, 0x27, 0x4B, 0xD5, 0x27, 0x05,
1153         0x8C, 0x7D, 0x58, 0x6C, 0xCA, 0xA5, 0x54, 0x9A,
1154         0x0F, 0xCB, 0xE9, 0x88, 0x31, 0xAD, 0x49, 0xEE,
1155         0x38, 0xFB, 0xC9, 0xFB, 0xB4, 0x7A, 0x00, 0x58,
1156         0x20, 0x32, 0xD3, 0x53, 0x5A, 0xDD, 0x74, 0x95,
1157         0x60, 0x59, 0x09, 0xAE, 0x7E, 0xEC, 0x74, 0xA3,
1158         0xB7, 0x1C, 0x6D, 0xF2, 0xAE, 0x79, 0xA4, 0x7C
1159 };
1160
1161 /** AES-256-CBC test vector */
1162 static const struct blockcipher_test_data aes_test_data_11 = {
1163         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1164         .cipher_key = {
1165                 .data = {
1166                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1167                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
1168                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0,
1169                         0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D
1170                 },
1171                 .len = 32
1172         },
1173         .iv = {
1174                 .data = {
1175                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1176                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1177                 },
1178                 .len = 16
1179         },
1180         .plaintext = {
1181                 .data = plaintext_aes_common,
1182                 .len = 512
1183         },
1184         .ciphertext = {
1185                 .data = ciphertext512_aes256cbc,
1186                 .len = 512
1187         }
1188 };
1189
1190 /** AES-128-CBC SHA256 HMAC test vector (160 bytes) */
1191 static const struct blockcipher_test_data aes_test_data_12 = {
1192         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1193         .cipher_key = {
1194                 .data = {
1195                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1196                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1197                 },
1198                 .len = 16
1199         },
1200         .iv = {
1201                 .data = {
1202                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1203                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1204                 },
1205                 .len = 16
1206         },
1207         .plaintext = {
1208                 .data = plaintext_aes_common,
1209                 .len = 160
1210         },
1211         .ciphertext = {
1212                 .data = ciphertext512_aes128cbc,
1213                 .len = 160
1214         },
1215         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
1216         .auth_key = {
1217                 .data = {
1218                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
1219                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
1220                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
1221                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
1222                 },
1223                 .len = 32
1224         },
1225         .digest = {
1226                 .data = {
1227                         0x92, 0xEC, 0x65, 0x9A, 0x52, 0xCC, 0x50, 0xA5,
1228                         0xEE, 0x0E, 0xDF, 0x1E, 0xA4, 0xC9, 0xC1, 0x04,
1229                         0xD5, 0xDC, 0x78, 0x90, 0xF4, 0xE3, 0x35, 0x62,
1230                         0xAD, 0x95, 0x45, 0x28, 0x5C, 0xF8, 0x8C, 0x0B
1231                 },
1232                 .len = 32,
1233                 .truncated_len = 16
1234         }
1235 };
1236
1237 /** AES-128-CBC SHA1 HMAC test vector (160 bytes) */
1238 static const struct blockcipher_test_data aes_test_data_13 = {
1239         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1240         .cipher_key = {
1241                 .data = {
1242                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1243                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1244                 },
1245                 .len = 16
1246         },
1247         .iv = {
1248                 .data = {
1249                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1250                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1251                 },
1252                 .len = 16
1253         },
1254         .plaintext = {
1255                 .data = plaintext_aes_common,
1256                 .len = 160
1257         },
1258         .ciphertext = {
1259                 .data = ciphertext512_aes128cbc,
1260                 .len = 160
1261         },
1262         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1263         .auth_key = {
1264                 .data = {
1265                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1266                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1267                         0xDE, 0xF4, 0xDE, 0xAD
1268                 },
1269                 .len = 20
1270         },
1271         .digest = {
1272                 .data = {
1273                         0x4F, 0x16, 0xEA, 0xF7, 0x4A, 0x88, 0xD3, 0xE0,
1274                         0x0E, 0x12, 0x8B, 0xE7, 0x05, 0xD0, 0x86, 0x48,
1275                         0x22, 0x43, 0x30, 0xA7
1276                 },
1277                 .len = 20,
1278                 .truncated_len = 12
1279         }
1280 };
1281
1282 /** XTS-AES-128 test vector (2 keys * 128 bit) */
1283 static const uint8_t plaintext_aes128xts_16bytes[] = {
1284         0xEB, 0xAB, 0xCE, 0x95, 0xB1, 0x4D, 0x3C, 0x8D,
1285         0x6F, 0xB3, 0x50, 0x39, 0x07, 0x90, 0x31, 0x1C
1286 };
1287 static const uint8_t ciphertext_aes128xts_16bytes[] = {
1288         0x77, 0x8A, 0xE8, 0xB4, 0x3C, 0xB9, 0x8D, 0x5A,
1289         0x82, 0x50, 0x81, 0xD5, 0xBE, 0x47, 0x1C, 0x63
1290 };
1291 static const struct
1292 blockcipher_test_data aes_test_data_xts_key_32_pt_16 = {
1293         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
1294         .cipher_key = {
1295                 .data = {
1296                         0xA1, 0xB9, 0x0C, 0xBA, 0x3F, 0x06, 0xAC, 0x35,
1297                         0x3B, 0x2C, 0x34, 0x38, 0x76, 0x08, 0x17, 0x62,
1298                         0x09, 0x09, 0x23, 0x02, 0x6E, 0x91, 0x77, 0x18,
1299                         0x15, 0xF2, 0x9D, 0xAB, 0x01, 0x93, 0x2F, 0x2F
1300                 },
1301                 .len = 32
1302         },
1303         .iv = {
1304                 .data = {
1305                         0x4F, 0xAE, 0xF7, 0x11, 0x7C, 0xDA, 0x59, 0xC6,
1306                         0x6E, 0x4B, 0x92, 0x01, 0x3E, 0x76, 0x8A, 0xD5
1307                 },
1308                 .len = 16
1309         },
1310         .plaintext = {
1311                 .data = plaintext_aes128xts_16bytes,
1312                 .len = 16
1313         },
1314         .ciphertext = {
1315                 .data = ciphertext_aes128xts_16bytes,
1316                 .len = 16
1317         }
1318 };
1319 static const uint8_t plaintext_aes128xts_32bytes[] = {
1320         0xB0, 0x4D, 0x84, 0xDA, 0x85, 0x6B, 0x9A, 0x59,
1321         0xCE, 0x2D, 0x62, 0x67, 0x46, 0xF6, 0x89, 0xA8,
1322         0x05, 0x1D, 0xAC, 0xD6, 0xBC, 0xE3, 0xB9, 0x90,
1323         0xAA, 0x90, 0x1E, 0x40, 0x30, 0x64, 0x88, 0x79
1324 };
1325 static const uint8_t ciphertext_aes128xts_32bytes[] = {
1326         0xF9, 0x41, 0x03, 0x9E, 0xBA, 0xB8, 0xCA, 0xC3,
1327         0x9D, 0x59, 0x24, 0x7C, 0xBB, 0xCB, 0x4D, 0x81,
1328         0x6C, 0x72, 0x6D, 0xAE, 0xD1, 0x15, 0x77, 0x69,
1329         0x2C, 0x55, 0xE4, 0xAC, 0x6D, 0x3E, 0x68, 0x20
1330 };
1331 static const struct
1332 blockcipher_test_data aes_test_data_xts_key_32_pt_32 = {
1333         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
1334         .cipher_key = {
1335                 .data = {
1336                         0x78, 0x3A, 0x83, 0xEC, 0x52, 0xA2, 0x74, 0x05,
1337                         0xDF, 0xF9, 0xDE, 0x4C, 0x57, 0xF9, 0xC9, 0x79,
1338                         0xB3, 0x60, 0xB6, 0xA5, 0xDF, 0x88, 0xD6, 0x7E,
1339                         0xC1, 0xA0, 0x52, 0xE6, 0xF5, 0x82, 0xA7, 0x17
1340                 },
1341                 .len = 32
1342         },
1343         .iv = {
1344                 .data = {
1345                         0x88, 0x6E, 0x97, 0x5B, 0x29, 0xBD, 0xF6, 0xF0,
1346                         0xC0, 0x1B, 0xB4, 0x7F, 0x61, 0xF6, 0xF0, 0xF5
1347                 },
1348                 .len = 16
1349         },
1350         .plaintext = {
1351                 .data = plaintext_aes128xts_32bytes,
1352                 .len = 32
1353         },
1354         .ciphertext = {
1355                 .data = ciphertext_aes128xts_32bytes,
1356                 .len = 32
1357         }
1358 };
1359
1360 /** XTS-AES-256 test vector (2 keys * 256 bit) */
1361 /* Encryption */
1362 static const uint8_t plaintext_aes256xts_32bytes[] = {
1363         0x2E, 0xED, 0xEA, 0x52, 0xCD, 0x82, 0x15, 0xE1,
1364         0xAC, 0xC6, 0x47, 0xE8, 0x10, 0xBB, 0xC3, 0x64,
1365         0x2E, 0x87, 0x28, 0x7F, 0x8D, 0x2E, 0x57, 0xE3,
1366         0x6C, 0x0A, 0x24, 0xFB, 0xC1, 0x2A, 0x20, 0x2E
1367 };
1368 static const uint8_t ciphertext_aes256xts_32bytes[] = {
1369         0xCB, 0xAA, 0xD0, 0xE2, 0xF6, 0xCE, 0xA3, 0xF5,
1370         0x0B, 0x37, 0xF9, 0x34, 0xD4, 0x6A, 0x9B, 0x13,
1371         0x0B, 0x9D, 0x54, 0xF0, 0x7E, 0x34, 0xF3, 0x6A,
1372         0xF7, 0x93, 0xE8, 0x6F, 0x73, 0xC6, 0xD7, 0xDB
1373 };
1374 static const struct
1375 blockcipher_test_data aes_test_data_xts_key_64_pt_32 = {
1376         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
1377         .cipher_key = {
1378                 .data = {
1379                         0x1E, 0xA6, 0x61, 0xC5, 0x8D, 0x94, 0x3A, 0x0E,
1380                         0x48, 0x01, 0xE4, 0x2F, 0x4B, 0x09, 0x47, 0x14,
1381                         0x9E, 0x7F, 0x9F, 0x8E, 0x3E, 0x68, 0xD0, 0xC7,
1382                         0x50, 0x52, 0x10, 0xBD, 0x31, 0x1A, 0x0E, 0x7C,
1383                         0xD6, 0xE1, 0x3F, 0xFD, 0xF2, 0x41, 0x8D, 0x8D,
1384                         0x19, 0x11, 0xC0, 0x04, 0xCD, 0xA5, 0x8D, 0xA3,
1385                         0xD6, 0x19, 0xB7, 0xE2, 0xB9, 0x14, 0x1E, 0x58,
1386                         0x31, 0x8E, 0xEA, 0x39, 0x2C, 0xF4, 0x1B, 0x08
1387                 },
1388                 .len = 64
1389         },
1390         .iv = {
1391                 .data = {
1392                         0xAD, 0xF8, 0xD9, 0x26, 0x27, 0x46, 0x4A, 0xD2,
1393                         0xF0, 0x42, 0x8E, 0x84, 0xA9, 0xF8, 0x75, 0x64
1394                 },
1395                 .len = 16
1396         },
1397         .plaintext = {
1398                 .data = plaintext_aes256xts_32bytes,
1399                 .len = 32
1400         },
1401         .ciphertext = {
1402                 .data = ciphertext_aes256xts_32bytes,
1403                 .len = 32
1404         }
1405 };
1406 static const uint8_t plaintext_aes256xts_48bytes[] = {
1407         0xBB, 0xB2, 0x34, 0xDB, 0x01, 0xBE, 0x79, 0xD3,
1408         0xDC, 0x7D, 0xCF, 0x49, 0xBC, 0x53, 0xB8, 0xEF,
1409         0xC6, 0x2F, 0xE7, 0x17, 0x94, 0x39, 0x06, 0x1D,
1410         0x73, 0xA6, 0xB2, 0x0E, 0xDB, 0x9B, 0x7D, 0xA0,
1411         0x45, 0x0B, 0x19, 0xF0, 0x20, 0x82, 0x02, 0x09,
1412         0xAF, 0xE0, 0x81, 0x12, 0xAE, 0x4A, 0xFD, 0xD3
1413 };
1414 static const uint8_t ciphertext_aes256xts_48bytes[] = {
1415         0xCB, 0xF6, 0x88, 0x48, 0xC4, 0x20, 0x49, 0xEF,
1416         0xB1, 0x46, 0xE2, 0xD1, 0xE4, 0x11, 0x5F, 0x62,
1417         0xE4, 0xFA, 0xA4, 0xEF, 0xFF, 0x19, 0x8F, 0x1A,
1418         0x0A, 0xA0, 0xC9, 0x8B, 0xA0, 0x2C, 0xC4, 0x4D,
1419         0xA3, 0x76, 0xD7, 0x62, 0xD6, 0x15, 0x1F, 0x23,
1420         0x45, 0x87, 0xBF, 0x12, 0x8B, 0x6A, 0x7F, 0xFA
1421 };
1422 static const struct
1423 blockcipher_test_data aes_test_data_xts_key_64_pt_48 = {
1424         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
1425         .cipher_key = {
1426                 .data = {
1427                         0x7F, 0xB0, 0x92, 0x2F, 0xCE, 0x09, 0xED, 0xDD,
1428                         0x36, 0x65, 0xA1, 0x1F, 0x52, 0x35, 0xD5, 0x1E,
1429                         0xF7, 0x72, 0x06, 0xA7, 0xDE, 0x45, 0x47, 0x75,
1430                         0xB6, 0x9D, 0xCC, 0x54, 0x59, 0xAC, 0xDB, 0x24,
1431                         0xCC, 0xF0, 0x5C, 0x41, 0x5A, 0xF5, 0xAB, 0x8A,
1432                         0x06, 0x62, 0x3D, 0x19, 0x8D, 0x5B, 0x91, 0x85,
1433                         0x95, 0xA9, 0xDC, 0xAA, 0xF5, 0x39, 0x2E, 0xE7,
1434                         0x17, 0xC1, 0x04, 0x7F, 0x2F, 0x08, 0xF6, 0x2B
1435                 },
1436                 .len = 64
1437         },
1438         .iv = {
1439                 .data = {
1440                         0x8E, 0xA3, 0x63, 0x8B, 0x9D, 0x40, 0x62, 0xF1,
1441                         0x69, 0x19, 0x6F, 0xF4, 0x55, 0x5A, 0xD0, 0xAF
1442                 },
1443                 .len = 16
1444         },
1445         .plaintext = {
1446                 .data = plaintext_aes256xts_48bytes,
1447                 .len = 48
1448         },
1449         .ciphertext = {
1450                 .data = ciphertext_aes256xts_48bytes,
1451                 .len = 48
1452         }
1453 };
1454
1455 /* AES-DOCSIS-BPI test vectors */
1456
1457 /* Multiple of AES block size */
1458 static const struct blockcipher_test_data aes_test_data_docsis_1 = {
1459         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
1460         .cipher_key = {
1461                 .data = {
1462                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1463                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1464                 },
1465                 .len = 16
1466         },
1467         .iv = {
1468                 .data = {
1469                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1470                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1471                 },
1472                 .len = 16
1473         },
1474         .plaintext = {
1475                 .data = plaintext_aes_common,
1476                 .len = 512
1477         },
1478         .ciphertext = {
1479                 .data = ciphertext512_aes128cbc,
1480                 .len = 512
1481         }
1482 };
1483
1484 /* Less than AES block size */
1485 static const struct blockcipher_test_data aes_test_data_docsis_2 = {
1486         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
1487         .cipher_key = {
1488                 .data = {
1489                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
1490                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
1491                 },
1492                 .len = 16
1493         },
1494         .iv = {
1495                 .data = {
1496                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
1497                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
1498                 },
1499                 .len = 16
1500         },
1501         .plaintext = {
1502                 .data = plaintext_aes_docsis_bpi_cfb,
1503                 .len = 7
1504         },
1505         .ciphertext = {
1506                 .data = ciphertext_aes_docsis_bpi_cfb,
1507                 .len = 7
1508         }
1509 };
1510
1511 /* Not multiple of AES block size */
1512 static const struct blockcipher_test_data aes_test_data_docsis_3 = {
1513         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
1514         .cipher_key = {
1515                 .data = {
1516                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
1517                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
1518                 },
1519                 .len = 16
1520         },
1521         .iv = {
1522                 .data = {
1523                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
1524                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
1525                 },
1526                 .len = 16
1527         },
1528         .plaintext = {
1529                 .data = plaintext_aes_docsis_bpi_cbc_cfb,
1530                 .len = 19
1531         },
1532         .ciphertext = {
1533                 .data = ciphertext_aes_docsis_bpi_cbc_cfb,
1534                 .len = 19
1535         }
1536 };
1537
1538 static const uint8_t
1539 cipher_aescbc_offset_16[] = {
1540         0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C,
1541         0x6F, 0x75, 0x73, 0x79, 0x20, 0x65, 0x61, 0x72,
1542         0x68, 0x2A, 0x6A, 0x82, 0xE0, 0x73, 0xC7, 0x51,
1543         0x81, 0xF4, 0x47, 0x27, 0x1A, 0xEF, 0x76, 0x15,
1544         0x1C, 0xE1, 0x38, 0x5F, 0xE1, 0x81, 0x77, 0xC7,
1545         0x8B, 0xF0, 0x69, 0xC3, 0x3C, 0x45, 0x1C, 0x0A,
1546         0xA3, 0x93, 0xBF, 0x60, 0x57, 0x88, 0xD2, 0xFF,
1547         0xE1, 0x8F, 0xC0, 0x64, 0x2C, 0x42, 0xC5, 0x22,
1548         0xE3, 0x5F, 0x71, 0x1F, 0xF7, 0x62, 0xA2, 0x7E,
1549         0x0D, 0x42, 0xD9, 0xE7, 0xF3, 0x10, 0xB0, 0xEE,
1550 };
1551
1552 /** AES-128-CBC SHA1 OOP test vector for swapping src/dst */
1553 static const struct blockcipher_test_data aes_test_data_14 = {
1554         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1555         .cipher_key = {
1556                 .data = {
1557                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1558                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1559                 },
1560                 .len = 16
1561         },
1562         .iv = {
1563                 .data = {
1564                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1565                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1566                 },
1567                 .len = 16
1568         },
1569         .plaintext = {
1570                 .data = plaintext_aes_common,
1571                 .len = 80
1572         },
1573         .cipher_offset = 16,
1574         .auth_offset = 0,
1575         .ciphertext = {
1576                 .data = cipher_aescbc_offset_16,
1577                 .len = 80
1578         },
1579         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1580         .auth_key = {
1581                 .data = {
1582                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1583                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1584                         0xDE, 0xF4, 0xDE, 0xAD
1585                 },
1586                 .len = 20
1587         },
1588         .digest = {
1589                 .data = {
1590                         0xCC, 0x15, 0x83, 0xF7, 0x23, 0x87, 0x96, 0xA7,
1591                         0x29, 0x34, 0x32, 0xE4, 0x4C, 0x06, 0xE8, 0xEB,
1592                         0x70, 0x72, 0x4B, 0xAD
1593                 },
1594                 .len = 20,
1595                 .truncated_len = 12
1596         }
1597 };
1598
1599 static const struct blockcipher_test_case aes_chain_test_cases[] = {
1600         {
1601                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1602                         "Verify OOP Offset",
1603                 .test_data = &aes_test_data_14,
1604                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1605                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1606                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1607                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1608                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1609                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1610                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX
1611         },
1612                 {
1613                 .test_descr = "AES-128-CTR HMAC-SHA1 Encryption Digest",
1614                 .test_data = &aes_test_data_1,
1615                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1616                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1617                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1618                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1619                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1620                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1621                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1622                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1623                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1624                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
1625         },
1626         {
1627                 .test_descr = "AES-128-CTR HMAC-SHA1 Decryption Digest "
1628                         "Verify",
1629                 .test_data = &aes_test_data_1,
1630                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1631                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1632                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1633                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1634                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1635                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1636                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1637                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1638                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1639                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
1640         },
1641         {
1642                 .test_descr = "AES-192-CTR XCBC Encryption Digest",
1643                 .test_data = &aes_test_data_2,
1644                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1645                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1646                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1647                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1648         },
1649         {
1650                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify",
1651                 .test_data = &aes_test_data_2,
1652                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1653                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1654                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1655                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1656         },
1657         {
1658                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify "
1659                                 "Scatter Gather",
1660                 .test_data = &aes_test_data_2,
1661                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1662                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1663                         BLOCKCIPHER_TEST_FEATURE_OOP,
1664                 .pmd_mask =
1665                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1666                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1667         },
1668         {
1669                 .test_descr = "AES-256-CTR HMAC-SHA1 Encryption Digest",
1670                 .test_data = &aes_test_data_3,
1671                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1672                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1673                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1674                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1675                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1676                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1677                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1678                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1679                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1680                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
1681         },
1682         {
1683                 .test_descr = "AES-256-CTR HMAC-SHA1 Decryption Digest "
1684                         "Verify",
1685                 .test_data = &aes_test_data_3,
1686                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1687                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1688                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1689                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1690                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1691                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1692                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1693                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1694                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1695                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
1696         },
1697         {
1698                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest",
1699                 .test_data = &aes_test_data_4,
1700                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1701                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1702                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1703                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1704                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1705                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1706                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1707                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1708                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1709                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1710                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1711                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1712                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1713                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1714         },
1715         {
1716                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1717                         "(short buffers)",
1718                 .test_data = &aes_test_data_13,
1719                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1720                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1721                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1722                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1723                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1724                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1725                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1726                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1727         },
1728         {
1729                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1730                                 "Scatter Gather",
1731                 .test_data = &aes_test_data_4,
1732                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1733                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1734                         BLOCKCIPHER_TEST_FEATURE_OOP,
1735                 .pmd_mask =
1736                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1737                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1738                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1739                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1740                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1741                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1742                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1743                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1744                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1745         },
1746         {
1747                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1748                         "Verify",
1749                 .test_data = &aes_test_data_4,
1750                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1751                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1752                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1753                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1754                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1755                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1756                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1757                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1758                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1759                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1760                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1761                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1762                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1763                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1764         },
1765         {
1766                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1767                         "Verify Scatter Gather",
1768                 .test_data = &aes_test_data_4,
1769                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1770                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
1771                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1772                             BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1773                             BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1774                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1775                             BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1776                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1777         },
1778         {
1779                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1780                         "Verify (short buffers)",
1781                 .test_data = &aes_test_data_13,
1782                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1783                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1784                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1785                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1786                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1787                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1788                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1789                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1790         },
1791         {
1792                 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest",
1793                 .test_data = &aes_test_data_5,
1794                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1795                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1796                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1797                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1798                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1799                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1800                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1801                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1802                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1803                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1804                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1805                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1806                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1807                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1808         },
1809         {
1810                 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest "
1811                         "(short buffers)",
1812                 .test_data = &aes_test_data_12,
1813                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1814                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1815                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1816                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1817                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1818                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1819                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1820                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1821         },
1822         {
1823                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1824                         "Verify",
1825                 .test_data = &aes_test_data_5,
1826                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1827                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1828                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1829                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1830                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1831                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1832                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1833                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1834                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1835                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1836                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1837                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1838                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1839         },
1840         {
1841                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1842                         "Verify (short buffers)",
1843                 .test_data = &aes_test_data_12,
1844                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1845                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1846                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1847                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1848                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1849                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1850                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1851                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1852         },
1853         {
1854                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest",
1855                 .test_data = &aes_test_data_6,
1856                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1857                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1858                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1859                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1860                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1861                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1862                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1863                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1864                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1865                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1866                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1867                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1868         },
1869         {
1870                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1871                         "Sessionless",
1872                 .test_data = &aes_test_data_6,
1873                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1874                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1875                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1876                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1877                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1878                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1879                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1880         },
1881         {
1882                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1883                                 "Scatter Gather Sessionless",
1884                 .test_data = &aes_test_data_6,
1885                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1886                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
1887                         BLOCKCIPHER_TEST_FEATURE_SG |
1888                         BLOCKCIPHER_TEST_FEATURE_OOP,
1889                 .pmd_mask =
1890                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1891                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1892                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1893         },
1894         {
1895                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1896                         "Verify",
1897                 .test_data = &aes_test_data_6,
1898                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1899                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1900                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1901                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1902                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1903                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1904                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1905                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1906                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1907                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1908                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1909                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1910         },
1911         {
1912                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1913                         "Verify Scatter Gather",
1914                 .test_data = &aes_test_data_6,
1915                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1916                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1917                         BLOCKCIPHER_TEST_FEATURE_OOP,
1918                 .pmd_mask =
1919                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1920                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1921                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1922                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1923                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1924                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1925                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1926         },
1927         {
1928                 .test_descr = "AES-128-CBC XCBC Encryption Digest",
1929                 .test_data = &aes_test_data_7,
1930                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1931                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1932                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1933                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1934         },
1935         {
1936                 .test_descr = "AES-128-CBC XCBC Decryption Digest Verify",
1937                 .test_data = &aes_test_data_7,
1938                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1939                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1940                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1941                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1942         },
1943         {
1944                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1945                         "OOP",
1946                 .test_data = &aes_test_data_4,
1947                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1948                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1949                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1950                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1951                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1952                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1953                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1954                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1955                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1956                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1957                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1958                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1959         },
1960         {
1961                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1962                         "OOP Offset",
1963                 .test_data = &aes_test_data_14,
1964                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1965                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1966                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1967                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1968                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1969                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1970                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX
1971         },
1972         {
1973                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1974                         "Verify OOP",
1975                 .test_data = &aes_test_data_4,
1976                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1977                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1978                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1979                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1980                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1981                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1982                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1983                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1984                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1985                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1986                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
1987                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
1988         },
1989         {
1990                 .test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
1991                 .test_data = &aes_test_data_8,
1992                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1993                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1994                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1995                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1996                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1997                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1998                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1999                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2000                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2001                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2002                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
2003                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2004         },
2005         {
2006                 .test_descr = "AES-128-CBC HMAC-SHA224 Decryption Digest "
2007                         "Verify",
2008                 .test_data = &aes_test_data_8,
2009                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2010                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2011                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2012                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2013                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2014                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2015                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2016                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2017                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2018                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2019                         BLOCKCIPHER_TEST_TARGET_PMD_NITROX |
2020                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2021         },
2022         {
2023                 .test_descr = "AES-128-CBC HMAC-SHA384 Encryption Digest",
2024                 .test_data = &aes_test_data_9,
2025                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2026                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2027                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2028                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2029                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2030                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2031                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2032                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2033                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2034                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
2035         },
2036         {
2037                 .test_descr = "AES-128-CBC HMAC-SHA384 Decryption Digest "
2038                         "Verify",
2039                 .test_data = &aes_test_data_9,
2040                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2041                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2042                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2043                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2044                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2045                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2046                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2047                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2048                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2049                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
2050         },
2051         {
2052                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
2053                                 "Sessionless",
2054                 .test_data = &aes_test_data_4,
2055                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2056                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
2057                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
2058                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2059                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2060                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2061                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2062         },
2063         {
2064                 .test_descr =
2065                                 "AES-128-CBC HMAC-SHA1 Decryption Digest "
2066                                 "Verify Sessionless",
2067                 .test_data = &aes_test_data_4,
2068                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2069                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
2070                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
2071                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2072                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2073                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2074                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2075         },
2076         {
2077                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x8byte",
2078                 .test_data = &null_test_data_chain_x8_multiple,
2079                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2080                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2081                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2082         },
2083         {
2084                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x8byte",
2085                 .test_data = &null_test_data_chain_x8_multiple,
2086                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2087                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2088                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2089         },
2090         {
2091                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x8byte - OOP",
2092                 .test_data = &null_test_data_chain_x8_multiple,
2093                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2094                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2095                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2096         },
2097         {
2098                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x8byte - OOP",
2099                 .test_data = &null_test_data_chain_x8_multiple,
2100                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2101                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2102                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2103         },
2104         {
2105                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x4byte",
2106                 .test_data = &null_test_data_chain_x4_multiple,
2107                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2108                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2109                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2110         },
2111         {
2112                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x4byte",
2113                 .test_data = &null_test_data_chain_x4_multiple,
2114                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2115                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2116                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2117         },
2118         {
2119                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x4byte - OOP",
2120                 .test_data = &null_test_data_chain_x4_multiple,
2121                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2122                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2123                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2124         },
2125         {
2126                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x4byte - OOP",
2127                 .test_data = &null_test_data_chain_x4_multiple,
2128                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2129                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2130                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2131         },
2132         {
2133                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x1byte",
2134                 .test_data = &null_test_data_chain_x1_multiple,
2135                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2136                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2137                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2138         },
2139         {
2140                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x1byte",
2141                 .test_data = &null_test_data_chain_x1_multiple,
2142                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2143                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2144                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2145         },
2146         {
2147                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x1byte - OOP",
2148                 .test_data = &null_test_data_chain_x1_multiple,
2149                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2150                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2151                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2152         },
2153         {
2154                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x1byte - OOP",
2155                 .test_data = &null_test_data_chain_x1_multiple,
2156                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2157                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2158                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2159         },
2160 };
2161
2162 static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
2163         {
2164                 .test_descr = "AES-128-CBC Encryption",
2165                 .test_data = &aes_test_data_4,
2166                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2167                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2168                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2169                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2170                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2171                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2172                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2173                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2174                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2175                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2176                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
2177                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2178                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2179         },
2180         {
2181                 .test_descr = "AES-128-CBC Decryption",
2182                 .test_data = &aes_test_data_4,
2183                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2184                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2185                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2186                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2187                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2188                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2189                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2190                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2191                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2192                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2193                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
2194                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2195                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2196         },
2197         {
2198                 .test_descr = "AES-192-CBC Encryption",
2199                 .test_data = &aes_test_data_10,
2200                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2201                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2202                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2203                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2204                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2205                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2206                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2207                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2208                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2209                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
2210                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2211                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2212         },
2213         {
2214                 .test_descr = "AES-192-CBC Encryption Scater gather",
2215                 .test_data = &aes_test_data_10,
2216                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2217                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
2218                         BLOCKCIPHER_TEST_FEATURE_OOP,
2219                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2220                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2221                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2222                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2223                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2224                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2225         },
2226         {
2227                 .test_descr = "AES-192-CBC Decryption",
2228                 .test_data = &aes_test_data_10,
2229                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2230                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2231                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2232                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2233                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2234                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2235                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2236                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2237                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2238                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
2239                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2240                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2241         },
2242         {
2243                 .test_descr = "AES-192-CBC Decryption Scatter Gather",
2244                 .test_data = &aes_test_data_10,
2245                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2246                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
2247                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2248                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2249                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2250                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2251                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2252         },
2253         {
2254                 .test_descr = "AES-256-CBC Encryption",
2255                 .test_data = &aes_test_data_11,
2256                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2257                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2258                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2259                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2260                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2261                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2262                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2263                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2264                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2265                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2266                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
2267                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2268                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2269         },
2270         {
2271                 .test_descr = "AES-256-CBC Decryption",
2272                 .test_data = &aes_test_data_11,
2273                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2274                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2275                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2276                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2277                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2278                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2279                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2280                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2281                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2282                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2283                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
2284                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2285                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2286         },
2287         {
2288                 .test_descr = "AES-256-CBC OOP Encryption",
2289                 .test_data = &aes_test_data_11,
2290                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2291                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2292                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2293                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2294                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2295                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2296                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2297                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2298                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
2299                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2300         },
2301         {
2302                 .test_descr = "AES-256-CBC OOP Decryption",
2303                 .test_data = &aes_test_data_11,
2304                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2305                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2306                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2307                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2308                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2309                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2310                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2311                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2312                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
2313                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2314         },
2315         {
2316                 .test_descr = "AES-128-CTR Encryption",
2317                 .test_data = &aes_test_data_1,
2318                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2319                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2320                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2321                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2322                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2323                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2324                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2325                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2326                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2327                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2328                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2329                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2330         },
2331         {
2332                 .test_descr = "AES-128-CTR Decryption",
2333                 .test_data = &aes_test_data_1,
2334                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2335                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2336                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2337                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2338                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2339                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2340                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2341                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2342                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2343                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2344                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2345                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2346         },
2347         {
2348                 .test_descr = "AES-192-CTR Encryption",
2349                 .test_data = &aes_test_data_2,
2350                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2351                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2352                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2353                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2354                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2355                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2356                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2357                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2358                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2359                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2360                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2361         },
2362         {
2363                 .test_descr = "AES-192-CTR Decryption",
2364                 .test_data = &aes_test_data_2,
2365                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2366                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2367                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2368                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2369                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2370                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2371                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2372                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2373                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2374                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2375                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2376         },
2377         {
2378                 .test_descr = "AES-256-CTR Encryption",
2379                 .test_data = &aes_test_data_3,
2380                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2381                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2382                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2383                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2384                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2385                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2386                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2387                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2388                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2389                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2390                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2391                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2392         },
2393         {
2394                 .test_descr = "AES-256-CTR Decryption",
2395                 .test_data = &aes_test_data_3,
2396                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2397                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2398                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2399                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2400                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2401                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2402                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2403                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2404                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2405                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2406                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2407                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
2408         },
2409         {
2410                 .test_descr = "AES-128-CTR Encryption (12-byte IV)",
2411                 .test_data = &aes_test_data_1_IV_12_bytes,
2412                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2413                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2414                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2415                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2 |
2416                                 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2417                                 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
2418         },
2419         {
2420                 .test_descr = "AES-192-CTR Encryption (12-byte IV)",
2421                 .test_data = &aes_test_data_2_IV_12_bytes,
2422                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2423                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2424                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2425                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2 |
2426                                 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2427                                 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
2428         },
2429         {
2430                 .test_descr = "AES-256-CTR Encryption (12-byte IV)",
2431                 .test_data = &aes_test_data_3_IV_12_bytes,
2432                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2433                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2434                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
2435                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2 |
2436                                 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2437                                 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
2438         },
2439         {
2440                 .test_descr = "AES-128-XTS Encryption (16-byte plaintext)",
2441                 .test_data = &aes_test_data_xts_key_32_pt_16,
2442                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2443                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2444         },
2445         {
2446                 .test_descr = "AES-128-XTS Decryption (16-byte plaintext)",
2447                 .test_data = &aes_test_data_xts_key_32_pt_16,
2448                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2449                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2450         },
2451         {
2452                 .test_descr = "AES-128-XTS Encryption (32-byte plaintext)",
2453                 .test_data = &aes_test_data_xts_key_32_pt_32,
2454                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2455                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2456         },
2457         {
2458                 .test_descr = "AES-128-XTS Decryption (32-byte plaintext)",
2459                 .test_data = &aes_test_data_xts_key_32_pt_32,
2460                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2461                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2462         },
2463         {
2464                 .test_descr = "AES-256-XTS Encryption (32-byte plaintext)",
2465                 .test_data = &aes_test_data_xts_key_64_pt_32,
2466                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2467                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2468         },
2469         {
2470                 .test_descr = "AES-256-XTS Decryption (32-byte plaintext)",
2471                 .test_data = &aes_test_data_xts_key_64_pt_32,
2472                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2473                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2474         },
2475         {
2476                 .test_descr = "AES-256-XTS Encryption (48-byte plaintext)",
2477                 .test_data = &aes_test_data_xts_key_64_pt_48,
2478                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2479                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2480         },
2481         {
2482                 .test_descr = "AES-256-XTS Decryption (48-byte plaintext)",
2483                 .test_data = &aes_test_data_xts_key_64_pt_48,
2484                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2485                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2486         },
2487         {
2488                 .test_descr = "cipher-only - NULL algo - x8 - encryption",
2489                 .test_data = &null_test_data_chain_x8_multiple,
2490                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2491                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2492                                 BLOCKCIPHER_TEST_TARGET_PMD_QAT
2493         },
2494         {
2495                 .test_descr = "cipher-only - NULL algo - x8 - decryption",
2496                 .test_data = &null_test_data_chain_x8_multiple,
2497                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2498                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2499                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2500         },
2501         {
2502                 .test_descr = "cipher-only - NULL algo - x4 - encryption",
2503                 .test_data = &null_test_data_chain_x4_multiple,
2504                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2505                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2506                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2507         },
2508         {
2509                 .test_descr = "cipher-only - NULL algo - x4 - decryption",
2510                 .test_data = &null_test_data_chain_x4_multiple,
2511                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2512                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2513                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2514         },
2515         {
2516                 .test_descr = "cipher-only - NULL algo - x4 - encryption - OOP",
2517                 .test_data = &null_test_data_chain_x4_multiple,
2518                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2519                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2520                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2521         },
2522         {
2523                 .test_descr = "cipher-only - NULL algo - x4 - decryption - OOP",
2524                 .test_data = &null_test_data_chain_x4_multiple,
2525                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2526                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2527                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2528                 },
2529         {
2530                 .test_descr = "cipher-only - NULL algo - x1 - encryption",
2531                 .test_data = &null_test_data_chain_x1_multiple,
2532                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2533                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2534                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2535         },
2536         {
2537                 .test_descr = "cipher-only - NULL algo - x1 - decryption",
2538                 .test_data = &null_test_data_chain_x1_multiple,
2539                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2540                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL |
2541                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2542         },
2543 };
2544
2545 static const struct blockcipher_test_case aes_docsis_test_cases[] = {
2546
2547         {
2548                 .test_descr = "AES-DOCSIS-BPI Full Block Encryption",
2549                 .test_data = &aes_test_data_docsis_1,
2550                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2551                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2552                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2553         },
2554         {
2555                 .test_descr = "AES-DOCSIS-BPI Runt Block Encryption",
2556                 .test_data = &aes_test_data_docsis_2,
2557                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2558                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2559                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2560         },
2561         {
2562                 .test_descr = "AES-DOCSIS-BPI Uneven Encryption",
2563                 .test_data = &aes_test_data_docsis_3,
2564                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2565                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2566                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2567         },
2568         {
2569                 .test_descr = "AES-DOCSIS-BPI Full Block Decryption",
2570                 .test_data = &aes_test_data_docsis_1,
2571                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2572                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2573                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2574         },
2575         {
2576                 .test_descr = "AES-DOCSIS-BPI Runt Block Decryption",
2577                 .test_data = &aes_test_data_docsis_2,
2578                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2579                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2580                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2581         },
2582         {
2583                 .test_descr = "AES-DOCSIS-BPI Uneven Decryption",
2584                 .test_data = &aes_test_data_docsis_3,
2585                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2586                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2587                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2588         },
2589         {
2590                 .test_descr = "AES-DOCSIS-BPI OOP Full Block Encryption",
2591                 .test_data = &aes_test_data_docsis_1,
2592                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2593                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2594                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2595                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2596         },
2597         {
2598                 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Encryption",
2599                 .test_data = &aes_test_data_docsis_2,
2600                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2601                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2602                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2603                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2604         },
2605
2606         {
2607                 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Encryption",
2608                 .test_data = &aes_test_data_docsis_3,
2609                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2610                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2611                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2612                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2613         },
2614         {
2615                 .test_descr = "AES-DOCSIS-BPI OOP Full Block Decryption",
2616                 .test_data = &aes_test_data_docsis_1,
2617                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2618                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2619                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2620                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2621         },
2622         {
2623                 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Decryption",
2624                 .test_data = &aes_test_data_docsis_2,
2625                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2626                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2627                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2628                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2629         },
2630         {
2631                 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Decryption",
2632                 .test_data = &aes_test_data_docsis_3,
2633                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2634                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2635                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2636                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2637         },
2638 };
2639 #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */