]> git.proxmox.com Git - ceph.git/blob - ceph/src/dpdk/app/test/test_cryptodev_aes_test_vectors.h
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / dpdk / app / test / test_cryptodev_aes_test_vectors.h
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_OPENSSL |
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_OPENSSL |
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_OPENSSL |
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_OPENSSL |
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_OPENSSL |
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_OPENSSL |
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_OPENSSL |
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_OPENSSL |
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_OPENSSL |
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_OPENSSL
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_OPENSSL |
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_OPENSSL
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_OPENSSL
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_OPENSSL |
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_OPENSSL |
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_OPENSSL |
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_OPENSSL |
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_OPENSSL
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_OPENSSL
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_OPENSSL
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_OPENSSL
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_OPENSSL
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_OPENSSL
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_OPENSSL
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_OPENSSL
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_OPENSSL
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_OPENSSL
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_OPENSSL
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_OPENSSL
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_OPENSSL
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_OPENSSL
1094 },
1095 };
1096
1097 #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */