1 /*
2  *   BSD LICENSE
3  *
4  *   Copyright(c) 2016 Intel Corporation. All rights reserved.
5  *
6  *   Redistribution and use in source and binary forms, with or without
7  *   modification, are permitted provided that the following conditions
8  *   are met:
9  *
10  *	 * Redistributions of source code must retain the above copyright
11  *	   notice, this list of conditions and the following disclaimer.
12  *	 * Redistributions in binary form must reproduce the above copyright
13  *	   notice, this list of conditions and the following disclaimer in
14  *	   the documentation and/or other materials provided with the
15  *	   distribution.
16  *	 * Neither the name of Intel Corporation nor the names of its
17  *	   contributors may be used to endorse or promote products derived
18  *	   from this software without specific prior written permission.
19  *
20  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
33 #ifndef TEST_CRYPTODEV_AES_TEST_VECTORS_H_
34 #define TEST_CRYPTODEV_AES_TEST_VECTORS_H_
35 
36 /* test vectors */
37 static const uint8_t plaintext_aes128ctr[] = {
38 	0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
39 	0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A,
40 	0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C,
41 	0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51,
42 	0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11,
43 	0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF,
44 	0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17,
45 	0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10
46 };
47 
48 static const uint8_t ciphertext64_aes128ctr[] = {
49 	0x87, 0x4D, 0x61, 0x91, 0xB6, 0x20, 0xE3, 0x26,
50 	0x1B, 0xEF, 0x68, 0x64, 0x99, 0x0D, 0xB6, 0xCE,
51 	0x98, 0x06, 0xF6, 0x6B, 0x79, 0x70, 0xFD, 0xFF,
52 	0x86, 0x17, 0x18, 0x7B, 0xB9, 0xFF, 0xFD, 0xFF,
53 	0x5A, 0xE4, 0xDF, 0x3E, 0xDB, 0xD5, 0xD3, 0x5E,
54 	0x5B, 0x4F, 0x09, 0x02, 0x0D, 0xB0, 0x3E, 0xAB,
55 	0x1E, 0x03, 0x1D, 0xDA, 0x2F, 0xBE, 0x03, 0xD1,
56 	0x79, 0x21, 0x70, 0xA0, 0xF3, 0x00, 0x9C, 0xEE
57 };
58 
59 static const uint8_t plaintext_aes192ctr[] = {
60 	0x01, 0x0F, 0x10, 0x1F, 0x20, 0x1C, 0x0E, 0xB8,
61 	0xFB, 0x5C, 0xCD, 0xCC, 0x1F, 0xF9, 0xAF, 0x0B,
62 	0x95, 0x03, 0x74, 0x99, 0x49, 0xE7, 0x62, 0x55,
63 	0xDA, 0xEA, 0x13, 0x20, 0x1D, 0xC6, 0xCC, 0xCC,
64 	0xD1, 0x70, 0x75, 0x47, 0x02, 0x2F, 0xFB, 0x86,
65 	0xBB, 0x6B, 0x23, 0xD2, 0xC9, 0x74, 0xD7, 0x7B,
66 	0x08, 0x03, 0x3B, 0x79, 0x39, 0xBB, 0x91, 0x29,
67 	0xDA, 0x14, 0x39, 0x8D, 0xFF, 0x81, 0x50, 0x96,
68 };
69 
70 static const uint8_t ciphertext64_aes192ctr[] = {
71 	0x4A, 0x6C, 0xC8, 0xCC, 0x96, 0x2A, 0x13, 0x84,
72 	0x1C, 0x36, 0x88, 0xE9, 0xE5, 0x94, 0x70, 0xB2,
73 	0x14, 0x5B, 0x13, 0x80, 0xEA, 0xD8, 0x8D, 0x37,
74 	0xFD, 0x70, 0xA8, 0x83, 0xE8, 0x2B, 0x88, 0x1E,
75 	0xBA, 0x94, 0x3F, 0xF6, 0xB3, 0x1F, 0xDE, 0x34,
76 	0xF3, 0x5B, 0x80, 0xE9, 0xAB, 0xF5, 0x1C, 0x29,
77 	0xB6, 0xD9, 0x76, 0x2B, 0x06, 0xC6, 0x74, 0xF1,
78 	0x59, 0x5E, 0x9E, 0xA5, 0x7B, 0x2D, 0xD7, 0xF0
79 };
80 
81 static const uint8_t plaintext_aes256ctr[] = {
82 	0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
83 	0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A,
84 	0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C,
85 	0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51,
86 	0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11,
87 	0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF,
88 	0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17,
89 	0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10
90 };
91 
92 static const uint8_t ciphertext64_aes256ctr[] = {
93 	0x60, 0x1E, 0xC3, 0x13, 0x77, 0x57, 0x89, 0xA5,
94 	0xB7, 0xA7, 0xF5, 0x04, 0xBB, 0xF3, 0xD2, 0x28,
95 	0xF4, 0x43, 0xE3, 0xCA, 0x4D, 0x62, 0xB5, 0x9A,
96 	0xCA, 0x84, 0xE9, 0x90, 0xCA, 0xCA, 0xF5, 0xC5,
97 	0x2B, 0x09, 0x30, 0xDA, 0xA2, 0x3D, 0xE9, 0x4C,
98 	0xE8, 0x70, 0x17, 0xBA, 0x2D, 0x84, 0x98, 0x8D,
99 	0xDF, 0xC9, 0xC5, 0x8D, 0xB6, 0x7A, 0xAD, 0xA6,
100 	0x13, 0xC2, 0xDD, 0x08, 0x45, 0x79, 0x41, 0xA6
101 };
102 
103 static const uint8_t plaintext_aes_common[] = {
104 	"What a lousy earth! He wondered how many people "
105 	"were destitute that same night even in his own "
106 	"prosperous country, how many homes were "
107 	"shanties, how many husbands were drunk and "
108 	"wives socked, and how many children were "
109 	"bullied, abused, or abandoned. How many "
110 	"families hungered for food they could not "
111 	"afford to buy? How many hearts were broken? How "
112 	"many suicides would take place that same night, "
113 	"how many people would go insane? How many "
114 	"cockroaches and landlords would triumph? How "
115 	"many winners were losers, successes failures, "
116 	"and rich men poor men? How many wise guys were "
117 	"stupid? How many happy endings were unhappy "
118 	"endings? How many honest men were liars, brave "
119 	"men cowards, loyal men traitors, how many "
120 	"sainted men were corrupt, how many people in "
121 	"positions of trust had sold their souls to "
122 	"bodyguards, how many had never had souls? How "
123 	"many straight-and-narrow paths were crooked "
124 	"paths? How many best families were worst "
125 	"families and how many good people were bad "
126 	"people? When you added them all up and then "
127 	"subtracted, you might be left with only the "
128 	"children, and perhaps with Albert Einstein and "
129 	"an old violinist or sculptor somewhere."
130 };
131 
132 static const uint8_t ciphertext512_aes128cbc[] = {
133 	0x8B, 0x4D, 0xDA, 0x1B, 0xCF, 0x04, 0xA0, 0x31,
134 	0xB4, 0xBF, 0xBD, 0x68, 0x43, 0x20, 0x7E, 0x76,
135 	0xB1, 0x96, 0x8B, 0xA2, 0x7C, 0xA2, 0x83, 0x9E,
136 	0x39, 0x5A, 0x2F, 0x7E, 0x92, 0xB4, 0x48, 0x1A,
137 	0x3F, 0x6B, 0x5D, 0xDF, 0x52, 0x85, 0x5F, 0x8E,
138 	0x42, 0x3C, 0xFB, 0xE9, 0x1A, 0x24, 0xD6, 0x08,
139 	0xDD, 0xFD, 0x16, 0xFB, 0xE9, 0x55, 0xEF, 0xF0,
140 	0xA0, 0x8D, 0x13, 0xAB, 0x81, 0xC6, 0x90, 0x01,
141 	0xB5, 0x18, 0x84, 0xB3, 0xF6, 0xE6, 0x11, 0x57,
142 	0xD6, 0x71, 0xC6, 0x3C, 0x3F, 0x2F, 0x33, 0xEE,
143 	0x24, 0x42, 0x6E, 0xAC, 0x0B, 0xCA, 0xEC, 0xF9,
144 	0x84, 0xF8, 0x22, 0xAA, 0x60, 0xF0, 0x32, 0xA9,
145 	0x75, 0x75, 0x3B, 0xCB, 0x70, 0x21, 0x0A, 0x8D,
146 	0x0F, 0xE0, 0xC4, 0x78, 0x2B, 0xF8, 0x97, 0xE3,
147 	0xE4, 0x26, 0x4B, 0x29, 0xDA, 0x88, 0xCD, 0x46,
148 	0xEC, 0xAA, 0xF9, 0x7F, 0xF1, 0x15, 0xEA, 0xC3,
149 	0x87, 0xE6, 0x31, 0xF2, 0xCF, 0xDE, 0x4D, 0x80,
150 	0x70, 0x91, 0x7E, 0x0C, 0xF7, 0x26, 0x3A, 0x92,
151 	0x4F, 0x18, 0x83, 0xC0, 0x8F, 0x59, 0x01, 0xA5,
152 	0x88, 0xD1, 0xDB, 0x26, 0x71, 0x27, 0x16, 0xF5,
153 	0xEE, 0x10, 0x82, 0xAC, 0x68, 0x26, 0x9B, 0xE2,
154 	0x6D, 0xD8, 0x9A, 0x80, 0xDF, 0x04, 0x31, 0xD5,
155 	0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
156 	0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
157 	0x73, 0x02, 0x42, 0xC9, 0x23, 0x18, 0x8E, 0xB4,
158 	0x6F, 0xB4, 0xA3, 0x54, 0x6E, 0x88, 0x3B, 0x62,
159 	0x7C, 0x02, 0x8D, 0x4C, 0x9F, 0xC8, 0x45, 0xF4,
160 	0xC9, 0xDE, 0x4F, 0xEB, 0x22, 0x83, 0x1B, 0xE4,
161 	0x49, 0x37, 0xE4, 0xAD, 0xE7, 0xCD, 0x21, 0x54,
162 	0xBC, 0x1C, 0xC2, 0x04, 0x97, 0xB4, 0x10, 0x61,
163 	0xF0, 0xE4, 0xEF, 0x27, 0x63, 0x3A, 0xDA, 0x91,
164 	0x41, 0x25, 0x62, 0x1C, 0x5C, 0xB6, 0x38, 0x4A,
165 	0x88, 0x71, 0x59, 0x5A, 0x8D, 0xA0, 0x09, 0xAF,
166 	0x72, 0x94, 0xD7, 0x79, 0x5C, 0x60, 0x7C, 0x8F,
167 	0x4C, 0xF5, 0xD9, 0xA1, 0x39, 0x6D, 0x81, 0x28,
168 	0xEF, 0x13, 0x28, 0xDF, 0xF5, 0x3E, 0xF7, 0x8E,
169 	0x09, 0x9C, 0x78, 0x18, 0x79, 0xB8, 0x68, 0xD7,
170 	0xA8, 0x29, 0x62, 0xAD, 0xDE, 0xE1, 0x61, 0x76,
171 	0x1B, 0x05, 0x16, 0xCD, 0xBF, 0x02, 0x8E, 0xA6,
172 	0x43, 0x6E, 0x92, 0x55, 0x4F, 0x60, 0x9C, 0x03,
173 	0xB8, 0x4F, 0xA3, 0x02, 0xAC, 0xA8, 0xA7, 0x0C,
174 	0x1E, 0xB5, 0x6B, 0xF8, 0xC8, 0x4D, 0xDE, 0xD2,
175 	0xB0, 0x29, 0x6E, 0x40, 0xE6, 0xD6, 0xC9, 0xE6,
176 	0xB9, 0x0F, 0xB6, 0x63, 0xF5, 0xAA, 0x2B, 0x96,
177 	0xA7, 0x16, 0xAC, 0x4E, 0x0A, 0x33, 0x1C, 0xA6,
178 	0xE6, 0xBD, 0x8A, 0xCF, 0x40, 0xA9, 0xB2, 0xFA,
179 	0x63, 0x27, 0xFD, 0x9B, 0xD9, 0xFC, 0xD5, 0x87,
180 	0x8D, 0x4C, 0xB6, 0xA4, 0xCB, 0xE7, 0x74, 0x55,
181 	0xF4, 0xFB, 0x41, 0x25, 0xB5, 0x4B, 0x0A, 0x1B,
182 	0xB1, 0xD6, 0xB7, 0xD9, 0x47, 0x2A, 0xC3, 0x98,
183 	0x6A, 0xC4, 0x03, 0x73, 0x1F, 0x93, 0x6E, 0x53,
184 	0x19, 0x25, 0x64, 0x15, 0x83, 0xF9, 0x73, 0x2A,
185 	0x74, 0xB4, 0x93, 0x69, 0xC4, 0x72, 0xFC, 0x26,
186 	0xA2, 0x9F, 0x43, 0x45, 0xDD, 0xB9, 0xEF, 0x36,
187 	0xC8, 0x3A, 0xCD, 0x99, 0x9B, 0x54, 0x1A, 0x36,
188 	0xC1, 0x59, 0xF8, 0x98, 0xA8, 0xCC, 0x28, 0x0D,
189 	0x73, 0x4C, 0xEE, 0x98, 0xCB, 0x7C, 0x58, 0x7E,
190 	0x20, 0x75, 0x1E, 0xB7, 0xC9, 0xF8, 0xF2, 0x0E,
191 	0x63, 0x9E, 0x05, 0x78, 0x1A, 0xB6, 0xA8, 0x7A,
192 	0xF9, 0x98, 0x6A, 0xA6, 0x46, 0x84, 0x2E, 0xF6,
193 	0x4B, 0xDC, 0x9B, 0x8F, 0x9B, 0x8F, 0xEE, 0xB4,
194 	0xAA, 0x3F, 0xEE, 0xC0, 0x37, 0x27, 0x76, 0xC7,
195 	0x95, 0xBB, 0x26, 0x74, 0x69, 0x12, 0x7F, 0xF1,
196 	0xBB, 0xFF, 0xAE, 0xB5, 0x99, 0x6E, 0xCB, 0x0C
197 };
198 
199 /* AES128-CTR-SHA1 test vector */
200 static const struct blockcipher_test_data aes_test_data_1 = {
201 	.crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
202 	.cipher_key = {
203 		.data = {
204 			0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
205 			0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
206 		},
207 		.len = 16
208 	},
209 	.iv = {
210 		.data = {
211 			0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
212 			0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
213 		},
214 		.len = 16
215 	},
216 	.plaintext = {
217 		.data = plaintext_aes128ctr,
218 		.len = 64
219 	},
220 	.ciphertext = {
221 		.data = ciphertext64_aes128ctr,
222 		.len = 64
223 	},
224 	.auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
225 	.auth_key = {
226 		.data = {
227 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
228 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
229 			0xDE, 0xF4, 0xDE, 0xAD
230 		},
231 		.len = 20
232 	},
233 	.digest = {
234 		.data = {
235 			0x9B, 0x6F, 0x0C, 0x43, 0xF5, 0xC1, 0x3E, 0xB0,
236 			0xB1, 0x70, 0xB8, 0x2B, 0x33, 0x09, 0xD2, 0xB2,
237 			0x56, 0x20, 0xFB, 0xFE
238 		},
239 		.len = 20,
240 		.truncated_len = 12
241 	}
242 };
243 
244 /** AES-192-CTR XCBC test vector */
245 static const struct blockcipher_test_data aes_test_data_2 = {
246 	.crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
247 	.cipher_key = {
248 		.data = {
249 			0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C,
250 			0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F,
251 			0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4
252 		},
253 		.len = 24
254 	},
255 	.iv = {
256 		.data = {
257 			0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
258 			0xB8, 0x7A, 0x4B, 0xED, 0x2B, 0xAF, 0xBF, 0x57
259 		},
260 		.len = 16
261 	},
262 	.plaintext = {
263 		.data = plaintext_aes192ctr,
264 		.len = 64
265 	},
266 	.ciphertext = {
267 		.data = ciphertext64_aes192ctr,
268 		.len = 64
269 	},
270 	.auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
271 	.auth_key = {
272 		.data = {
273 			0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
274 			0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
275 		},
276 		.len = 16
277 	},
278 	.digest = {
279 		.data = {
280 			0xCA, 0x33, 0xB3, 0x3B, 0x16, 0x94, 0xAA, 0x55,
281 			0x36, 0x6B, 0x45, 0x46
282 		},
283 		.len = 12,
284 		.truncated_len = 12
285 	}
286 };
287 
288 /** AES-256-CTR SHA1 test vector */
289 static const struct blockcipher_test_data aes_test_data_3 = {
290 	.crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
291 	.cipher_key = {
292 		.data = {
293 			0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE,
294 			0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81,
295 			0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7,
296 			0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4
297 		},
298 		.len = 32
299 	},
300 	.iv = {
301 		.data = {
302 			0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
303 			0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
304 		},
305 		.len = 16
306 	},
307 	.plaintext = {
308 		.data = plaintext_aes256ctr,
309 		.len = 64
310 	},
311 	.ciphertext = {
312 		.data = ciphertext64_aes256ctr,
313 		.len = 64
314 	},
315 	.auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
316 	.auth_key = {
317 		.data = {
318 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
319 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
320 			0xDE, 0xF4, 0xDE, 0xAD
321 		},
322 		.len = 20
323 	},
324 	.digest = {
325 		.data = {
326 			0x3B, 0x1A, 0x9D, 0x82, 0x35, 0xD5, 0xDD, 0x64,
327 			0xCC, 0x1B, 0xA9, 0xC0, 0xEB, 0xE9, 0x42, 0x16,
328 			0xE7, 0x87, 0xA3, 0xEF
329 		},
330 		.len = 20,
331 		.truncated_len = 12
332 	}
333 };
334 
335 /** AES-128-CBC SHA1 test vector */
336 static const struct blockcipher_test_data aes_test_data_4 = {
337 	.crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
338 	.cipher_key = {
339 		.data = {
340 			0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
341 			0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
342 		},
343 		.len = 16
344 	},
345 	.iv = {
346 		.data = {
347 			0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
348 			0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
349 		},
350 		.len = 16
351 	},
352 	.plaintext = {
353 		.data = plaintext_aes_common,
354 		.len = 512
355 	},
356 	.ciphertext = {
357 		.data = ciphertext512_aes128cbc,
358 		.len = 512
359 	},
360 	.auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
361 	.auth_key = {
362 		.data = {
363 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
364 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
365 			0xDE, 0xF4, 0xDE, 0xAD
366 		},
367 		.len = 20
368 	},
369 	.digest = {
370 		.data = {
371 			0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60,
372 			0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
373 			0x18, 0x8C, 0x1D, 0x32
374 		},
375 		.len = 20,
376 		.truncated_len = 12
377 	}
378 };
379 
380 /** AES-128-CBC SHA256 test vector */
381 static const struct blockcipher_test_data aes_test_data_5 = {
382 	.crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
383 	.cipher_key = {
384 		.data = {
385 			0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
386 			0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
387 		},
388 		.len = 16
389 	},
390 	.iv = {
391 		.data = {
392 			0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
393 			0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
394 		},
395 		.len = 16
396 	},
397 	.plaintext = {
398 		.data = plaintext_aes_common,
399 		.len = 512
400 	},
401 	.ciphertext = {
402 		.data = ciphertext512_aes128cbc,
403 		.len = 512
404 	},
405 	.auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
406 	.auth_key = {
407 		.data = {
408 			0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
409 			0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
410 			0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
411 			0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
412 		},
413 		.len = 32
414 	},
415 	.digest = {
416 		.data = {
417 			0xC8, 0x57, 0x57, 0x31, 0x03, 0xE0, 0x03, 0x55,
418 			0x07, 0xC8, 0x9E, 0x7F, 0x48, 0x9A, 0x61, 0x9A,
419 			0x68, 0xEE, 0x03, 0x0E, 0x71, 0x75, 0xC7, 0xF4,
420 			0x2E, 0x45, 0x26, 0x32, 0x7C, 0x12, 0x15, 0x15
421 		},
422 		.len = 32,
423 		.truncated_len = 16
424 	}
425 };
426 
427 /** AES-128-CBC SHA512 test vector */
428 static const struct blockcipher_test_data aes_test_data_6 = {
429 	.crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
430 	.cipher_key = {
431 		.data = {
432 			0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
433 			0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
434 		},
435 		.len = 16
436 	},
437 	.iv = {
438 		.data = {
439 			0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
440 			0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
441 		},
442 		.len = 16
443 	},
444 	.plaintext = {
445 		.data = plaintext_aes_common,
446 		.len = 512
447 	},
448 	.ciphertext = {
449 		.data = ciphertext512_aes128cbc,
450 		.len = 512
451 	},
452 	.auth_algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
453 	.auth_key = {
454 		.data = {
455 			0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
456 			0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
457 			0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
458 			0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
459 			0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
460 			0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
461 			0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
462 			0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
463 		},
464 		.len = 64
465 	},
466 	.digest = {
467 		.data = {
468 			0x5D, 0x54, 0x66, 0xC1, 0x6E, 0xBC, 0x04, 0xB8,
469 			0x46, 0xB8, 0x08, 0x6E, 0xE0, 0xF0, 0x43, 0x48,
470 			0x37, 0x96, 0x9C, 0xC6, 0x9C, 0xC2, 0x1E, 0xE8,
471 			0xF2, 0x0C, 0x0B, 0xEF, 0x86, 0xA2, 0xE3, 0x70,
472 			0x95, 0xC8, 0xB3, 0x06, 0x47, 0xA9, 0x90, 0xE8,
473 			0xA0, 0xC6, 0x72, 0x69, 0x05, 0xC0, 0x0D, 0x0E,
474 			0x21, 0x96, 0x65, 0x93, 0x74, 0x43, 0x2A, 0x1D,
475 			0x2E, 0xBF, 0xC2, 0xC2, 0xEE, 0xCC, 0x2F, 0x0A
476 		},
477 		.len = 64,
478 		.truncated_len = 32
479 	}
480 };
481 
482 /** AES-128-CBC XCBC test vector */
483 static const struct blockcipher_test_data aes_test_data_7 = {
484 	.crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
485 	.cipher_key = {
486 		.data = {
487 			0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
488 			0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
489 		},
490 		.len = 16
491 	},
492 	.iv = {
493 		.data = {
494 			0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
495 			0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
496 		},
497 		.len = 16
498 	},
499 	.plaintext = {
500 		.data = plaintext_aes_common,
501 		.len = 512
502 	},
503 	.ciphertext = {
504 		.data = ciphertext512_aes128cbc,
505 		.len = 512
506 	},
507 	.auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
508 	.auth_key = {
509 		.data = {
510 			0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
511 			0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
512 		},
513 		.len = 16
514 	},
515 	.digest = {
516 		.data = {
517 			0xE0, 0xAC, 0x9A, 0xC4, 0x22, 0x64, 0x35, 0x89,
518 			0x77, 0x1D, 0x8B, 0x75
519 		},
520 		.len = 12,
521 		.truncated_len = 12
522 	}
523 };
524 
525 /** AES-128-CBC SHA224 test vector */
526 static const struct blockcipher_test_data aes_test_data_8 = {
527 	.crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
528 	.cipher_key = {
529 		.data = {
530 			0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
531 			0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
532 		},
533 		.len = 16
534 	},
535 	.iv = {
536 		.data = {
537 			0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
538 			0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
539 		},
540 		.len = 16
541 	},
542 	.plaintext = {
543 		.data = plaintext_aes_common,
544 		.len = 512
545 	},
546 	.ciphertext = {
547 		.data = ciphertext512_aes128cbc,
548 		.len = 512
549 	},
550 	.auth_algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
551 	.auth_key = {
552 		.data = {
553 			0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
554 			0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
555 			0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
556 			0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
557 			0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
558 			0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
559 			0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
560 			0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
561 		},
562 		.len = 64
563 	},
564 	.digest = {
565 		.data = {
566 			0xA3, 0xCA, 0xC7, 0x1D, 0xA8, 0x61, 0x30, 0x98,
567 			0x3B, 0x8F, 0x01, 0x19, 0xAE, 0x8D, 0xBD, 0x34,
568 			0x40, 0x63, 0xA8, 0x2F, 0xDF, 0x85, 0x2B, 0x7F,
569 			0x63, 0x7C, 0xDD, 0xB7
570 		},
571 		.len = 28,
572 		.truncated_len = 14
573 	}
574 };
575 
576 /** AES-128-CBC SHA384 test vector */
577 static const struct blockcipher_test_data aes_test_data_9 = {
578 	.crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
579 	.cipher_key = {
580 		.data = {
581 			0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
582 			0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
583 		},
584 		.len = 16
585 	},
586 	.iv = {
587 		.data = {
588 			0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
589 			0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
590 		},
591 		.len = 16
592 	},
593 	.plaintext = {
594 		.data = plaintext_aes_common,
595 		.len = 512
596 	},
597 	.ciphertext = {
598 		.data = ciphertext512_aes128cbc,
599 		.len = 512
600 	},
601 	.auth_algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
602 	.auth_key = {
603 		.data = {
604 			0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
605 			0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
606 			0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
607 			0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
608 			0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
609 			0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
610 			0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
611 			0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60,
612 			0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
613 			0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
614 			0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
615 			0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
616 			0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
617 			0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
618 			0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
619 			0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
620 		},
621 		.len = 128
622 	},
623 	.digest = {
624 		.data = {
625 			0x23, 0x60, 0xC8, 0xB1, 0x2D, 0x6C, 0x1E, 0x72,
626 			0x25, 0xAB, 0xF9, 0xC3, 0x9A, 0xA9, 0x4F, 0x8C,
627 			0x56, 0x38, 0x65, 0x0E, 0x74, 0xD5, 0x45, 0x9D,
628 			0xA3, 0xFD, 0x7E, 0x6D, 0x9E, 0x74, 0x88, 0x9D,
629 			0xA7, 0x12, 0x9D, 0xD8, 0x81, 0x3C, 0x86, 0x2F,
630 			0x4D, 0xF9, 0x6F, 0x0A, 0xB0, 0xC9, 0xEB, 0x0B
631 		},
632 		.len = 48,
633 		.truncated_len = 24
634 	}
635 };
636 
637 static const uint8_t ciphertext512_aes192cbc[] = {
638 	0x45, 0xEE, 0x9A, 0xEA, 0x3C, 0x03, 0xFC, 0x4C,
639 	0x84, 0x36, 0xB0, 0xDA, 0xB0, 0xDC, 0xF3, 0x5B,
640 	0x75, 0xA7, 0xBE, 0x0E, 0xC0, 0x8D, 0x6C, 0xF8,
641 	0xC1, 0x0F, 0xD0, 0x35, 0x1D, 0x82, 0xAE, 0x7C,
642 	0x57, 0xC5, 0x7A, 0x55, 0x87, 0x1B, 0xD4, 0x03,
643 	0x0A, 0x64, 0xC9, 0xE0, 0xF4, 0xC7, 0x6F, 0x57,
644 	0x52, 0xC6, 0x73, 0xBA, 0x84, 0x0B, 0x5B, 0x89,
645 	0x21, 0xD2, 0x9B, 0x88, 0x68, 0xF5, 0xA9, 0x7F,
646 	0x3F, 0x49, 0xEB, 0xF4, 0xD4, 0x52, 0xD2, 0x64,
647 	0x80, 0xB2, 0x53, 0xDA, 0x19, 0xF6, 0x10, 0x24,
648 	0x23, 0x26, 0x7A, 0x7C, 0x07, 0x57, 0x4B, 0x0E,
649 	0x58, 0x49, 0x61, 0xD1, 0xDC, 0x9A, 0x32, 0x6B,
650 	0x0F, 0x43, 0x9E, 0x4D, 0xB4, 0x07, 0x4E, 0xB3,
651 	0x51, 0x74, 0xDE, 0x29, 0xBC, 0x98, 0xF9, 0xDF,
652 	0x78, 0x9A, 0x18, 0x9C, 0xD6, 0x7A, 0x55, 0x7C,
653 	0xE6, 0x1D, 0x5C, 0x1A, 0x99, 0xD2, 0xC3, 0x7B,
654 	0x9F, 0x96, 0x74, 0x2D, 0xE0, 0xEF, 0xD1, 0xE3,
655 	0x08, 0x9F, 0xAF, 0xE6, 0xED, 0xCA, 0xE1, 0xEA,
656 	0x23, 0x6F, 0x7C, 0x81, 0xA8, 0xC0, 0x5B, 0x8B,
657 	0x53, 0x90, 0x51, 0x2D, 0x0F, 0xF6, 0x7D, 0xA7,
658 	0x1C, 0xBD, 0x83, 0x84, 0x54, 0xA4, 0x15, 0xFB,
659 	0x3E, 0x25, 0xA7, 0x3A, 0x0A, 0x73, 0xD9, 0x88,
660 	0x6F, 0x80, 0x78, 0x95, 0x7F, 0x60, 0xAA, 0x86,
661 	0x8A, 0xFC, 0xDF, 0xC1, 0xCB, 0xDE, 0xBB, 0x25,
662 	0x52, 0x20, 0xC6, 0x79, 0xD4, 0x0F, 0x25, 0xE7,
663 	0xDB, 0xB2, 0x17, 0xA4, 0x6F, 0x3C, 0x6F, 0x91,
664 	0xF6, 0x44, 0x1E, 0xB6, 0x85, 0xBC, 0x7A, 0x14,
665 	0x10, 0x72, 0xBD, 0x16, 0x63, 0x39, 0x9E, 0x7B,
666 	0x84, 0x5B, 0x17, 0x61, 0xB1, 0x5D, 0x82, 0x0B,
667 	0x6D, 0x37, 0xD7, 0x79, 0xB8, 0x24, 0x91, 0x30,
668 	0x82, 0x91, 0x02, 0xB1, 0x18, 0x4B, 0xE0, 0xF4,
669 	0x13, 0x1B, 0xB2, 0x4C, 0xDA, 0xB8, 0x99, 0x96,
670 	0x83, 0x2F, 0xBE, 0x53, 0x8D, 0xDE, 0xFA, 0xAD,
671 	0xF6, 0x5C, 0xDB, 0xE5, 0x66, 0x26, 0x8F, 0x13,
672 	0x2B, 0x76, 0x47, 0x73, 0xDE, 0x1A, 0x74, 0xA6,
673 	0x30, 0xAF, 0x42, 0xA0, 0xE5, 0xD2, 0x8F, 0xC2,
674 	0xED, 0x3E, 0x9E, 0x29, 0x54, 0x3C, 0xDE, 0x9F,
675 	0x5D, 0x30, 0x2B, 0x63, 0xFB, 0xE3, 0xB1, 0x07,
676 	0xEE, 0x74, 0x4A, 0xAF, 0xB1, 0x20, 0x8D, 0xEC,
677 	0xE6, 0x78, 0x16, 0x8D, 0xA4, 0x6E, 0x34, 0x7D,
678 	0x47, 0xFB, 0x0B, 0xC1, 0x32, 0xD7, 0x0D, 0x6C,
679 	0x6F, 0x93, 0x9C, 0x5E, 0xEF, 0x1F, 0x9C, 0x45,
680 	0x80, 0x6B, 0x74, 0xA6, 0x81, 0xF2, 0xF6, 0xFA,
681 	0xAA, 0x9D, 0x4F, 0xCA, 0xB5, 0x90, 0x59, 0xB0,
682 	0x3B, 0xF2, 0xF0, 0x75, 0xFD, 0x8A, 0xD8, 0x97,
683 	0x65, 0x88, 0x56, 0x4C, 0x44, 0xDF, 0x73, 0xF7,
684 	0x56, 0x9C, 0x48, 0x7E, 0xB0, 0x1F, 0x1D, 0x7D,
685 	0x6A, 0x11, 0xF5, 0xC2, 0xF4, 0x17, 0xEF, 0x58,
686 	0xD8, 0x2A, 0xAF, 0x56, 0x2F, 0xCF, 0xEC, 0xA4,
687 	0x58, 0x8B, 0x60, 0xCE, 0xD4, 0x0F, 0x9C, 0x21,
688 	0xEC, 0x3E, 0x74, 0x7B, 0x81, 0x3D, 0x69, 0xC6,
689 	0x5E, 0x12, 0x83, 0xE9, 0xEF, 0x81, 0x58, 0x36,
690 	0x6A, 0x60, 0x0F, 0x54, 0x28, 0x11, 0xF9, 0x64,
691 	0x36, 0xAD, 0x79, 0xF5, 0x1C, 0x74, 0xD0, 0xC3,
692 	0x7B, 0x61, 0xE1, 0x92, 0xB0, 0x13, 0x91, 0x87,
693 	0x32, 0x1F, 0xF2, 0x5A, 0xDA, 0x25, 0x69, 0xEB,
694 	0xD7, 0x32, 0x7F, 0xF5, 0x23, 0x21, 0x54, 0x47,
695 	0x7B, 0x1B, 0x33, 0xB0, 0x3D, 0xF6, 0xE2, 0x7E,
696 	0x3E, 0xA2, 0x9E, 0xCA, 0x48, 0x0B, 0x4A, 0x29,
697 	0x81, 0xD4, 0x4E, 0xD5, 0x69, 0xFB, 0xCD, 0x37,
698 	0x8A, 0xC1, 0x5B, 0x50, 0xFF, 0xB5, 0x7D, 0x43,
699 	0x0F, 0xAE, 0xA6, 0xC2, 0xE5, 0x8F, 0x45, 0xB2,
700 	0x85, 0x99, 0x02, 0xA2, 0x9B, 0xBE, 0x90, 0x43,
701 	0x4F, 0x2F, 0x50, 0xE2, 0x77, 0x62, 0xD9, 0xCC
702 };
703 
704 /** AES-192-CBC test vector */
705 static const struct blockcipher_test_data aes_test_data_10 = {
706 	.crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
707 	.cipher_key = {
708 		.data = {
709 			0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
710 			0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
711 			0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
712 		},
713 		.len = 24
714 	},
715 	.iv = {
716 		.data = {
717 			0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
718 			0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
719 		},
720 		.len = 16
721 	},
722 	.plaintext = {
723 		.data = plaintext_aes_common,
724 		.len = 512
725 	},
726 	.ciphertext = {
727 		.data = ciphertext512_aes192cbc,
728 		.len = 512
729 	}
730 };
731 
732 static const uint8_t ciphertext512_aes256cbc[] = {
733 	0xF3, 0xDD, 0xF0, 0x0B, 0xFF, 0xA2, 0x6A, 0x04,
734 	0xBE, 0xDA, 0x52, 0xA6, 0xFE, 0x6B, 0xA6, 0xA7,
735 	0x48, 0x1D, 0x7D, 0x98, 0x65, 0xDB, 0xEF, 0x06,
736 	0x26, 0xB5, 0x8E, 0xEB, 0x05, 0x0E, 0x77, 0x98,
737 	0x17, 0x8E, 0xD0, 0xD4, 0x7B, 0x92, 0x8F, 0x5C,
738 	0xD0, 0x74, 0x5C, 0xA8, 0x4B, 0x54, 0xB6, 0x2F,
739 	0x83, 0x72, 0x2C, 0xFF, 0x72, 0xE9, 0xE4, 0x15,
740 	0x4C, 0x32, 0xAF, 0xC8, 0xC9, 0x89, 0x3C, 0x6E,
741 	0x31, 0xD5, 0xC0, 0x16, 0xC0, 0x31, 0x7D, 0x11,
742 	0xAB, 0xCB, 0xDE, 0xD2, 0xD6, 0xAA, 0x76, 0x5E,
743 	0xBA, 0xF6, 0xE2, 0x92, 0xCB, 0x86, 0x07, 0xFA,
744 	0xD4, 0x9E, 0x83, 0xED, 0xFD, 0xB8, 0x70, 0x54,
745 	0x6B, 0xBE, 0xEC, 0x72, 0xDD, 0x28, 0x5E, 0x95,
746 	0x78, 0xA5, 0x28, 0x43, 0x3D, 0x6D, 0xB1, 0xD9,
747 	0x69, 0x1F, 0xC9, 0x66, 0x0E, 0x32, 0x44, 0x08,
748 	0xD2, 0xAE, 0x2C, 0x43, 0xF2, 0xD0, 0x7D, 0x26,
749 	0x70, 0xE5, 0xA1, 0xCA, 0x37, 0xE9, 0x7D, 0xC7,
750 	0xA3, 0xFA, 0x81, 0x91, 0x64, 0xAA, 0x64, 0x91,
751 	0x9A, 0x95, 0x2D, 0xC9, 0xF9, 0xCE, 0xFE, 0x9F,
752 	0xC4, 0xD8, 0x81, 0xBE, 0x57, 0x84, 0xC5, 0x02,
753 	0xDB, 0x30, 0xC1, 0xD9, 0x0E, 0xA0, 0xA6, 0x00,
754 	0xD6, 0xF3, 0x52, 0x7E, 0x0D, 0x23, 0x6B, 0x2B,
755 	0x34, 0x99, 0x1F, 0x70, 0x27, 0x6D, 0x58, 0x84,
756 	0x93, 0x77, 0xB8, 0x3E, 0xF1, 0x71, 0x58, 0x42,
757 	0x8B, 0x2B, 0xC8, 0x6D, 0x05, 0x84, 0xFF, 0x4E,
758 	0x85, 0xEF, 0x4A, 0x9D, 0x91, 0x6A, 0xD5, 0xE1,
759 	0xAF, 0x01, 0xEB, 0x83, 0x8F, 0x23, 0x7C, 0x7F,
760 	0x12, 0x91, 0x05, 0xF0, 0x4E, 0xD9, 0x17, 0x62,
761 	0x75, 0xBB, 0xAC, 0x97, 0xEE, 0x3B, 0x4E, 0xC7,
762 	0xE5, 0x92, 0xF8, 0x9D, 0x4C, 0xF9, 0xEE, 0x55,
763 	0x18, 0xBB, 0xCC, 0xB4, 0xF2, 0x59, 0xB9, 0xFC,
764 	0x7A, 0x0F, 0x98, 0xD4, 0x8B, 0xFE, 0xF7, 0x83,
765 	0x46, 0xE2, 0x83, 0x33, 0x3E, 0x95, 0x8D, 0x17,
766 	0x1E, 0x85, 0xF8, 0x8C, 0x51, 0xB0, 0x6C, 0xB5,
767 	0x5E, 0x95, 0xBA, 0x4B, 0x69, 0x1B, 0x48, 0x69,
768 	0x0B, 0x8F, 0xA5, 0x18, 0x13, 0xB9, 0x77, 0xD1,
769 	0x80, 0x32, 0x32, 0x6D, 0x53, 0xA1, 0x95, 0x40,
770 	0x96, 0x8A, 0xCC, 0xA3, 0x69, 0xF8, 0x9F, 0xB5,
771 	0x8E, 0xD2, 0x68, 0x07, 0x4F, 0xA7, 0xEC, 0xF8,
772 	0x20, 0x21, 0x58, 0xF8, 0xD8, 0x9E, 0x5F, 0x40,
773 	0xBA, 0xB9, 0x76, 0x57, 0x3B, 0x17, 0xAD, 0xEE,
774 	0xCB, 0xDF, 0x07, 0xC1, 0xDF, 0x66, 0xA8, 0x0D,
775 	0xC2, 0xCE, 0x8F, 0x79, 0xC3, 0x32, 0xE0, 0x8C,
776 	0xFE, 0x5A, 0xF3, 0x55, 0x27, 0x73, 0x6F, 0xA1,
777 	0x54, 0xC6, 0xFC, 0x28, 0x9D, 0xBE, 0x97, 0xB9,
778 	0x54, 0x97, 0x72, 0x3A, 0x61, 0xAF, 0x6F, 0xDE,
779 	0xF8, 0x0E, 0xBB, 0x6B, 0x96, 0x84, 0xDD, 0x9B,
780 	0x62, 0xBA, 0x47, 0xB5, 0xC9, 0x3B, 0x4E, 0x8C,
781 	0x78, 0x2A, 0xCC, 0x0A, 0x69, 0x54, 0x25, 0x5E,
782 	0x8B, 0xAC, 0x56, 0xD9, 0xFE, 0x48, 0xBA, 0xCE,
783 	0xA9, 0xCE, 0xA6, 0x1D, 0xBF, 0x3E, 0x3C, 0x66,
784 	0x40, 0x71, 0x79, 0xAD, 0x5B, 0x26, 0xAD, 0xBE,
785 	0x58, 0x13, 0x64, 0x60, 0x7C, 0x05, 0xFC, 0xE3,
786 	0x51, 0x7A, 0xF2, 0xCC, 0x54, 0x16, 0x2C, 0xA4,
787 	0xCE, 0x5F, 0x59, 0x12, 0x77, 0xEB, 0xD9, 0x23,
788 	0xE3, 0x86, 0xFB, 0xD7, 0x48, 0x76, 0x9D, 0xE3,
789 	0x89, 0x87, 0x39, 0xFA, 0x7B, 0x21, 0x0B, 0x76,
790 	0xB2, 0xED, 0x1C, 0x27, 0x4B, 0xD5, 0x27, 0x05,
791 	0x8C, 0x7D, 0x58, 0x6C, 0xCA, 0xA5, 0x54, 0x9A,
792 	0x0F, 0xCB, 0xE9, 0x88, 0x31, 0xAD, 0x49, 0xEE,
793 	0x38, 0xFB, 0xC9, 0xFB, 0xB4, 0x7A, 0x00, 0x58,
794 	0x20, 0x32, 0xD3, 0x53, 0x5A, 0xDD, 0x74, 0x95,
795 	0x60, 0x59, 0x09, 0xAE, 0x7E, 0xEC, 0x74, 0xA3,
796 	0xB7, 0x1C, 0x6D, 0xF2, 0xAE, 0x79, 0xA4, 0x7C
797 };
798 
799 /** AES-256-CBC test vector */
800 static const struct blockcipher_test_data aes_test_data_11 = {
801 	.crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
802 	.cipher_key = {
803 		.data = {
804 			0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
805 			0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
806 			0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0,
807 			0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D
808 		},
809 		.len = 32
810 	},
811 	.iv = {
812 		.data = {
813 			0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
814 			0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
815 		},
816 		.len = 16
817 	},
818 	.plaintext = {
819 		.data = plaintext_aes_common,
820 		.len = 512
821 	},
822 	.ciphertext = {
823 		.data = ciphertext512_aes256cbc,
824 		.len = 512
825 	}
826 };
827 
828 static const struct blockcipher_test_case aes_chain_test_cases[] = {
829 	{
830 		.test_descr = "AES-128-CTR HMAC-SHA1 Encryption Digest",
831 		.test_data = &aes_test_data_1,
832 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
833 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
834 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
835 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
836 	},
837 	{
838 		.test_descr = "AES-128-CTR HMAC-SHA1 Decryption Digest "
839 			"Verify",
840 		.test_data = &aes_test_data_1,
841 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
842 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
843 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
844 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
845 	},
846 	{
847 		.test_descr = "AES-192-CTR XCBC Encryption Digest",
848 		.test_data = &aes_test_data_2,
849 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
850 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
851 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
852 	},
853 	{
854 		.test_descr = "AES-192-CTR XCBC Decryption Digest Verify",
855 		.test_data = &aes_test_data_2,
856 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
857 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
858 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
859 	},
860 	{
861 		.test_descr = "AES-256-CTR HMAC-SHA1 Encryption Digest",
862 		.test_data = &aes_test_data_3,
863 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
864 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
865 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
866 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
867 	},
868 	{
869 		.test_descr = "AES-256-CTR HMAC-SHA1 Decryption Digest "
870 			"Verify",
871 		.test_data = &aes_test_data_3,
872 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
873 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
874 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
875 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
876 	},
877 	{
878 		.test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest",
879 		.test_data = &aes_test_data_4,
880 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
881 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
882 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
883 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
884 	},
885 	{
886 		.test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
887 			"Verify",
888 		.test_data = &aes_test_data_4,
889 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
890 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
891 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
892 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
893 	},
894 	{
895 		.test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest",
896 		.test_data = &aes_test_data_5,
897 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
898 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
899 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
900 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
901 	},
902 	{
903 		.test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
904 			"Verify",
905 		.test_data = &aes_test_data_5,
906 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
907 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
908 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
909 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
910 	},
911 	{
912 		.test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest",
913 		.test_data = &aes_test_data_6,
914 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
915 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
916 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
917 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
918 	},
919 	{
920 		.test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
921 			"Sessionless",
922 		.test_data = &aes_test_data_6,
923 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
924 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
925 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
926 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
927 	},
928 	{
929 		.test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
930 			"Verify",
931 		.test_data = &aes_test_data_6,
932 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
933 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
934 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
935 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
936 	},
937 	{
938 		.test_descr = "AES-128-CBC XCBC Encryption Digest",
939 		.test_data = &aes_test_data_7,
940 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
941 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
942 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
943 	},
944 	{
945 		.test_descr = "AES-128-CBC XCBC Decryption Digest Verify",
946 		.test_data = &aes_test_data_7,
947 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
948 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
949 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
950 	},
951 	{
952 		.test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
953 			"OOP",
954 		.test_data = &aes_test_data_4,
955 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
956 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
957 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
958 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
959 	},
960 	{
961 		.test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
962 			"Verify OOP",
963 		.test_data = &aes_test_data_4,
964 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
965 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
966 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT |
967 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
968 	},
969 	{
970 		.test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
971 		.test_data = &aes_test_data_8,
972 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
973 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
974 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
975 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
976 	},
977 	{
978 		.test_descr = "AES-128-CBC HMAC-SHA224 Decryption Digest "
979 			"Verify",
980 		.test_data = &aes_test_data_8,
981 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
982 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
983 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
984 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
985 	},
986 	{
987 		.test_descr = "AES-128-CBC HMAC-SHA384 Encryption Digest",
988 		.test_data = &aes_test_data_9,
989 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
990 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
991 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
992 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
993 	},
994 	{
995 		.test_descr = "AES-128-CBC HMAC-SHA384 Decryption Digest "
996 			"Verify",
997 		.test_data = &aes_test_data_9,
998 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
999 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1000 			BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO |
1001 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
1002 	},
1003 	{
1004 		.test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1005 				"Sessionless",
1006 		.test_data = &aes_test_data_4,
1007 		.op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1008 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1009 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1010 	},
1011 	{
1012 		.test_descr =
1013 				"AES-128-CBC HMAC-SHA1 Decryption Digest "
1014 				"Verify Sessionless",
1015 		.test_data = &aes_test_data_4,
1016 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1017 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1018 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1019 	},
1020 };
1021 
1022 static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
1023 	{
1024 		.test_descr = "AES-128-CBC Encryption",
1025 		.test_data = &aes_test_data_4,
1026 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1027 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1028 	},
1029 	{
1030 		.test_descr = "AES-128-CBC Decryption",
1031 		.test_data = &aes_test_data_4,
1032 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1033 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1034 	},
1035 	{
1036 		.test_descr = "AES-192-CBC Encryption",
1037 		.test_data = &aes_test_data_10,
1038 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1039 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1040 	},
1041 	{
1042 		.test_descr = "AES-192-CBC Decryption",
1043 		.test_data = &aes_test_data_10,
1044 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1045 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1046 	},
1047 	{
1048 		.test_descr = "AES-256-CBC Encryption",
1049 		.test_data = &aes_test_data_11,
1050 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1051 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1052 	},
1053 	{
1054 		.test_descr = "AES-256-CBC Decryption",
1055 		.test_data = &aes_test_data_11,
1056 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1057 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1058 	},
1059 	{
1060 		.test_descr = "AES-128-CTR Encryption",
1061 		.test_data = &aes_test_data_1,
1062 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1063 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1064 	},
1065 	{
1066 		.test_descr = "AES-128-CTR Decryption",
1067 		.test_data = &aes_test_data_1,
1068 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1069 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1070 	},
1071 	{
1072 		.test_descr = "AES-192-CTR Encryption",
1073 		.test_data = &aes_test_data_2,
1074 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1075 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1076 	},
1077 	{
1078 		.test_descr = "AES-192-CTR Decryption",
1079 		.test_data = &aes_test_data_2,
1080 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1081 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1082 	},
1083 	{
1084 		.test_descr = "AES-256-CTR Encryption",
1085 		.test_data = &aes_test_data_3,
1086 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1087 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1088 	},
1089 	{
1090 		.test_descr = "AES-256-CTR Decryption",
1091 		.test_data = &aes_test_data_3,
1092 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1093 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_LIBCRYPTO
1094 	},
1095 };
1096 
1097 #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */
1098