mbuf: add function to generate raw Tx offload value
[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 /* AES128-CTR-SHA1 test vector */
225 static const struct blockcipher_test_data aes_test_data_1 = {
226         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
227         .cipher_key = {
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 = {
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_aes128ctr,
243                 .len = 64
244         },
245         .ciphertext = {
246                 .data = ciphertext64_aes128ctr,
247                 .len = 64
248         },
249         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
250         .auth_key = {
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                         0x9B, 0x6F, 0x0C, 0x43, 0xF5, 0xC1, 0x3E, 0xB0,
261                         0xB1, 0x70, 0xB8, 0x2B, 0x33, 0x09, 0xD2, 0xB2,
262                         0x56, 0x20, 0xFB, 0xFE
263                 },
264                 .len = 20,
265                 .truncated_len = 12
266         }
267 };
268
269 /** AES-192-CTR XCBC test vector */
270 static const struct blockcipher_test_data aes_test_data_2 = {
271         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
272         .cipher_key = {
273                 .data = {
274                         0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C,
275                         0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F,
276                         0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4
277                 },
278                 .len = 24
279         },
280         .iv = {
281                 .data = {
282                         0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
283                         0xB8, 0x7A, 0x4B, 0xED, 0x2B, 0xAF, 0xBF, 0x57
284                 },
285                 .len = 16
286         },
287         .plaintext = {
288                 .data = plaintext_aes192ctr,
289                 .len = 64
290         },
291         .ciphertext = {
292                 .data = ciphertext64_aes192ctr,
293                 .len = 64
294         },
295         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
296         .auth_key = {
297                 .data = {
298                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
299                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
300                 },
301                 .len = 16
302         },
303         .digest = {
304                 .data = {
305                         0xCA, 0x33, 0xB3, 0x3B, 0x16, 0x94, 0xAA, 0x55,
306                         0x36, 0x6B, 0x45, 0x46
307                 },
308                 .len = 12,
309                 .truncated_len = 12
310         }
311 };
312
313 /** AES-256-CTR SHA1 test vector */
314 static const struct blockcipher_test_data aes_test_data_3 = {
315         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
316         .cipher_key = {
317                 .data = {
318                         0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE,
319                         0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81,
320                         0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7,
321                         0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4
322                 },
323                 .len = 32
324         },
325         .iv = {
326                 .data = {
327                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
328                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
329                 },
330                 .len = 16
331         },
332         .plaintext = {
333                 .data = plaintext_aes256ctr,
334                 .len = 64
335         },
336         .ciphertext = {
337                 .data = ciphertext64_aes256ctr,
338                 .len = 64
339         },
340         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
341         .auth_key = {
342                 .data = {
343                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
344                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
345                         0xDE, 0xF4, 0xDE, 0xAD
346                 },
347                 .len = 20
348         },
349         .digest = {
350                 .data = {
351                         0x3B, 0x1A, 0x9D, 0x82, 0x35, 0xD5, 0xDD, 0x64,
352                         0xCC, 0x1B, 0xA9, 0xC0, 0xEB, 0xE9, 0x42, 0x16,
353                         0xE7, 0x87, 0xA3, 0xEF
354                 },
355                 .len = 20,
356                 .truncated_len = 12
357         }
358 };
359
360 /* AES128-CTR-SHA1 test vector (12-byte IV) */
361 static const struct blockcipher_test_data aes_test_data_1_IV_12_bytes = {
362         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
363         .cipher_key = {
364                 .data = {
365                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
366                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
367                 },
368                 .len = 16
369         },
370         .iv = {
371                 .data = {
372                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
373                         0xF8, 0xF9, 0xFA, 0xFB
374                 },
375                 .len = 12
376         },
377         .plaintext = {
378                 .data = plaintext_aes128ctr,
379                 .len = 64
380         },
381         .ciphertext = {
382                 .data = ciphertext64_aes128ctr_IV_12bytes,
383                 .len = 64
384         },
385         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
386         .auth_key = {
387                 .data = {
388                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
389                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
390                         0xDE, 0xF4, 0xDE, 0xAD
391                 },
392                 .len = 20
393         },
394         .digest = {
395                 .data = {
396                         0x5C, 0x34, 0x6B, 0xE4, 0x9A, 0x7F, 0x4A, 0xC3,
397                         0x82, 0xBE, 0xA0, 0x12, 0xD1, 0xF0, 0x15, 0xFA,
398                         0xCF, 0xC8, 0x7F, 0x60
399                 },
400                 .len = 20,
401                 .truncated_len = 12
402         }
403 };
404
405 /** AES-192-CTR XCBC test vector (12-byte IV) */
406 static const struct blockcipher_test_data aes_test_data_2_IV_12_bytes = {
407         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
408         .cipher_key = {
409                 .data = {
410                         0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C,
411                         0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F,
412                         0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4
413                 },
414                 .len = 24
415         },
416         .iv = {
417                 .data = {
418                         0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
419                         0xB8, 0x7A, 0x4B, 0xED
420                 },
421                 .len = 12
422         },
423         .plaintext = {
424                 .data = plaintext_aes192ctr,
425                 .len = 64
426         },
427         .ciphertext = {
428                 .data = ciphertext64_aes192ctr_IV_12bytes,
429                 .len = 64
430         },
431         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
432         .auth_key = {
433                 .data = {
434                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
435                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
436                 },
437                 .len = 16
438         },
439         .digest = {
440                 .data = {
441                         0x0C, 0xA1, 0xA5, 0xAF, 0x3E, 0x41, 0xD2, 0xF4,
442                         0x4C, 0x4C, 0xAB, 0x13
443                 },
444                 .len = 12,
445                 .truncated_len = 12
446         }
447 };
448
449 /** AES-256-CTR SHA1 test vector (12-byte IV) */
450 static const struct blockcipher_test_data aes_test_data_3_IV_12_bytes = {
451         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
452         .cipher_key = {
453                 .data = {
454                         0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE,
455                         0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81,
456                         0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7,
457                         0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4
458                 },
459                 .len = 32
460         },
461         .iv = {
462                 .data = {
463                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
464                         0xF8, 0xF9, 0xFA, 0xFB
465                 },
466                 .len = 12
467         },
468         .plaintext = {
469                 .data = plaintext_aes256ctr,
470                 .len = 64
471         },
472         .ciphertext = {
473                 .data = ciphertext64_aes256ctr_IV_12bytes,
474                 .len = 64
475         },
476         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
477         .auth_key = {
478                 .data = {
479                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
480                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
481                         0xDE, 0xF4, 0xDE, 0xAD
482                 },
483                 .len = 20
484         },
485         .digest = {
486                 .data = {
487                         0x57, 0x9A, 0x52, 0x6E, 0x31, 0x17, 0x57, 0x49,
488                         0xE7, 0xA1, 0x88, 0x6C, 0x2E, 0x36, 0x67, 0x63,
489                         0x3F, 0x2D, 0xA3, 0xEF
490                 },
491                 .len = 20,
492                 .truncated_len = 12
493         }
494 };
495 /** AES-128-CBC SHA1 test vector */
496 static const struct blockcipher_test_data aes_test_data_4 = {
497         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
498         .cipher_key = {
499                 .data = {
500                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
501                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
502                 },
503                 .len = 16
504         },
505         .iv = {
506                 .data = {
507                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
508                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
509                 },
510                 .len = 16
511         },
512         .plaintext = {
513                 .data = plaintext_aes_common,
514                 .len = 512
515         },
516         .ciphertext = {
517                 .data = ciphertext512_aes128cbc,
518                 .len = 512
519         },
520         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
521         .auth_key = {
522                 .data = {
523                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
524                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
525                         0xDE, 0xF4, 0xDE, 0xAD
526                 },
527                 .len = 20
528         },
529         .digest = {
530                 .data = {
531                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60,
532                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
533                         0x18, 0x8C, 0x1D, 0x32
534                 },
535                 .len = 20,
536                 .truncated_len = 12
537         }
538 };
539
540 /** AES-128-CBC SHA256 test vector */
541 static const struct blockcipher_test_data aes_test_data_5 = {
542         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
543         .cipher_key = {
544                 .data = {
545                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
546                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
547                 },
548                 .len = 16
549         },
550         .iv = {
551                 .data = {
552                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
553                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
554                 },
555                 .len = 16
556         },
557         .plaintext = {
558                 .data = plaintext_aes_common,
559                 .len = 512
560         },
561         .ciphertext = {
562                 .data = ciphertext512_aes128cbc,
563                 .len = 512
564         },
565         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
566         .auth_key = {
567                 .data = {
568                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
569                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
570                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
571                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
572                 },
573                 .len = 32
574         },
575         .digest = {
576                 .data = {
577                         0xC8, 0x57, 0x57, 0x31, 0x03, 0xE0, 0x03, 0x55,
578                         0x07, 0xC8, 0x9E, 0x7F, 0x48, 0x9A, 0x61, 0x9A,
579                         0x68, 0xEE, 0x03, 0x0E, 0x71, 0x75, 0xC7, 0xF4,
580                         0x2E, 0x45, 0x26, 0x32, 0x7C, 0x12, 0x15, 0x15
581                 },
582                 .len = 32,
583                 .truncated_len = 16
584         }
585 };
586
587 /** AES-128-CBC SHA512 test vector */
588 static const struct blockcipher_test_data aes_test_data_6 = {
589         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
590         .cipher_key = {
591                 .data = {
592                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
593                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
594                 },
595                 .len = 16
596         },
597         .iv = {
598                 .data = {
599                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
600                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
601                 },
602                 .len = 16
603         },
604         .plaintext = {
605                 .data = plaintext_aes_common,
606                 .len = 512
607         },
608         .ciphertext = {
609                 .data = ciphertext512_aes128cbc,
610                 .len = 512
611         },
612         .auth_algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
613         .auth_key = {
614                 .data = {
615                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
616                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
617                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
618                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
619                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
620                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
621                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
622                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
623                 },
624                 .len = 64
625         },
626         .digest = {
627                 .data = {
628                         0x5D, 0x54, 0x66, 0xC1, 0x6E, 0xBC, 0x04, 0xB8,
629                         0x46, 0xB8, 0x08, 0x6E, 0xE0, 0xF0, 0x43, 0x48,
630                         0x37, 0x96, 0x9C, 0xC6, 0x9C, 0xC2, 0x1E, 0xE8,
631                         0xF2, 0x0C, 0x0B, 0xEF, 0x86, 0xA2, 0xE3, 0x70,
632                         0x95, 0xC8, 0xB3, 0x06, 0x47, 0xA9, 0x90, 0xE8,
633                         0xA0, 0xC6, 0x72, 0x69, 0x05, 0xC0, 0x0D, 0x0E,
634                         0x21, 0x96, 0x65, 0x93, 0x74, 0x43, 0x2A, 0x1D,
635                         0x2E, 0xBF, 0xC2, 0xC2, 0xEE, 0xCC, 0x2F, 0x0A
636                 },
637                 .len = 64,
638                 .truncated_len = 32
639         }
640 };
641
642 /** AES-128-CBC XCBC test vector */
643 static const struct blockcipher_test_data aes_test_data_7 = {
644         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
645         .cipher_key = {
646                 .data = {
647                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
648                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
649                 },
650                 .len = 16
651         },
652         .iv = {
653                 .data = {
654                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
655                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
656                 },
657                 .len = 16
658         },
659         .plaintext = {
660                 .data = plaintext_aes_common,
661                 .len = 512
662         },
663         .ciphertext = {
664                 .data = ciphertext512_aes128cbc,
665                 .len = 512
666         },
667         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
668         .auth_key = {
669                 .data = {
670                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
671                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
672                 },
673                 .len = 16
674         },
675         .digest = {
676                 .data = {
677                         0xE0, 0xAC, 0x9A, 0xC4, 0x22, 0x64, 0x35, 0x89,
678                         0x77, 0x1D, 0x8B, 0x75
679                 },
680                 .len = 12,
681                 .truncated_len = 12
682         }
683 };
684
685 /** AES-128-CBC SHA224 test vector */
686 static const struct blockcipher_test_data aes_test_data_8 = {
687         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
688         .cipher_key = {
689                 .data = {
690                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
691                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
692                 },
693                 .len = 16
694         },
695         .iv = {
696                 .data = {
697                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
698                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
699                 },
700                 .len = 16
701         },
702         .plaintext = {
703                 .data = plaintext_aes_common,
704                 .len = 512
705         },
706         .ciphertext = {
707                 .data = ciphertext512_aes128cbc,
708                 .len = 512
709         },
710         .auth_algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
711         .auth_key = {
712                 .data = {
713                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
714                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
715                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
716                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
717                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
718                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
719                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
720                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
721                 },
722                 .len = 64
723         },
724         .digest = {
725                 .data = {
726                         0xA3, 0xCA, 0xC7, 0x1D, 0xA8, 0x61, 0x30, 0x98,
727                         0x3B, 0x8F, 0x01, 0x19, 0xAE, 0x8D, 0xBD, 0x34,
728                         0x40, 0x63, 0xA8, 0x2F, 0xDF, 0x85, 0x2B, 0x7F,
729                         0x63, 0x7C, 0xDD, 0xB7
730                 },
731                 .len = 28,
732                 .truncated_len = 14
733         }
734 };
735
736 /** AES-128-CBC SHA384 test vector */
737 static const struct blockcipher_test_data aes_test_data_9 = {
738         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
739         .cipher_key = {
740                 .data = {
741                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
742                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
743                 },
744                 .len = 16
745         },
746         .iv = {
747                 .data = {
748                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
749                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
750                 },
751                 .len = 16
752         },
753         .plaintext = {
754                 .data = plaintext_aes_common,
755                 .len = 512
756         },
757         .ciphertext = {
758                 .data = ciphertext512_aes128cbc,
759                 .len = 512
760         },
761         .auth_algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
762         .auth_key = {
763                 .data = {
764                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
765                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
766                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
767                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
768                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
769                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
770                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
771                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60,
772                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
773                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
774                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
775                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
776                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
777                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
778                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
779                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
780                 },
781                 .len = 128
782         },
783         .digest = {
784                 .data = {
785                         0x23, 0x60, 0xC8, 0xB1, 0x2D, 0x6C, 0x1E, 0x72,
786                         0x25, 0xAB, 0xF9, 0xC3, 0x9A, 0xA9, 0x4F, 0x8C,
787                         0x56, 0x38, 0x65, 0x0E, 0x74, 0xD5, 0x45, 0x9D,
788                         0xA3, 0xFD, 0x7E, 0x6D, 0x9E, 0x74, 0x88, 0x9D,
789                         0xA7, 0x12, 0x9D, 0xD8, 0x81, 0x3C, 0x86, 0x2F,
790                         0x4D, 0xF9, 0x6F, 0x0A, 0xB0, 0xC9, 0xEB, 0x0B
791                 },
792                 .len = 48,
793                 .truncated_len = 24
794         }
795 };
796
797 static const uint8_t ciphertext512_aes192cbc[] = {
798         0x45, 0xEE, 0x9A, 0xEA, 0x3C, 0x03, 0xFC, 0x4C,
799         0x84, 0x36, 0xB0, 0xDA, 0xB0, 0xDC, 0xF3, 0x5B,
800         0x75, 0xA7, 0xBE, 0x0E, 0xC0, 0x8D, 0x6C, 0xF8,
801         0xC1, 0x0F, 0xD0, 0x35, 0x1D, 0x82, 0xAE, 0x7C,
802         0x57, 0xC5, 0x7A, 0x55, 0x87, 0x1B, 0xD4, 0x03,
803         0x0A, 0x64, 0xC9, 0xE0, 0xF4, 0xC7, 0x6F, 0x57,
804         0x52, 0xC6, 0x73, 0xBA, 0x84, 0x0B, 0x5B, 0x89,
805         0x21, 0xD2, 0x9B, 0x88, 0x68, 0xF5, 0xA9, 0x7F,
806         0x3F, 0x49, 0xEB, 0xF4, 0xD4, 0x52, 0xD2, 0x64,
807         0x80, 0xB2, 0x53, 0xDA, 0x19, 0xF6, 0x10, 0x24,
808         0x23, 0x26, 0x7A, 0x7C, 0x07, 0x57, 0x4B, 0x0E,
809         0x58, 0x49, 0x61, 0xD1, 0xDC, 0x9A, 0x32, 0x6B,
810         0x0F, 0x43, 0x9E, 0x4D, 0xB4, 0x07, 0x4E, 0xB3,
811         0x51, 0x74, 0xDE, 0x29, 0xBC, 0x98, 0xF9, 0xDF,
812         0x78, 0x9A, 0x18, 0x9C, 0xD6, 0x7A, 0x55, 0x7C,
813         0xE6, 0x1D, 0x5C, 0x1A, 0x99, 0xD2, 0xC3, 0x7B,
814         0x9F, 0x96, 0x74, 0x2D, 0xE0, 0xEF, 0xD1, 0xE3,
815         0x08, 0x9F, 0xAF, 0xE6, 0xED, 0xCA, 0xE1, 0xEA,
816         0x23, 0x6F, 0x7C, 0x81, 0xA8, 0xC0, 0x5B, 0x8B,
817         0x53, 0x90, 0x51, 0x2D, 0x0F, 0xF6, 0x7D, 0xA7,
818         0x1C, 0xBD, 0x83, 0x84, 0x54, 0xA4, 0x15, 0xFB,
819         0x3E, 0x25, 0xA7, 0x3A, 0x0A, 0x73, 0xD9, 0x88,
820         0x6F, 0x80, 0x78, 0x95, 0x7F, 0x60, 0xAA, 0x86,
821         0x8A, 0xFC, 0xDF, 0xC1, 0xCB, 0xDE, 0xBB, 0x25,
822         0x52, 0x20, 0xC6, 0x79, 0xD4, 0x0F, 0x25, 0xE7,
823         0xDB, 0xB2, 0x17, 0xA4, 0x6F, 0x3C, 0x6F, 0x91,
824         0xF6, 0x44, 0x1E, 0xB6, 0x85, 0xBC, 0x7A, 0x14,
825         0x10, 0x72, 0xBD, 0x16, 0x63, 0x39, 0x9E, 0x7B,
826         0x84, 0x5B, 0x17, 0x61, 0xB1, 0x5D, 0x82, 0x0B,
827         0x6D, 0x37, 0xD7, 0x79, 0xB8, 0x24, 0x91, 0x30,
828         0x82, 0x91, 0x02, 0xB1, 0x18, 0x4B, 0xE0, 0xF4,
829         0x13, 0x1B, 0xB2, 0x4C, 0xDA, 0xB8, 0x99, 0x96,
830         0x83, 0x2F, 0xBE, 0x53, 0x8D, 0xDE, 0xFA, 0xAD,
831         0xF6, 0x5C, 0xDB, 0xE5, 0x66, 0x26, 0x8F, 0x13,
832         0x2B, 0x76, 0x47, 0x73, 0xDE, 0x1A, 0x74, 0xA6,
833         0x30, 0xAF, 0x42, 0xA0, 0xE5, 0xD2, 0x8F, 0xC2,
834         0xED, 0x3E, 0x9E, 0x29, 0x54, 0x3C, 0xDE, 0x9F,
835         0x5D, 0x30, 0x2B, 0x63, 0xFB, 0xE3, 0xB1, 0x07,
836         0xEE, 0x74, 0x4A, 0xAF, 0xB1, 0x20, 0x8D, 0xEC,
837         0xE6, 0x78, 0x16, 0x8D, 0xA4, 0x6E, 0x34, 0x7D,
838         0x47, 0xFB, 0x0B, 0xC1, 0x32, 0xD7, 0x0D, 0x6C,
839         0x6F, 0x93, 0x9C, 0x5E, 0xEF, 0x1F, 0x9C, 0x45,
840         0x80, 0x6B, 0x74, 0xA6, 0x81, 0xF2, 0xF6, 0xFA,
841         0xAA, 0x9D, 0x4F, 0xCA, 0xB5, 0x90, 0x59, 0xB0,
842         0x3B, 0xF2, 0xF0, 0x75, 0xFD, 0x8A, 0xD8, 0x97,
843         0x65, 0x88, 0x56, 0x4C, 0x44, 0xDF, 0x73, 0xF7,
844         0x56, 0x9C, 0x48, 0x7E, 0xB0, 0x1F, 0x1D, 0x7D,
845         0x6A, 0x11, 0xF5, 0xC2, 0xF4, 0x17, 0xEF, 0x58,
846         0xD8, 0x2A, 0xAF, 0x56, 0x2F, 0xCF, 0xEC, 0xA4,
847         0x58, 0x8B, 0x60, 0xCE, 0xD4, 0x0F, 0x9C, 0x21,
848         0xEC, 0x3E, 0x74, 0x7B, 0x81, 0x3D, 0x69, 0xC6,
849         0x5E, 0x12, 0x83, 0xE9, 0xEF, 0x81, 0x58, 0x36,
850         0x6A, 0x60, 0x0F, 0x54, 0x28, 0x11, 0xF9, 0x64,
851         0x36, 0xAD, 0x79, 0xF5, 0x1C, 0x74, 0xD0, 0xC3,
852         0x7B, 0x61, 0xE1, 0x92, 0xB0, 0x13, 0x91, 0x87,
853         0x32, 0x1F, 0xF2, 0x5A, 0xDA, 0x25, 0x69, 0xEB,
854         0xD7, 0x32, 0x7F, 0xF5, 0x23, 0x21, 0x54, 0x47,
855         0x7B, 0x1B, 0x33, 0xB0, 0x3D, 0xF6, 0xE2, 0x7E,
856         0x3E, 0xA2, 0x9E, 0xCA, 0x48, 0x0B, 0x4A, 0x29,
857         0x81, 0xD4, 0x4E, 0xD5, 0x69, 0xFB, 0xCD, 0x37,
858         0x8A, 0xC1, 0x5B, 0x50, 0xFF, 0xB5, 0x7D, 0x43,
859         0x0F, 0xAE, 0xA6, 0xC2, 0xE5, 0x8F, 0x45, 0xB2,
860         0x85, 0x99, 0x02, 0xA2, 0x9B, 0xBE, 0x90, 0x43,
861         0x4F, 0x2F, 0x50, 0xE2, 0x77, 0x62, 0xD9, 0xCC
862 };
863
864 /** AES-192-CBC test vector */
865 static const struct blockcipher_test_data aes_test_data_10 = {
866         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
867         .cipher_key = {
868                 .data = {
869                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
870                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
871                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
872                 },
873                 .len = 24
874         },
875         .iv = {
876                 .data = {
877                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
878                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
879                 },
880                 .len = 16
881         },
882         .plaintext = {
883                 .data = plaintext_aes_common,
884                 .len = 512
885         },
886         .ciphertext = {
887                 .data = ciphertext512_aes192cbc,
888                 .len = 512
889         }
890 };
891
892 static const uint8_t ciphertext512_aes256cbc[] = {
893         0xF3, 0xDD, 0xF0, 0x0B, 0xFF, 0xA2, 0x6A, 0x04,
894         0xBE, 0xDA, 0x52, 0xA6, 0xFE, 0x6B, 0xA6, 0xA7,
895         0x48, 0x1D, 0x7D, 0x98, 0x65, 0xDB, 0xEF, 0x06,
896         0x26, 0xB5, 0x8E, 0xEB, 0x05, 0x0E, 0x77, 0x98,
897         0x17, 0x8E, 0xD0, 0xD4, 0x7B, 0x92, 0x8F, 0x5C,
898         0xD0, 0x74, 0x5C, 0xA8, 0x4B, 0x54, 0xB6, 0x2F,
899         0x83, 0x72, 0x2C, 0xFF, 0x72, 0xE9, 0xE4, 0x15,
900         0x4C, 0x32, 0xAF, 0xC8, 0xC9, 0x89, 0x3C, 0x6E,
901         0x31, 0xD5, 0xC0, 0x16, 0xC0, 0x31, 0x7D, 0x11,
902         0xAB, 0xCB, 0xDE, 0xD2, 0xD6, 0xAA, 0x76, 0x5E,
903         0xBA, 0xF6, 0xE2, 0x92, 0xCB, 0x86, 0x07, 0xFA,
904         0xD4, 0x9E, 0x83, 0xED, 0xFD, 0xB8, 0x70, 0x54,
905         0x6B, 0xBE, 0xEC, 0x72, 0xDD, 0x28, 0x5E, 0x95,
906         0x78, 0xA5, 0x28, 0x43, 0x3D, 0x6D, 0xB1, 0xD9,
907         0x69, 0x1F, 0xC9, 0x66, 0x0E, 0x32, 0x44, 0x08,
908         0xD2, 0xAE, 0x2C, 0x43, 0xF2, 0xD0, 0x7D, 0x26,
909         0x70, 0xE5, 0xA1, 0xCA, 0x37, 0xE9, 0x7D, 0xC7,
910         0xA3, 0xFA, 0x81, 0x91, 0x64, 0xAA, 0x64, 0x91,
911         0x9A, 0x95, 0x2D, 0xC9, 0xF9, 0xCE, 0xFE, 0x9F,
912         0xC4, 0xD8, 0x81, 0xBE, 0x57, 0x84, 0xC5, 0x02,
913         0xDB, 0x30, 0xC1, 0xD9, 0x0E, 0xA0, 0xA6, 0x00,
914         0xD6, 0xF3, 0x52, 0x7E, 0x0D, 0x23, 0x6B, 0x2B,
915         0x34, 0x99, 0x1F, 0x70, 0x27, 0x6D, 0x58, 0x84,
916         0x93, 0x77, 0xB8, 0x3E, 0xF1, 0x71, 0x58, 0x42,
917         0x8B, 0x2B, 0xC8, 0x6D, 0x05, 0x84, 0xFF, 0x4E,
918         0x85, 0xEF, 0x4A, 0x9D, 0x91, 0x6A, 0xD5, 0xE1,
919         0xAF, 0x01, 0xEB, 0x83, 0x8F, 0x23, 0x7C, 0x7F,
920         0x12, 0x91, 0x05, 0xF0, 0x4E, 0xD9, 0x17, 0x62,
921         0x75, 0xBB, 0xAC, 0x97, 0xEE, 0x3B, 0x4E, 0xC7,
922         0xE5, 0x92, 0xF8, 0x9D, 0x4C, 0xF9, 0xEE, 0x55,
923         0x18, 0xBB, 0xCC, 0xB4, 0xF2, 0x59, 0xB9, 0xFC,
924         0x7A, 0x0F, 0x98, 0xD4, 0x8B, 0xFE, 0xF7, 0x83,
925         0x46, 0xE2, 0x83, 0x33, 0x3E, 0x95, 0x8D, 0x17,
926         0x1E, 0x85, 0xF8, 0x8C, 0x51, 0xB0, 0x6C, 0xB5,
927         0x5E, 0x95, 0xBA, 0x4B, 0x69, 0x1B, 0x48, 0x69,
928         0x0B, 0x8F, 0xA5, 0x18, 0x13, 0xB9, 0x77, 0xD1,
929         0x80, 0x32, 0x32, 0x6D, 0x53, 0xA1, 0x95, 0x40,
930         0x96, 0x8A, 0xCC, 0xA3, 0x69, 0xF8, 0x9F, 0xB5,
931         0x8E, 0xD2, 0x68, 0x07, 0x4F, 0xA7, 0xEC, 0xF8,
932         0x20, 0x21, 0x58, 0xF8, 0xD8, 0x9E, 0x5F, 0x40,
933         0xBA, 0xB9, 0x76, 0x57, 0x3B, 0x17, 0xAD, 0xEE,
934         0xCB, 0xDF, 0x07, 0xC1, 0xDF, 0x66, 0xA8, 0x0D,
935         0xC2, 0xCE, 0x8F, 0x79, 0xC3, 0x32, 0xE0, 0x8C,
936         0xFE, 0x5A, 0xF3, 0x55, 0x27, 0x73, 0x6F, 0xA1,
937         0x54, 0xC6, 0xFC, 0x28, 0x9D, 0xBE, 0x97, 0xB9,
938         0x54, 0x97, 0x72, 0x3A, 0x61, 0xAF, 0x6F, 0xDE,
939         0xF8, 0x0E, 0xBB, 0x6B, 0x96, 0x84, 0xDD, 0x9B,
940         0x62, 0xBA, 0x47, 0xB5, 0xC9, 0x3B, 0x4E, 0x8C,
941         0x78, 0x2A, 0xCC, 0x0A, 0x69, 0x54, 0x25, 0x5E,
942         0x8B, 0xAC, 0x56, 0xD9, 0xFE, 0x48, 0xBA, 0xCE,
943         0xA9, 0xCE, 0xA6, 0x1D, 0xBF, 0x3E, 0x3C, 0x66,
944         0x40, 0x71, 0x79, 0xAD, 0x5B, 0x26, 0xAD, 0xBE,
945         0x58, 0x13, 0x64, 0x60, 0x7C, 0x05, 0xFC, 0xE3,
946         0x51, 0x7A, 0xF2, 0xCC, 0x54, 0x16, 0x2C, 0xA4,
947         0xCE, 0x5F, 0x59, 0x12, 0x77, 0xEB, 0xD9, 0x23,
948         0xE3, 0x86, 0xFB, 0xD7, 0x48, 0x76, 0x9D, 0xE3,
949         0x89, 0x87, 0x39, 0xFA, 0x7B, 0x21, 0x0B, 0x76,
950         0xB2, 0xED, 0x1C, 0x27, 0x4B, 0xD5, 0x27, 0x05,
951         0x8C, 0x7D, 0x58, 0x6C, 0xCA, 0xA5, 0x54, 0x9A,
952         0x0F, 0xCB, 0xE9, 0x88, 0x31, 0xAD, 0x49, 0xEE,
953         0x38, 0xFB, 0xC9, 0xFB, 0xB4, 0x7A, 0x00, 0x58,
954         0x20, 0x32, 0xD3, 0x53, 0x5A, 0xDD, 0x74, 0x95,
955         0x60, 0x59, 0x09, 0xAE, 0x7E, 0xEC, 0x74, 0xA3,
956         0xB7, 0x1C, 0x6D, 0xF2, 0xAE, 0x79, 0xA4, 0x7C
957 };
958
959 /** AES-256-CBC test vector */
960 static const struct blockcipher_test_data aes_test_data_11 = {
961         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
962         .cipher_key = {
963                 .data = {
964                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
965                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
966                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0,
967                         0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D
968                 },
969                 .len = 32
970         },
971         .iv = {
972                 .data = {
973                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
974                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
975                 },
976                 .len = 16
977         },
978         .plaintext = {
979                 .data = plaintext_aes_common,
980                 .len = 512
981         },
982         .ciphertext = {
983                 .data = ciphertext512_aes256cbc,
984                 .len = 512
985         }
986 };
987
988 /** AES-128-CBC SHA256 HMAC test vector (160 bytes) */
989 static const struct blockcipher_test_data aes_test_data_12 = {
990         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
991         .cipher_key = {
992                 .data = {
993                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
994                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
995                 },
996                 .len = 16
997         },
998         .iv = {
999                 .data = {
1000                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1001                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1002                 },
1003                 .len = 16
1004         },
1005         .plaintext = {
1006                 .data = plaintext_aes_common,
1007                 .len = 160
1008         },
1009         .ciphertext = {
1010                 .data = ciphertext512_aes128cbc,
1011                 .len = 160
1012         },
1013         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
1014         .auth_key = {
1015                 .data = {
1016                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
1017                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
1018                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
1019                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
1020                 },
1021                 .len = 32
1022         },
1023         .digest = {
1024                 .data = {
1025                         0x92, 0xEC, 0x65, 0x9A, 0x52, 0xCC, 0x50, 0xA5,
1026                         0xEE, 0x0E, 0xDF, 0x1E, 0xA4, 0xC9, 0xC1, 0x04,
1027                         0xD5, 0xDC, 0x78, 0x90, 0xF4, 0xE3, 0x35, 0x62,
1028                         0xAD, 0x95, 0x45, 0x28, 0x5C, 0xF8, 0x8C, 0x0B
1029                 },
1030                 .len = 32,
1031                 .truncated_len = 16
1032         }
1033 };
1034
1035 /** AES-128-CBC SHA1 HMAC test vector (160 bytes) */
1036 static const struct blockcipher_test_data aes_test_data_13 = {
1037         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1038         .cipher_key = {
1039                 .data = {
1040                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1041                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1042                 },
1043                 .len = 16
1044         },
1045         .iv = {
1046                 .data = {
1047                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1048                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1049                 },
1050                 .len = 16
1051         },
1052         .plaintext = {
1053                 .data = plaintext_aes_common,
1054                 .len = 160
1055         },
1056         .ciphertext = {
1057                 .data = ciphertext512_aes128cbc,
1058                 .len = 160
1059         },
1060         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1061         .auth_key = {
1062                 .data = {
1063                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1064                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1065                         0xDE, 0xF4, 0xDE, 0xAD
1066                 },
1067                 .len = 20
1068         },
1069         .digest = {
1070                 .data = {
1071                         0x4F, 0x16, 0xEA, 0xF7, 0x4A, 0x88, 0xD3, 0xE0,
1072                         0x0E, 0x12, 0x8B, 0xE7, 0x05, 0xD0, 0x86, 0x48,
1073                         0x22, 0x43, 0x30, 0xA7
1074                 },
1075                 .len = 20,
1076                 .truncated_len = 12
1077         }
1078 };
1079
1080 /** XTS-AES-128 test vector (2 keys * 128 bit) */
1081 static const uint8_t plaintext_aes128xts_16bytes[] = {
1082         0xEB, 0xAB, 0xCE, 0x95, 0xB1, 0x4D, 0x3C, 0x8D,
1083         0x6F, 0xB3, 0x50, 0x39, 0x07, 0x90, 0x31, 0x1C
1084 };
1085 static const uint8_t ciphertext_aes128xts_16bytes[] = {
1086         0x77, 0x8A, 0xE8, 0xB4, 0x3C, 0xB9, 0x8D, 0x5A,
1087         0x82, 0x50, 0x81, 0xD5, 0xBE, 0x47, 0x1C, 0x63
1088 };
1089 static const struct
1090 blockcipher_test_data aes_test_data_xts_key_32_pt_16 = {
1091         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
1092         .cipher_key = {
1093                 .data = {
1094                         0xA1, 0xB9, 0x0C, 0xBA, 0x3F, 0x06, 0xAC, 0x35,
1095                         0x3B, 0x2C, 0x34, 0x38, 0x76, 0x08, 0x17, 0x62,
1096                         0x09, 0x09, 0x23, 0x02, 0x6E, 0x91, 0x77, 0x18,
1097                         0x15, 0xF2, 0x9D, 0xAB, 0x01, 0x93, 0x2F, 0x2F
1098                 },
1099                 .len = 32
1100         },
1101         .iv = {
1102                 .data = {
1103                         0x4F, 0xAE, 0xF7, 0x11, 0x7C, 0xDA, 0x59, 0xC6,
1104                         0x6E, 0x4B, 0x92, 0x01, 0x3E, 0x76, 0x8A, 0xD5
1105                 },
1106                 .len = 16
1107         },
1108         .plaintext = {
1109                 .data = plaintext_aes128xts_16bytes,
1110                 .len = 16
1111         },
1112         .ciphertext = {
1113                 .data = ciphertext_aes128xts_16bytes,
1114                 .len = 16
1115         }
1116 };
1117 static const uint8_t plaintext_aes128xts_32bytes[] = {
1118         0xB0, 0x4D, 0x84, 0xDA, 0x85, 0x6B, 0x9A, 0x59,
1119         0xCE, 0x2D, 0x62, 0x67, 0x46, 0xF6, 0x89, 0xA8,
1120         0x05, 0x1D, 0xAC, 0xD6, 0xBC, 0xE3, 0xB9, 0x90,
1121         0xAA, 0x90, 0x1E, 0x40, 0x30, 0x64, 0x88, 0x79
1122 };
1123 static const uint8_t ciphertext_aes128xts_32bytes[] = {
1124         0xF9, 0x41, 0x03, 0x9E, 0xBA, 0xB8, 0xCA, 0xC3,
1125         0x9D, 0x59, 0x24, 0x7C, 0xBB, 0xCB, 0x4D, 0x81,
1126         0x6C, 0x72, 0x6D, 0xAE, 0xD1, 0x15, 0x77, 0x69,
1127         0x2C, 0x55, 0xE4, 0xAC, 0x6D, 0x3E, 0x68, 0x20
1128 };
1129 static const struct
1130 blockcipher_test_data aes_test_data_xts_key_32_pt_32 = {
1131         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
1132         .cipher_key = {
1133                 .data = {
1134                         0x78, 0x3A, 0x83, 0xEC, 0x52, 0xA2, 0x74, 0x05,
1135                         0xDF, 0xF9, 0xDE, 0x4C, 0x57, 0xF9, 0xC9, 0x79,
1136                         0xB3, 0x60, 0xB6, 0xA5, 0xDF, 0x88, 0xD6, 0x7E,
1137                         0xC1, 0xA0, 0x52, 0xE6, 0xF5, 0x82, 0xA7, 0x17
1138                 },
1139                 .len = 32
1140         },
1141         .iv = {
1142                 .data = {
1143                         0x88, 0x6E, 0x97, 0x5B, 0x29, 0xBD, 0xF6, 0xF0,
1144                         0xC0, 0x1B, 0xB4, 0x7F, 0x61, 0xF6, 0xF0, 0xF5
1145                 },
1146                 .len = 16
1147         },
1148         .plaintext = {
1149                 .data = plaintext_aes128xts_32bytes,
1150                 .len = 32
1151         },
1152         .ciphertext = {
1153                 .data = ciphertext_aes128xts_32bytes,
1154                 .len = 32
1155         }
1156 };
1157
1158 /** XTS-AES-256 test vector (2 keys * 256 bit) */
1159 /* Encryption */
1160 static const uint8_t plaintext_aes256xts_32bytes[] = {
1161         0x2E, 0xED, 0xEA, 0x52, 0xCD, 0x82, 0x15, 0xE1,
1162         0xAC, 0xC6, 0x47, 0xE8, 0x10, 0xBB, 0xC3, 0x64,
1163         0x2E, 0x87, 0x28, 0x7F, 0x8D, 0x2E, 0x57, 0xE3,
1164         0x6C, 0x0A, 0x24, 0xFB, 0xC1, 0x2A, 0x20, 0x2E
1165 };
1166 static const uint8_t ciphertext_aes256xts_32bytes[] = {
1167         0xCB, 0xAA, 0xD0, 0xE2, 0xF6, 0xCE, 0xA3, 0xF5,
1168         0x0B, 0x37, 0xF9, 0x34, 0xD4, 0x6A, 0x9B, 0x13,
1169         0x0B, 0x9D, 0x54, 0xF0, 0x7E, 0x34, 0xF3, 0x6A,
1170         0xF7, 0x93, 0xE8, 0x6F, 0x73, 0xC6, 0xD7, 0xDB
1171 };
1172 static const struct
1173 blockcipher_test_data aes_test_data_xts_key_64_pt_32 = {
1174         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
1175         .cipher_key = {
1176                 .data = {
1177                         0x1E, 0xA6, 0x61, 0xC5, 0x8D, 0x94, 0x3A, 0x0E,
1178                         0x48, 0x01, 0xE4, 0x2F, 0x4B, 0x09, 0x47, 0x14,
1179                         0x9E, 0x7F, 0x9F, 0x8E, 0x3E, 0x68, 0xD0, 0xC7,
1180                         0x50, 0x52, 0x10, 0xBD, 0x31, 0x1A, 0x0E, 0x7C,
1181                         0xD6, 0xE1, 0x3F, 0xFD, 0xF2, 0x41, 0x8D, 0x8D,
1182                         0x19, 0x11, 0xC0, 0x04, 0xCD, 0xA5, 0x8D, 0xA3,
1183                         0xD6, 0x19, 0xB7, 0xE2, 0xB9, 0x14, 0x1E, 0x58,
1184                         0x31, 0x8E, 0xEA, 0x39, 0x2C, 0xF4, 0x1B, 0x08
1185                 },
1186                 .len = 64
1187         },
1188         .iv = {
1189                 .data = {
1190                         0xAD, 0xF8, 0xD9, 0x26, 0x27, 0x46, 0x4A, 0xD2,
1191                         0xF0, 0x42, 0x8E, 0x84, 0xA9, 0xF8, 0x75, 0x64
1192                 },
1193                 .len = 16
1194         },
1195         .plaintext = {
1196                 .data = plaintext_aes256xts_32bytes,
1197                 .len = 32
1198         },
1199         .ciphertext = {
1200                 .data = ciphertext_aes256xts_32bytes,
1201                 .len = 32
1202         }
1203 };
1204 static const uint8_t plaintext_aes256xts_48bytes[] = {
1205         0xBB, 0xB2, 0x34, 0xDB, 0x01, 0xBE, 0x79, 0xD3,
1206         0xDC, 0x7D, 0xCF, 0x49, 0xBC, 0x53, 0xB8, 0xEF,
1207         0xC6, 0x2F, 0xE7, 0x17, 0x94, 0x39, 0x06, 0x1D,
1208         0x73, 0xA6, 0xB2, 0x0E, 0xDB, 0x9B, 0x7D, 0xA0,
1209         0x45, 0x0B, 0x19, 0xF0, 0x20, 0x82, 0x02, 0x09,
1210         0xAF, 0xE0, 0x81, 0x12, 0xAE, 0x4A, 0xFD, 0xD3
1211 };
1212 static const uint8_t ciphertext_aes256xts_48bytes[] = {
1213         0xCB, 0xF6, 0x88, 0x48, 0xC4, 0x20, 0x49, 0xEF,
1214         0xB1, 0x46, 0xE2, 0xD1, 0xE4, 0x11, 0x5F, 0x62,
1215         0xE4, 0xFA, 0xA4, 0xEF, 0xFF, 0x19, 0x8F, 0x1A,
1216         0x0A, 0xA0, 0xC9, 0x8B, 0xA0, 0x2C, 0xC4, 0x4D,
1217         0xA3, 0x76, 0xD7, 0x62, 0xD6, 0x15, 0x1F, 0x23,
1218         0x45, 0x87, 0xBF, 0x12, 0x8B, 0x6A, 0x7F, 0xFA
1219 };
1220 static const struct
1221 blockcipher_test_data aes_test_data_xts_key_64_pt_48 = {
1222         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
1223         .cipher_key = {
1224                 .data = {
1225                         0x7F, 0xB0, 0x92, 0x2F, 0xCE, 0x09, 0xED, 0xDD,
1226                         0x36, 0x65, 0xA1, 0x1F, 0x52, 0x35, 0xD5, 0x1E,
1227                         0xF7, 0x72, 0x06, 0xA7, 0xDE, 0x45, 0x47, 0x75,
1228                         0xB6, 0x9D, 0xCC, 0x54, 0x59, 0xAC, 0xDB, 0x24,
1229                         0xCC, 0xF0, 0x5C, 0x41, 0x5A, 0xF5, 0xAB, 0x8A,
1230                         0x06, 0x62, 0x3D, 0x19, 0x8D, 0x5B, 0x91, 0x85,
1231                         0x95, 0xA9, 0xDC, 0xAA, 0xF5, 0x39, 0x2E, 0xE7,
1232                         0x17, 0xC1, 0x04, 0x7F, 0x2F, 0x08, 0xF6, 0x2B
1233                 },
1234                 .len = 64
1235         },
1236         .iv = {
1237                 .data = {
1238                         0x8E, 0xA3, 0x63, 0x8B, 0x9D, 0x40, 0x62, 0xF1,
1239                         0x69, 0x19, 0x6F, 0xF4, 0x55, 0x5A, 0xD0, 0xAF
1240                 },
1241                 .len = 16
1242         },
1243         .plaintext = {
1244                 .data = plaintext_aes256xts_48bytes,
1245                 .len = 48
1246         },
1247         .ciphertext = {
1248                 .data = ciphertext_aes256xts_48bytes,
1249                 .len = 48
1250         }
1251 };
1252
1253 /* AES-DOCSIS-BPI test vectors */
1254
1255 /* Multiple of AES block size */
1256 static const struct blockcipher_test_data aes_test_data_docsis_1 = {
1257         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
1258         .cipher_key = {
1259                 .data = {
1260                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1261                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1262                 },
1263                 .len = 16
1264         },
1265         .iv = {
1266                 .data = {
1267                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1268                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1269                 },
1270                 .len = 16
1271         },
1272         .plaintext = {
1273                 .data = plaintext_aes_common,
1274                 .len = 512
1275         },
1276         .ciphertext = {
1277                 .data = ciphertext512_aes128cbc,
1278                 .len = 512
1279         }
1280 };
1281
1282 /* Less than AES block size */
1283 static const struct blockcipher_test_data aes_test_data_docsis_2 = {
1284         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
1285         .cipher_key = {
1286                 .data = {
1287                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
1288                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
1289                 },
1290                 .len = 16
1291         },
1292         .iv = {
1293                 .data = {
1294                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
1295                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
1296                 },
1297                 .len = 16
1298         },
1299         .plaintext = {
1300                 .data = plaintext_aes_docsis_bpi_cfb,
1301                 .len = 7
1302         },
1303         .ciphertext = {
1304                 .data = ciphertext_aes_docsis_bpi_cfb,
1305                 .len = 7
1306         }
1307 };
1308
1309 /* Not multiple of AES block size */
1310 static const struct blockcipher_test_data aes_test_data_docsis_3 = {
1311         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
1312         .cipher_key = {
1313                 .data = {
1314                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
1315                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
1316                 },
1317                 .len = 16
1318         },
1319         .iv = {
1320                 .data = {
1321                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
1322                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
1323                 },
1324                 .len = 16
1325         },
1326         .plaintext = {
1327                 .data = plaintext_aes_docsis_bpi_cbc_cfb,
1328                 .len = 19
1329         },
1330         .ciphertext = {
1331                 .data = ciphertext_aes_docsis_bpi_cbc_cfb,
1332                 .len = 19
1333         }
1334 };
1335
1336 static const uint8_t
1337 cipher_aescbc_offset_16[] = {
1338         0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C,
1339         0x6F, 0x75, 0x73, 0x79, 0x20, 0x65, 0x61, 0x72,
1340         0x68, 0x2A, 0x6A, 0x82, 0xE0, 0x73, 0xC7, 0x51,
1341         0x81, 0xF4, 0x47, 0x27, 0x1A, 0xEF, 0x76, 0x15,
1342         0x1C, 0xE1, 0x38, 0x5F, 0xE1, 0x81, 0x77, 0xC7,
1343         0x8B, 0xF0, 0x69, 0xC3, 0x3C, 0x45, 0x1C, 0x0A,
1344         0xA3, 0x93, 0xBF, 0x60, 0x57, 0x88, 0xD2, 0xFF,
1345         0xE1, 0x8F, 0xC0, 0x64, 0x2C, 0x42, 0xC5, 0x22,
1346         0xE3, 0x5F, 0x71, 0x1F, 0xF7, 0x62, 0xA2, 0x7E,
1347         0x0D, 0x42, 0xD9, 0xE7, 0xF3, 0x10, 0xB0, 0xEE,
1348 };
1349
1350 /** AES-128-CBC SHA1 OOP test vector for swapping src/dst */
1351 static const struct blockcipher_test_data aes_test_data_14 = {
1352         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1353         .cipher_key = {
1354                 .data = {
1355                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1356                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1357                 },
1358                 .len = 16
1359         },
1360         .iv = {
1361                 .data = {
1362                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1363                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1364                 },
1365                 .len = 16
1366         },
1367         .plaintext = {
1368                 .data = plaintext_aes_common,
1369                 .len = 80
1370         },
1371         .cipher_offset = 16,
1372         .auth_offset = 0,
1373         .ciphertext = {
1374                 .data = cipher_aescbc_offset_16,
1375                 .len = 80
1376         },
1377         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1378         .auth_key = {
1379                 .data = {
1380                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1381                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1382                         0xDE, 0xF4, 0xDE, 0xAD
1383                 },
1384                 .len = 20
1385         },
1386         .digest = {
1387                 .data = {
1388                         0xCC, 0x15, 0x83, 0xF7, 0x23, 0x87, 0x96, 0xA7,
1389                         0x29, 0x34, 0x32, 0xE4, 0x4C, 0x06, 0xE8, 0xEB,
1390                         0x70, 0x72, 0x4B, 0xAD
1391                 },
1392                 .len = 20,
1393                 .truncated_len = 12
1394         }
1395 };
1396
1397 static const struct blockcipher_test_case aes_chain_test_cases[] = {
1398         {
1399                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1400                         "Verify OOP Offset",
1401                 .test_data = &aes_test_data_14,
1402                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1403                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1404                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1405                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1406         },
1407                 {
1408                 .test_descr = "AES-128-CTR HMAC-SHA1 Encryption Digest",
1409                 .test_data = &aes_test_data_1,
1410                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1411                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1412                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1413                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1414                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1415                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1416                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1417                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1418                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1419                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
1420         },
1421         {
1422                 .test_descr = "AES-128-CTR HMAC-SHA1 Decryption Digest "
1423                         "Verify",
1424                 .test_data = &aes_test_data_1,
1425                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1426                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1427                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1428                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1429                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1430                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1431                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1432                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1433                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1434                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
1435         },
1436         {
1437                 .test_descr = "AES-192-CTR XCBC Encryption Digest",
1438                 .test_data = &aes_test_data_2,
1439                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1440                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1441                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1442                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1443         },
1444         {
1445                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify",
1446                 .test_data = &aes_test_data_2,
1447                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1448                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1449                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1450                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1451         },
1452         {
1453                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify "
1454                                 "Scatter Gather",
1455                 .test_data = &aes_test_data_2,
1456                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1457                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1458                         BLOCKCIPHER_TEST_FEATURE_OOP,
1459                 .pmd_mask =
1460                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1461                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1462         },
1463         {
1464                 .test_descr = "AES-256-CTR HMAC-SHA1 Encryption Digest",
1465                 .test_data = &aes_test_data_3,
1466                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1467                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1468                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1469                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1470                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1471                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1472                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1473                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1474                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1475                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
1476         },
1477         {
1478                 .test_descr = "AES-256-CTR HMAC-SHA1 Decryption Digest "
1479                         "Verify",
1480                 .test_data = &aes_test_data_3,
1481                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1482                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1483                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1484                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1485                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1486                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1487                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1488                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1489                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1490                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
1491         },
1492         {
1493                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest",
1494                 .test_data = &aes_test_data_4,
1495                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1496                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1497                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1498                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1499                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1500                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1501                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1502                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1503                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1504                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1505                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1506                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1507         },
1508         {
1509                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1510                         "(short buffers)",
1511                 .test_data = &aes_test_data_13,
1512                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1513                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1514                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1515                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1516         },
1517         {
1518                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1519                                 "Scatter Gather",
1520                 .test_data = &aes_test_data_4,
1521                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1522                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1523                         BLOCKCIPHER_TEST_FEATURE_OOP,
1524                 .pmd_mask =
1525                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1526                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1527                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1528                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1529                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1530                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1531                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1532         },
1533         {
1534                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1535                         "Verify",
1536                 .test_data = &aes_test_data_4,
1537                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1538                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1539                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1540                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1541                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1542                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1543                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1544                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1545                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1546                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1547                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1548                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1549         },
1550         {
1551                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1552                         "Verify Scatter Gather",
1553                 .test_data = &aes_test_data_4,
1554                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1555                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
1556                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1557                             BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1558                             BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1559                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1560         },
1561         {
1562                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1563                         "Verify (short buffers)",
1564                 .test_data = &aes_test_data_13,
1565                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1566                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1567                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1568                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1569         },
1570         {
1571                 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest",
1572                 .test_data = &aes_test_data_5,
1573                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1574                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1575                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1576                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1577                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1578                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1579                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1580                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1581                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1582                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1583                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1584                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1585         },
1586         {
1587                 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest "
1588                         "(short buffers)",
1589                 .test_data = &aes_test_data_12,
1590                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1591                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1592                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1593                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1594         },
1595         {
1596                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1597                         "Verify",
1598                 .test_data = &aes_test_data_5,
1599                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1600                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1601                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1602                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1603                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1604                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1605                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1606                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1607                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1608                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1609                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1610         },
1611         {
1612                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1613                         "Verify (short buffers)",
1614                 .test_data = &aes_test_data_12,
1615                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1616                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1617                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1618                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1619         },
1620         {
1621                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest",
1622                 .test_data = &aes_test_data_6,
1623                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1624                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1625                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1626                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1627                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1628                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1629                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1630                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1631                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1632                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1633                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1634         },
1635         {
1636                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1637                         "Sessionless",
1638                 .test_data = &aes_test_data_6,
1639                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1640                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1641                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1642                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1643                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1644                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1645         },
1646         {
1647                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1648                                 "Scatter Gather Sessionless",
1649                 .test_data = &aes_test_data_6,
1650                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1651                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
1652                         BLOCKCIPHER_TEST_FEATURE_SG |
1653                         BLOCKCIPHER_TEST_FEATURE_OOP,
1654                 .pmd_mask =
1655                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1656                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1657         },
1658         {
1659                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1660                         "Verify",
1661                 .test_data = &aes_test_data_6,
1662                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1663                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1664                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1665                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1666                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1667                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1668                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1669                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1670                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1671                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1672                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1673         },
1674         {
1675                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1676                         "Verify Scatter Gather",
1677                 .test_data = &aes_test_data_6,
1678                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1679                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1680                         BLOCKCIPHER_TEST_FEATURE_OOP,
1681                 .pmd_mask =
1682                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1683                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1684                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1685                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1686                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1687                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1688         },
1689         {
1690                 .test_descr = "AES-128-CBC XCBC Encryption Digest",
1691                 .test_data = &aes_test_data_7,
1692                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1693                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1694                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1695                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1696         },
1697         {
1698                 .test_descr = "AES-128-CBC XCBC Decryption Digest Verify",
1699                 .test_data = &aes_test_data_7,
1700                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1701                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1702                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1703                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1704         },
1705         {
1706                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1707                         "OOP",
1708                 .test_data = &aes_test_data_4,
1709                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1710                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1711                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1712                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1713                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1714                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1715                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1716                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1717                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1718                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1719         },
1720         {
1721                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1722                         "OOP Offset",
1723                 .test_data = &aes_test_data_14,
1724                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1725                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1726                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1727                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1728         },
1729         {
1730                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1731                         "Verify OOP",
1732                 .test_data = &aes_test_data_4,
1733                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1734                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1735                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1736                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1737                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1738                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1739                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1740                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1741                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
1742                         BLOCKCIPHER_TEST_TARGET_PMD_MB
1743         },
1744         {
1745                 .test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
1746                 .test_data = &aes_test_data_8,
1747                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1748                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1749                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1750                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1751                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1752                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1753                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1754                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1755                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1756                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1757         },
1758         {
1759                 .test_descr = "AES-128-CBC HMAC-SHA224 Decryption Digest "
1760                         "Verify",
1761                 .test_data = &aes_test_data_8,
1762                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1763                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1764                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1765                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1766                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1767                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1768                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1769                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1770                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1771                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1772         },
1773         {
1774                 .test_descr = "AES-128-CBC HMAC-SHA384 Encryption Digest",
1775                 .test_data = &aes_test_data_9,
1776                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1777                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1778                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1779                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1780                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1781                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1782                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1783                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1784                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1785                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
1786         },
1787         {
1788                 .test_descr = "AES-128-CBC HMAC-SHA384 Decryption Digest "
1789                         "Verify",
1790                 .test_data = &aes_test_data_9,
1791                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1792                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1793                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1794                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1795                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1796                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1797                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1798                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1799                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1800                         BLOCKCIPHER_TEST_TARGET_PMD_CCP
1801         },
1802         {
1803                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1804                                 "Sessionless",
1805                 .test_data = &aes_test_data_4,
1806                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1807                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1808                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1809                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1810                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1811                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1812         },
1813         {
1814                 .test_descr =
1815                                 "AES-128-CBC HMAC-SHA1 Decryption Digest "
1816                                 "Verify Sessionless",
1817                 .test_data = &aes_test_data_4,
1818                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1819                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1820                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1821                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1822                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1823                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1824         },
1825 };
1826
1827 static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
1828         {
1829                 .test_descr = "AES-128-CBC Encryption",
1830                 .test_data = &aes_test_data_4,
1831                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1832                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1833                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1834                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1835                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1836                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1837                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1838                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1839                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1840                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1841                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1842                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1843         },
1844         {
1845                 .test_descr = "AES-128-CBC Decryption",
1846                 .test_data = &aes_test_data_4,
1847                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1848                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1849                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1850                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1851                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1852                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1853                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1854                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1855                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1856                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1857                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1858                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1859         },
1860         {
1861                 .test_descr = "AES-192-CBC Encryption",
1862                 .test_data = &aes_test_data_10,
1863                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1864                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1865                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1866                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1867                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1868                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1869                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1870                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1871                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1872                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1873                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1874         },
1875         {
1876                 .test_descr = "AES-192-CBC Encryption Scater gather",
1877                 .test_data = &aes_test_data_10,
1878                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1879                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1880                         BLOCKCIPHER_TEST_FEATURE_OOP,
1881                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1882                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1883                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1884                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1885                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1886         },
1887         {
1888                 .test_descr = "AES-192-CBC Decryption",
1889                 .test_data = &aes_test_data_10,
1890                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1891                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1892                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1893                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1894                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1895                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1896                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1897                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1898                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1899                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1900                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1901         },
1902         {
1903                 .test_descr = "AES-192-CBC Decryption Scatter Gather",
1904                 .test_data = &aes_test_data_10,
1905                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1906                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
1907                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1908                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1909                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1910                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1911         },
1912         {
1913                 .test_descr = "AES-256-CBC Encryption",
1914                 .test_data = &aes_test_data_11,
1915                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1916                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1917                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1918                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1919                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1920                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1921                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1922                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1923                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1924                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1925                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1926                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1927         },
1928         {
1929                 .test_descr = "AES-256-CBC Decryption",
1930                 .test_data = &aes_test_data_11,
1931                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1932                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1933                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1934                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1935                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1936                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1937                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1938                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1939                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1940                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1941                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1942                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1943         },
1944         {
1945                 .test_descr = "AES-256-CBC OOP Encryption",
1946                 .test_data = &aes_test_data_11,
1947                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1948                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1949                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1950                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1951                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1952                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1953                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1954                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1955                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1956                         BLOCKCIPHER_TEST_TARGET_PMD_MB
1957         },
1958         {
1959                 .test_descr = "AES-256-CBC OOP Decryption",
1960                 .test_data = &aes_test_data_11,
1961                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1962                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1963                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1964                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1965                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1966                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1967                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1968                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1969                         BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1970                         BLOCKCIPHER_TEST_TARGET_PMD_MB
1971         },
1972         {
1973                 .test_descr = "AES-128-CTR Encryption",
1974                 .test_data = &aes_test_data_1,
1975                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1976                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1977                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1978                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1979                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1980                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1981                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1982                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1983                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1984                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1985                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1986         },
1987         {
1988                 .test_descr = "AES-128-CTR Decryption",
1989                 .test_data = &aes_test_data_1,
1990                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1991                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1992                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1993                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1994                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1995                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1996                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1997                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1998                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1999                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2000                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
2001         },
2002         {
2003                 .test_descr = "AES-192-CTR Encryption",
2004                 .test_data = &aes_test_data_2,
2005                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2006                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2007                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2008                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2009                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2010                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2011                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2012                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2013                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2014                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
2015         },
2016         {
2017                 .test_descr = "AES-192-CTR Decryption",
2018                 .test_data = &aes_test_data_2,
2019                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2020                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2021                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2022                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2023                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2024                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2025                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2026                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2027                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2028                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
2029         },
2030         {
2031                 .test_descr = "AES-256-CTR Encryption",
2032                 .test_data = &aes_test_data_3,
2033                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2034                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2035                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2036                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2037                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2038                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2039                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2040                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2041                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2042                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2043                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
2044         },
2045         {
2046                 .test_descr = "AES-256-CTR Decryption",
2047                 .test_data = &aes_test_data_3,
2048                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2049                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
2050                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2051                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
2052                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
2053                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
2054                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
2055                         BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
2056                         BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
2057                         BLOCKCIPHER_TEST_TARGET_PMD_CCP |
2058                         BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
2059         },
2060         {
2061                 .test_descr = "AES-128-CTR Encryption (12-byte IV)",
2062                 .test_data = &aes_test_data_1_IV_12_bytes,
2063                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2064                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2065                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
2066         },
2067         {
2068                 .test_descr = "AES-192-CTR Encryption (12-byte IV)",
2069                 .test_data = &aes_test_data_2_IV_12_bytes,
2070                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2071                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2072                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
2073         },
2074         {
2075                 .test_descr = "AES-256-CTR Encryption (12-byte IV)",
2076                 .test_data = &aes_test_data_3_IV_12_bytes,
2077                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2078                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2079                             BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
2080         },
2081         {
2082                 .test_descr = "AES-128-XTS Encryption (16-byte plaintext)",
2083                 .test_data = &aes_test_data_xts_key_32_pt_16,
2084                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2085                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2086         },
2087         {
2088                 .test_descr = "AES-128-XTS Decryption (16-byte plaintext)",
2089                 .test_data = &aes_test_data_xts_key_32_pt_16,
2090                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2091                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2092         },
2093         {
2094                 .test_descr = "AES-128-XTS Encryption (32-byte plaintext)",
2095                 .test_data = &aes_test_data_xts_key_32_pt_32,
2096                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2097                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2098         },
2099         {
2100                 .test_descr = "AES-128-XTS Decryption (32-byte plaintext)",
2101                 .test_data = &aes_test_data_xts_key_32_pt_32,
2102                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2103                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2104         },
2105         {
2106                 .test_descr = "AES-256-XTS Encryption (32-byte plaintext)",
2107                 .test_data = &aes_test_data_xts_key_64_pt_32,
2108                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2109                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2110         },
2111         {
2112                 .test_descr = "AES-256-XTS Decryption (32-byte plaintext)",
2113                 .test_data = &aes_test_data_xts_key_64_pt_32,
2114                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2115                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2116         },
2117         {
2118                 .test_descr = "AES-256-XTS Encryption (48-byte plaintext)",
2119                 .test_data = &aes_test_data_xts_key_64_pt_48,
2120                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2121                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2122         },
2123         {
2124                 .test_descr = "AES-256-XTS Decryption (48-byte plaintext)",
2125                 .test_data = &aes_test_data_xts_key_64_pt_48,
2126                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2127                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2128         }
2129 };
2130
2131 static const struct blockcipher_test_case aes_docsis_test_cases[] = {
2132
2133         {
2134                 .test_descr = "AES-DOCSIS-BPI Full Block Encryption",
2135                 .test_data = &aes_test_data_docsis_1,
2136                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2137                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2138                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2139         },
2140         {
2141                 .test_descr = "AES-DOCSIS-BPI Runt Block Encryption",
2142                 .test_data = &aes_test_data_docsis_2,
2143                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2144                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2145                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2146         },
2147         {
2148                 .test_descr = "AES-DOCSIS-BPI Uneven Encryption",
2149                 .test_data = &aes_test_data_docsis_3,
2150                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2151                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2152                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2153         },
2154         {
2155                 .test_descr = "AES-DOCSIS-BPI Full Block Decryption",
2156                 .test_data = &aes_test_data_docsis_1,
2157                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2158                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2159                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2160         },
2161         {
2162                 .test_descr = "AES-DOCSIS-BPI Runt Block Decryption",
2163                 .test_data = &aes_test_data_docsis_2,
2164                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2165                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2166                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2167         },
2168         {
2169                 .test_descr = "AES-DOCSIS-BPI Uneven Decryption",
2170                 .test_data = &aes_test_data_docsis_3,
2171                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2172                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2173                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
2174         },
2175         {
2176                 .test_descr = "AES-DOCSIS-BPI OOP Full Block Encryption",
2177                 .test_data = &aes_test_data_docsis_1,
2178                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2179                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2180                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2181                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2182         },
2183         {
2184                 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Encryption",
2185                 .test_data = &aes_test_data_docsis_2,
2186                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2187                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2188                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2189                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2190         },
2191
2192         {
2193                 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Encryption",
2194                 .test_data = &aes_test_data_docsis_3,
2195                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2196                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2197                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2198                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2199         },
2200         {
2201                 .test_descr = "AES-DOCSIS-BPI OOP Full Block Decryption",
2202                 .test_data = &aes_test_data_docsis_1,
2203                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2204                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2205                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2206                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2207         },
2208         {
2209                 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Decryption",
2210                 .test_data = &aes_test_data_docsis_2,
2211                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2212                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2213                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2214                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2215         },
2216         {
2217                 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Decryption",
2218                 .test_data = &aes_test_data_docsis_3,
2219                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2220                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2221                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
2222                         BLOCKCIPHER_TEST_TARGET_PMD_MB
2223         },
2224 };
2225 #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */