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 struct blockcipher_test_case aes_chain_test_cases[] = {
1337 	{
1338 		.test_descr = "AES-128-CTR HMAC-SHA1 Encryption Digest",
1339 		.test_data = &aes_test_data_1,
1340 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1341 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1342 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1343 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1344 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1345 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1346 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1347 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1348 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1349 			BLOCKCIPHER_TEST_TARGET_PMD_CCP
1350 	},
1351 	{
1352 		.test_descr = "AES-128-CTR HMAC-SHA1 Decryption Digest "
1353 			"Verify",
1354 		.test_data = &aes_test_data_1,
1355 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1356 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1357 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1358 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1359 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1360 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1361 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1362 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1363 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1364 			BLOCKCIPHER_TEST_TARGET_PMD_CCP
1365 	},
1366 	{
1367 		.test_descr = "AES-192-CTR XCBC Encryption Digest",
1368 		.test_data = &aes_test_data_2,
1369 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1370 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1371 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1372 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1373 	},
1374 	{
1375 		.test_descr = "AES-192-CTR XCBC Decryption Digest Verify",
1376 		.test_data = &aes_test_data_2,
1377 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1378 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1379 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1380 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1381 	},
1382 	{
1383 		.test_descr = "AES-192-CTR XCBC Decryption Digest Verify "
1384 				"Scatter Gather",
1385 		.test_data = &aes_test_data_2,
1386 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1387 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1388 			BLOCKCIPHER_TEST_FEATURE_OOP,
1389 		.pmd_mask =
1390 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1391 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1392 	},
1393 	{
1394 		.test_descr = "AES-256-CTR HMAC-SHA1 Encryption Digest",
1395 		.test_data = &aes_test_data_3,
1396 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1397 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1398 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1399 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1400 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1401 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1402 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1403 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1404 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1405 			BLOCKCIPHER_TEST_TARGET_PMD_CCP
1406 	},
1407 	{
1408 		.test_descr = "AES-256-CTR HMAC-SHA1 Decryption Digest "
1409 			"Verify",
1410 		.test_data = &aes_test_data_3,
1411 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1412 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1413 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1414 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1415 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1416 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1417 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1418 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1419 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1420 			BLOCKCIPHER_TEST_TARGET_PMD_CCP
1421 	},
1422 	{
1423 		.test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest",
1424 		.test_data = &aes_test_data_4,
1425 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1426 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1427 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1428 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1429 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1430 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1431 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1432 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1433 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1434 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1435 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1436 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1437 	},
1438 	{
1439 		.test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1440 			"(short buffers)",
1441 		.test_data = &aes_test_data_13,
1442 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1443 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1444 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1445 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1446 	},
1447 	{
1448 		.test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1449 				"Scatter Gather",
1450 		.test_data = &aes_test_data_4,
1451 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1452 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1453 			BLOCKCIPHER_TEST_FEATURE_OOP,
1454 		.pmd_mask =
1455 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1456 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1457 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1458 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1459 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1460 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1461 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1462 	},
1463 	{
1464 		.test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1465 			"Verify",
1466 		.test_data = &aes_test_data_4,
1467 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1468 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1469 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1470 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1471 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1472 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1473 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1474 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1475 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1476 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1477 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1478 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1479 	},
1480 	{
1481 		.test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1482 			"Verify Scatter Gather",
1483 		.test_data = &aes_test_data_4,
1484 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1485 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
1486 		.pmd_mask = 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_OCTEONTX
1490 	},
1491 	{
1492 		.test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1493 			"Verify (short buffers)",
1494 		.test_data = &aes_test_data_13,
1495 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1496 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1497 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1498 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1499 	},
1500 	{
1501 		.test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest",
1502 		.test_data = &aes_test_data_5,
1503 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1504 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1505 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1506 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1507 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1508 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1509 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1510 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1511 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1512 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1513 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1514 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1515 	},
1516 	{
1517 		.test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest "
1518 			"(short buffers)",
1519 		.test_data = &aes_test_data_12,
1520 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1521 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1522 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1523 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1524 	},
1525 	{
1526 		.test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1527 			"Verify",
1528 		.test_data = &aes_test_data_5,
1529 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1530 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1531 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1532 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1533 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1534 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1535 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1536 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1537 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1538 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1539 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1540 	},
1541 	{
1542 		.test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1543 			"Verify (short buffers)",
1544 		.test_data = &aes_test_data_12,
1545 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1546 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1547 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1548 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1549 	},
1550 	{
1551 		.test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest",
1552 		.test_data = &aes_test_data_6,
1553 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1554 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1555 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1556 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1557 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1558 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1559 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1560 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1561 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1562 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1563 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1564 	},
1565 	{
1566 		.test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1567 			"Sessionless",
1568 		.test_data = &aes_test_data_6,
1569 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1570 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1571 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1572 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1573 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1574 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1575 	},
1576 	{
1577 		.test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1578 				"Scatter Gather Sessionless",
1579 		.test_data = &aes_test_data_6,
1580 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1581 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
1582 			BLOCKCIPHER_TEST_FEATURE_SG |
1583 			BLOCKCIPHER_TEST_FEATURE_OOP,
1584 		.pmd_mask =
1585 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1586 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1587 	},
1588 	{
1589 		.test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1590 			"Verify",
1591 		.test_data = &aes_test_data_6,
1592 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1593 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1594 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1595 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1596 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1597 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1598 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1599 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1600 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1601 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1602 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1603 	},
1604 	{
1605 		.test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1606 			"Verify Scatter Gather",
1607 		.test_data = &aes_test_data_6,
1608 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1609 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1610 			BLOCKCIPHER_TEST_FEATURE_OOP,
1611 		.pmd_mask =
1612 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1613 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1614 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1615 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1616 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1617 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1618 	},
1619 	{
1620 		.test_descr = "AES-128-CBC XCBC Encryption Digest",
1621 		.test_data = &aes_test_data_7,
1622 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1623 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1624 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1625 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1626 	},
1627 	{
1628 		.test_descr = "AES-128-CBC XCBC Decryption Digest Verify",
1629 		.test_data = &aes_test_data_7,
1630 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1631 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1632 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1633 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1634 	},
1635 	{
1636 		.test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1637 			"OOP",
1638 		.test_data = &aes_test_data_4,
1639 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1640 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1641 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1642 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1643 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1644 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1645 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1646 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1647 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1648 	},
1649 	{
1650 		.test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1651 			"Verify OOP",
1652 		.test_data = &aes_test_data_4,
1653 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1654 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1655 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1656 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1657 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1658 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1659 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1660 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1661 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1662 	},
1663 	{
1664 		.test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
1665 		.test_data = &aes_test_data_8,
1666 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1667 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1668 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1669 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1670 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1671 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1672 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1673 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1674 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1675 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1676 	},
1677 	{
1678 		.test_descr = "AES-128-CBC HMAC-SHA224 Decryption Digest "
1679 			"Verify",
1680 		.test_data = &aes_test_data_8,
1681 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1682 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1683 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1684 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1685 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1686 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1687 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1688 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1689 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1690 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1691 	},
1692 	{
1693 		.test_descr = "AES-128-CBC HMAC-SHA384 Encryption Digest",
1694 		.test_data = &aes_test_data_9,
1695 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1696 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1697 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1698 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1699 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1700 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1701 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1702 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1703 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1704 			BLOCKCIPHER_TEST_TARGET_PMD_CCP
1705 	},
1706 	{
1707 		.test_descr = "AES-128-CBC HMAC-SHA384 Decryption Digest "
1708 			"Verify",
1709 		.test_data = &aes_test_data_9,
1710 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1711 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1712 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1713 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1714 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1715 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1716 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1717 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1718 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1719 			BLOCKCIPHER_TEST_TARGET_PMD_CCP
1720 	},
1721 	{
1722 		.test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1723 				"Sessionless",
1724 		.test_data = &aes_test_data_4,
1725 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1726 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1727 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1728 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1729 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1730 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1731 	},
1732 	{
1733 		.test_descr =
1734 				"AES-128-CBC HMAC-SHA1 Decryption Digest "
1735 				"Verify Sessionless",
1736 		.test_data = &aes_test_data_4,
1737 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1738 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1739 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1740 			BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1741 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1742 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1743 	},
1744 };
1745 
1746 static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
1747 	{
1748 		.test_descr = "AES-128-CBC Encryption",
1749 		.test_data = &aes_test_data_4,
1750 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1751 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1752 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1753 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1754 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1755 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1756 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1757 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1758 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1759 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1760 			BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1761 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1762 	},
1763 	{
1764 		.test_descr = "AES-128-CBC Decryption",
1765 		.test_data = &aes_test_data_4,
1766 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1767 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1768 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1769 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1770 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1771 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1772 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1773 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1774 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1775 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1776 			BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1777 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1778 	},
1779 	{
1780 		.test_descr = "AES-192-CBC Encryption",
1781 		.test_data = &aes_test_data_10,
1782 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1783 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1784 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1785 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1786 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1787 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1788 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1789 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1790 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1791 			BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1792 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1793 	},
1794 	{
1795 		.test_descr = "AES-192-CBC Encryption Scater gather",
1796 		.test_data = &aes_test_data_10,
1797 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1798 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1799 			BLOCKCIPHER_TEST_FEATURE_OOP,
1800 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1801 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1802 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1803 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1804 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1805 	},
1806 	{
1807 		.test_descr = "AES-192-CBC Decryption",
1808 		.test_data = &aes_test_data_10,
1809 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1810 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1811 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1812 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1813 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1814 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1815 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1816 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1817 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1818 			BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1819 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1820 	},
1821 	{
1822 		.test_descr = "AES-192-CBC Decryption Scatter Gather",
1823 		.test_data = &aes_test_data_10,
1824 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1825 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
1826 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1827 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1828 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1829 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1830 	},
1831 	{
1832 		.test_descr = "AES-256-CBC Encryption",
1833 		.test_data = &aes_test_data_11,
1834 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1835 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1836 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1837 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1838 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1839 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1840 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1841 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1842 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1843 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1844 			BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1845 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1846 	},
1847 	{
1848 		.test_descr = "AES-256-CBC Decryption",
1849 		.test_data = &aes_test_data_11,
1850 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1851 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1852 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1853 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1854 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1855 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1856 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1857 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1858 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1859 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1860 			BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO |
1861 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1862 	},
1863 	{
1864 		.test_descr = "AES-256-CBC OOP Encryption",
1865 		.test_data = &aes_test_data_11,
1866 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1867 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1868 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1869 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1870 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1871 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1872 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1873 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1874 			BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO
1875 	},
1876 	{
1877 		.test_descr = "AES-256-CBC OOP Decryption",
1878 		.test_data = &aes_test_data_11,
1879 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1880 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1881 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1882 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1883 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1884 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1885 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1886 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1887 			BLOCKCIPHER_TEST_TARGET_PMD_VIRTIO
1888 	},
1889 	{
1890 		.test_descr = "AES-128-CTR Encryption",
1891 		.test_data = &aes_test_data_1,
1892 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1893 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1894 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1895 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1896 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1897 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1898 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1899 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1900 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1901 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1902 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1903 	},
1904 	{
1905 		.test_descr = "AES-128-CTR Decryption",
1906 		.test_data = &aes_test_data_1,
1907 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1908 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1909 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1910 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1911 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1912 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1913 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1914 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1915 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1916 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1917 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1918 	},
1919 	{
1920 		.test_descr = "AES-192-CTR Encryption",
1921 		.test_data = &aes_test_data_2,
1922 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1923 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1924 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1925 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1926 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1927 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1928 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1929 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1930 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1931 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1932 	},
1933 	{
1934 		.test_descr = "AES-192-CTR Decryption",
1935 		.test_data = &aes_test_data_2,
1936 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1937 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1938 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1939 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1940 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1941 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1942 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1943 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1944 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1945 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1946 	},
1947 	{
1948 		.test_descr = "AES-256-CTR Encryption",
1949 		.test_data = &aes_test_data_3,
1950 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1951 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1952 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1953 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1954 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1955 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1956 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1957 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1958 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1959 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1960 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1961 	},
1962 	{
1963 		.test_descr = "AES-256-CTR Decryption",
1964 		.test_data = &aes_test_data_3,
1965 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1966 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1967 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1968 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
1969 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1970 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1971 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1972 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
1973 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
1974 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
1975 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1976 	},
1977 	{
1978 		.test_descr = "AES-128-CTR Encryption (12-byte IV)",
1979 		.test_data = &aes_test_data_1_IV_12_bytes,
1980 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1981 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1982 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1983 	},
1984 	{
1985 		.test_descr = "AES-192-CTR Encryption (12-byte IV)",
1986 		.test_data = &aes_test_data_2_IV_12_bytes,
1987 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1988 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1989 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1990 	},
1991 	{
1992 		.test_descr = "AES-256-CTR Encryption (12-byte IV)",
1993 		.test_data = &aes_test_data_3_IV_12_bytes,
1994 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1995 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1996 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
1997 	},
1998 	{
1999 		.test_descr = "AES-128-XTS Encryption (16-byte plaintext)",
2000 		.test_data = &aes_test_data_xts_key_32_pt_16,
2001 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2002 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2003 	},
2004 	{
2005 		.test_descr = "AES-128-XTS Decryption (16-byte plaintext)",
2006 		.test_data = &aes_test_data_xts_key_32_pt_16,
2007 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2008 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2009 	},
2010 	{
2011 		.test_descr = "AES-128-XTS Encryption (32-byte plaintext)",
2012 		.test_data = &aes_test_data_xts_key_32_pt_32,
2013 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2014 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2015 	},
2016 	{
2017 		.test_descr = "AES-128-XTS Decryption (32-byte plaintext)",
2018 		.test_data = &aes_test_data_xts_key_32_pt_32,
2019 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2020 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2021 	},
2022 	{
2023 		.test_descr = "AES-256-XTS Encryption (32-byte plaintext)",
2024 		.test_data = &aes_test_data_xts_key_64_pt_32,
2025 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2026 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2027 	},
2028 	{
2029 		.test_descr = "AES-256-XTS Decryption (32-byte plaintext)",
2030 		.test_data = &aes_test_data_xts_key_64_pt_32,
2031 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2032 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2033 	},
2034 	{
2035 		.test_descr = "AES-256-XTS Encryption (48-byte plaintext)",
2036 		.test_data = &aes_test_data_xts_key_64_pt_48,
2037 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2038 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2039 	},
2040 	{
2041 		.test_descr = "AES-256-XTS Decryption (48-byte plaintext)",
2042 		.test_data = &aes_test_data_xts_key_64_pt_48,
2043 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2044 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2045 	}
2046 };
2047 
2048 static const struct blockcipher_test_case aes_docsis_test_cases[] = {
2049 
2050 	{
2051 		.test_descr = "AES-DOCSIS-BPI Full Block Encryption",
2052 		.test_data = &aes_test_data_docsis_1,
2053 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2054 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2055 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
2056 	},
2057 	{
2058 		.test_descr = "AES-DOCSIS-BPI Runt Block Encryption",
2059 		.test_data = &aes_test_data_docsis_2,
2060 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2061 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2062 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
2063 	},
2064 	{
2065 		.test_descr = "AES-DOCSIS-BPI Uneven Encryption",
2066 		.test_data = &aes_test_data_docsis_3,
2067 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2068 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2069 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
2070 	},
2071 	{
2072 		.test_descr = "AES-DOCSIS-BPI Full Block Decryption",
2073 		.test_data = &aes_test_data_docsis_1,
2074 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2075 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2076 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
2077 	},
2078 	{
2079 		.test_descr = "AES-DOCSIS-BPI Runt Block Decryption",
2080 		.test_data = &aes_test_data_docsis_2,
2081 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2082 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2083 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
2084 	},
2085 	{
2086 		.test_descr = "AES-DOCSIS-BPI Uneven Decryption",
2087 		.test_data = &aes_test_data_docsis_3,
2088 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2089 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
2090 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
2091 	},
2092 	{
2093 		.test_descr = "AES-DOCSIS-BPI OOP Full Block Encryption",
2094 		.test_data = &aes_test_data_docsis_1,
2095 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2096 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2097 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2098 	},
2099 	{
2100 		.test_descr = "AES-DOCSIS-BPI OOP Runt Block Encryption",
2101 		.test_data = &aes_test_data_docsis_2,
2102 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2103 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2104 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2105 	},
2106 	{
2107 		.test_descr = "AES-DOCSIS-BPI OOP Uneven Block Encryption",
2108 		.test_data = &aes_test_data_docsis_3,
2109 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
2110 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2111 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2112 	},
2113 	{
2114 		.test_descr = "AES-DOCSIS-BPI OOP Full Block Decryption",
2115 		.test_data = &aes_test_data_docsis_1,
2116 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2117 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2118 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2119 	},
2120 	{
2121 		.test_descr = "AES-DOCSIS-BPI OOP Runt Block Decryption",
2122 		.test_data = &aes_test_data_docsis_2,
2123 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2124 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2125 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2126 	},
2127 	{
2128 		.test_descr = "AES-DOCSIS-BPI OOP Uneven Block Decryption",
2129 		.test_data = &aes_test_data_docsis_3,
2130 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
2131 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2132 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
2133 	}
2134 };
2135 #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */
2136