4 * Copyright(c) 2016 Intel Corporation. All rights reserved.
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
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
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.
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.
33 #ifndef TEST_CRYPTODEV_AES_TEST_VECTORS_H_
34 #define TEST_CRYPTODEV_AES_TEST_VECTORS_H_
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
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
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,
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
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
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
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."
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
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,
204 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
205 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
211 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
212 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
217 .data = plaintext_aes128ctr,
221 .data = ciphertext64_aes128ctr,
224 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
227 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
228 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
229 0xDE, 0xF4, 0xDE, 0xAD
235 0x9B, 0x6F, 0x0C, 0x43, 0xF5, 0xC1, 0x3E, 0xB0,
236 0xB1, 0x70, 0xB8, 0x2B, 0x33, 0x09, 0xD2, 0xB2,
237 0x56, 0x20, 0xFB, 0xFE
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,
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
257 0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
258 0xB8, 0x7A, 0x4B, 0xED, 0x2B, 0xAF, 0xBF, 0x57
263 .data = plaintext_aes192ctr,
267 .data = ciphertext64_aes192ctr,
270 .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
273 0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
274 0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
280 0xCA, 0x33, 0xB3, 0x3B, 0x16, 0x94, 0xAA, 0x55,
281 0x36, 0x6B, 0x45, 0x46
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,
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
302 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
303 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
308 .data = plaintext_aes256ctr,
312 .data = ciphertext64_aes256ctr,
315 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
318 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
319 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
320 0xDE, 0xF4, 0xDE, 0xAD
326 0x3B, 0x1A, 0x9D, 0x82, 0x35, 0xD5, 0xDD, 0x64,
327 0xCC, 0x1B, 0xA9, 0xC0, 0xEB, 0xE9, 0x42, 0x16,
328 0xE7, 0x87, 0xA3, 0xEF
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,
340 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
341 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
347 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
348 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
353 .data = plaintext_aes_common,
357 .data = ciphertext512_aes128cbc,
360 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
363 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
364 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
365 0xDE, 0xF4, 0xDE, 0xAD
371 0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60,
372 0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
373 0x18, 0x8C, 0x1D, 0x32
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,
385 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
386 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
392 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
393 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
398 .data = plaintext_aes_common,
402 .data = ciphertext512_aes128cbc,
405 .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
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
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
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,
432 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
433 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
439 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
440 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
445 .data = plaintext_aes_common,
449 .data = ciphertext512_aes128cbc,
452 .auth_algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
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
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
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,
487 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
488 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
494 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
495 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
500 .data = plaintext_aes_common,
504 .data = ciphertext512_aes128cbc,
507 .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
510 0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
511 0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
517 0xE0, 0xAC, 0x9A, 0xC4, 0x22, 0x64, 0x35, 0x89,
518 0x77, 0x1D, 0x8B, 0x75
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,
530 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
531 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
537 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
538 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
543 .data = plaintext_aes_common,
547 .data = ciphertext512_aes128cbc,
550 .auth_algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
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
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
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,
581 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
582 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
588 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
589 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
594 .data = plaintext_aes_common,
598 .data = ciphertext512_aes128cbc,
601 .auth_algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
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
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
637 static const struct blockcipher_test_case aes_chain_test_cases[] = {
639 .test_descr = "AES-128-CTR HMAC-SHA1 Encryption Digest",
640 .test_data = &aes_test_data_1,
641 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
642 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
643 BLOCKCIPHER_TEST_TARGET_PMD_QAT
646 .test_descr = "AES-128-CTR HMAC-SHA1 Decryption Digest "
648 .test_data = &aes_test_data_1,
649 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
650 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
651 BLOCKCIPHER_TEST_TARGET_PMD_QAT
654 .test_descr = "AES-192-CTR XCBC Encryption Digest",
655 .test_data = &aes_test_data_2,
656 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
657 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
658 BLOCKCIPHER_TEST_TARGET_PMD_QAT
661 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify",
662 .test_data = &aes_test_data_2,
663 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
664 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
665 BLOCKCIPHER_TEST_TARGET_PMD_QAT
668 .test_descr = "AES-256-CTR HMAC-SHA1 Encryption Digest",
669 .test_data = &aes_test_data_3,
670 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
671 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
672 BLOCKCIPHER_TEST_TARGET_PMD_QAT
675 .test_descr = "AES-256-CTR HMAC-SHA1 Decryption Digest "
677 .test_data = &aes_test_data_3,
678 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
679 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
680 BLOCKCIPHER_TEST_TARGET_PMD_QAT
683 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest",
684 .test_data = &aes_test_data_4,
685 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
686 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
687 BLOCKCIPHER_TEST_TARGET_PMD_QAT
690 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
692 .test_data = &aes_test_data_4,
693 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
694 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
695 BLOCKCIPHER_TEST_TARGET_PMD_QAT
698 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest",
699 .test_data = &aes_test_data_5,
700 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
701 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
702 BLOCKCIPHER_TEST_TARGET_PMD_QAT
705 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
707 .test_data = &aes_test_data_5,
708 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
709 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
710 BLOCKCIPHER_TEST_TARGET_PMD_QAT
713 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest",
714 .test_data = &aes_test_data_6,
715 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
716 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
717 BLOCKCIPHER_TEST_TARGET_PMD_QAT
720 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
722 .test_data = &aes_test_data_6,
723 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
724 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
725 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB
728 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
730 .test_data = &aes_test_data_6,
731 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
732 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
733 BLOCKCIPHER_TEST_TARGET_PMD_QAT
736 .test_descr = "AES-128-CBC XCBC Encryption Digest",
737 .test_data = &aes_test_data_7,
738 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
739 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
740 BLOCKCIPHER_TEST_TARGET_PMD_QAT
743 .test_descr = "AES-128-CBC XCBC Decryption Digest Verify",
744 .test_data = &aes_test_data_7,
745 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
746 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
747 BLOCKCIPHER_TEST_TARGET_PMD_QAT
750 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
752 .test_data = &aes_test_data_4,
753 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
754 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
755 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
758 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
760 .test_data = &aes_test_data_4,
761 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
762 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
763 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
766 .test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
767 .test_data = &aes_test_data_8,
768 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
769 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
770 BLOCKCIPHER_TEST_TARGET_PMD_QAT
773 .test_descr = "AES-128-CBC HMAC-SHA224 Decryption Digest "
775 .test_data = &aes_test_data_8,
776 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
777 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
778 BLOCKCIPHER_TEST_TARGET_PMD_QAT
781 .test_descr = "AES-128-CBC HMAC-SHA384 Encryption Digest",
782 .test_data = &aes_test_data_9,
783 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
784 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
785 BLOCKCIPHER_TEST_TARGET_PMD_QAT
788 .test_descr = "AES-128-CBC HMAC-SHA384 Decryption Digest "
790 .test_data = &aes_test_data_9,
791 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
792 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
793 BLOCKCIPHER_TEST_TARGET_PMD_QAT
797 #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */