New upstream version 17.11-rc3
[deb_dpdk.git] / test / test / test_cryptodev_aes_test_vectors.h
1 /*
2  *   BSD LICENSE
3  *
4  *   Copyright(c) 2016-2017 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 ciphertext64_aes128ctr_IV_12bytes[] = {
60         0x28, 0x80, 0x28, 0xC7, 0x15, 0x99, 0xC5, 0xA8,
61         0xDD, 0x53, 0xC2, 0x67, 0x1B, 0x86, 0xB8, 0x13,
62         0xAB, 0x25, 0x39, 0x7A, 0xD2, 0x1F, 0x8B, 0x4B,
63         0x94, 0x89, 0x2B, 0x65, 0xCF, 0x89, 0x1E, 0xDD,
64         0xD4, 0x7C, 0xFD, 0x8D, 0x0E, 0xCD, 0x23, 0xA4,
65         0xEB, 0x8C, 0x05, 0x58, 0x45, 0x4A, 0x63, 0x44,
66         0x11, 0x42, 0x07, 0x17, 0xB4, 0xD2, 0xCC, 0x75,
67         0xB7, 0x23, 0x99, 0xA9, 0xC5, 0x89, 0x7F, 0x66
68 };
69
70 static const uint8_t plaintext_aes_docsis_bpi_cfb[] = {
71         0x00, 0x01, 0x02, 0x88, 0xEE, 0x59, 0x7E
72 };
73
74 static const uint8_t ciphertext_aes_docsis_bpi_cfb[] = {
75         0xFC, 0x68, 0xA3, 0x55, 0x60, 0x37, 0xDC
76 };
77
78 static const uint8_t plaintext_aes_docsis_bpi_cbc_cfb[] = {
79         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
80         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x91,
81         0xD2, 0xD1, 0x9F
82 };
83
84 static const uint8_t ciphertext_aes_docsis_bpi_cbc_cfb[] = {
85         0x9D, 0xD1, 0x67, 0x4B, 0xBA, 0x61, 0x10, 0x1B,
86         0x56, 0x75, 0x64, 0x74, 0x36, 0x4F, 0x10, 0x1D,
87         0x44, 0xD4, 0x73
88 };
89
90 static const uint8_t plaintext_aes192ctr[] = {
91         0x01, 0x0F, 0x10, 0x1F, 0x20, 0x1C, 0x0E, 0xB8,
92         0xFB, 0x5C, 0xCD, 0xCC, 0x1F, 0xF9, 0xAF, 0x0B,
93         0x95, 0x03, 0x74, 0x99, 0x49, 0xE7, 0x62, 0x55,
94         0xDA, 0xEA, 0x13, 0x20, 0x1D, 0xC6, 0xCC, 0xCC,
95         0xD1, 0x70, 0x75, 0x47, 0x02, 0x2F, 0xFB, 0x86,
96         0xBB, 0x6B, 0x23, 0xD2, 0xC9, 0x74, 0xD7, 0x7B,
97         0x08, 0x03, 0x3B, 0x79, 0x39, 0xBB, 0x91, 0x29,
98         0xDA, 0x14, 0x39, 0x8D, 0xFF, 0x81, 0x50, 0x96,
99 };
100
101 static const uint8_t ciphertext64_aes192ctr[] = {
102         0x4A, 0x6C, 0xC8, 0xCC, 0x96, 0x2A, 0x13, 0x84,
103         0x1C, 0x36, 0x88, 0xE9, 0xE5, 0x94, 0x70, 0xB2,
104         0x14, 0x5B, 0x13, 0x80, 0xEA, 0xD8, 0x8D, 0x37,
105         0xFD, 0x70, 0xA8, 0x83, 0xE8, 0x2B, 0x88, 0x1E,
106         0xBA, 0x94, 0x3F, 0xF6, 0xB3, 0x1F, 0xDE, 0x34,
107         0xF3, 0x5B, 0x80, 0xE9, 0xAB, 0xF5, 0x1C, 0x29,
108         0xB6, 0xD9, 0x76, 0x2B, 0x06, 0xC6, 0x74, 0xF1,
109         0x59, 0x5E, 0x9E, 0xA5, 0x7B, 0x2D, 0xD7, 0xF0
110 };
111
112 static const uint8_t ciphertext64_aes192ctr_IV_12bytes[] = {
113         0x67, 0x65, 0xa9, 0xee, 0xfd, 0x31, 0x62, 0xfc,
114         0xad, 0xfd, 0xc7, 0x25, 0xb7, 0x25, 0x16, 0xbe,
115         0x25, 0xce, 0xc0, 0x1d, 0xda, 0xa9, 0xd3, 0xda,
116         0x1b, 0x7d, 0x68, 0x6a, 0x6f, 0x06, 0xea, 0x47,
117         0xa0, 0xe0, 0x15, 0xf4, 0xbd, 0x1b, 0x70, 0x34,
118         0xd4, 0x6d, 0x1c, 0x84, 0x17, 0x91, 0x46, 0x0c,
119         0xe8, 0xbc, 0x7a, 0xfb, 0x9f, 0x2a, 0x8f, 0xb4,
120         0xd4, 0xf3, 0x6e, 0x5b, 0x75, 0xa0, 0xce, 0x32
121 };
122
123 static const uint8_t plaintext_aes256ctr[] = {
124         0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
125         0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A,
126         0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C,
127         0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51,
128         0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11,
129         0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF,
130         0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17,
131         0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10
132 };
133
134 static const uint8_t ciphertext64_aes256ctr[] = {
135         0x60, 0x1E, 0xC3, 0x13, 0x77, 0x57, 0x89, 0xA5,
136         0xB7, 0xA7, 0xF5, 0x04, 0xBB, 0xF3, 0xD2, 0x28,
137         0xF4, 0x43, 0xE3, 0xCA, 0x4D, 0x62, 0xB5, 0x9A,
138         0xCA, 0x84, 0xE9, 0x90, 0xCA, 0xCA, 0xF5, 0xC5,
139         0x2B, 0x09, 0x30, 0xDA, 0xA2, 0x3D, 0xE9, 0x4C,
140         0xE8, 0x70, 0x17, 0xBA, 0x2D, 0x84, 0x98, 0x8D,
141         0xDF, 0xC9, 0xC5, 0x8D, 0xB6, 0x7A, 0xAD, 0xA6,
142         0x13, 0xC2, 0xDD, 0x08, 0x45, 0x79, 0x41, 0xA6
143 };
144
145 static const uint8_t ciphertext64_aes256ctr_IV_12bytes[] = {
146         0x7B, 0x7A, 0x7D, 0x83, 0x85, 0xF8, 0x81, 0xF3,
147         0x32, 0x33, 0xD9, 0xFB, 0x04, 0x73, 0xD4, 0x2F,
148         0x70, 0xDE, 0x90, 0x3E, 0xD0, 0xA9, 0x93, 0x8A,
149         0x91, 0xF3, 0xB5, 0x29, 0x4D, 0x2A, 0x74, 0xD0,
150         0xDC, 0x4E, 0x5C, 0x9B, 0x97, 0x24, 0xD8, 0x02,
151         0xFE, 0xAB, 0x38, 0xE8, 0x73, 0x51, 0x29, 0x7E,
152         0xF1, 0xF9, 0x40, 0x78, 0xB1, 0x04, 0x7A, 0x78,
153         0x61, 0x07, 0x47, 0xE6, 0x8C, 0x0F, 0xA8, 0x76
154 };
155
156 static const uint8_t plaintext_aes_common[] = {
157         "What a lousy earth! He wondered how many people "
158         "were destitute that same night even in his own "
159         "prosperous country, how many homes were "
160         "shanties, how many husbands were drunk and "
161         "wives socked, and how many children were "
162         "bullied, abused, or abandoned. How many "
163         "families hungered for food they could not "
164         "afford to buy? How many hearts were broken? How "
165         "many suicides would take place that same night, "
166         "how many people would go insane? How many "
167         "cockroaches and landlords would triumph? How "
168         "many winners were losers, successes failures, "
169         "and rich men poor men? How many wise guys were "
170         "stupid? How many happy endings were unhappy "
171         "endings? How many honest men were liars, brave "
172         "men cowards, loyal men traitors, how many "
173         "sainted men were corrupt, how many people in "
174         "positions of trust had sold their souls to "
175         "bodyguards, how many had never had souls? How "
176         "many straight-and-narrow paths were crooked "
177         "paths? How many best families were worst "
178         "families and how many good people were bad "
179         "people? When you added them all up and then "
180         "subtracted, you might be left with only the "
181         "children, and perhaps with Albert Einstein and "
182         "an old violinist or sculptor somewhere."
183 };
184
185 static const uint8_t ciphertext512_aes128cbc[] = {
186         0x8B, 0x4D, 0xDA, 0x1B, 0xCF, 0x04, 0xA0, 0x31,
187         0xB4, 0xBF, 0xBD, 0x68, 0x43, 0x20, 0x7E, 0x76,
188         0xB1, 0x96, 0x8B, 0xA2, 0x7C, 0xA2, 0x83, 0x9E,
189         0x39, 0x5A, 0x2F, 0x7E, 0x92, 0xB4, 0x48, 0x1A,
190         0x3F, 0x6B, 0x5D, 0xDF, 0x52, 0x85, 0x5F, 0x8E,
191         0x42, 0x3C, 0xFB, 0xE9, 0x1A, 0x24, 0xD6, 0x08,
192         0xDD, 0xFD, 0x16, 0xFB, 0xE9, 0x55, 0xEF, 0xF0,
193         0xA0, 0x8D, 0x13, 0xAB, 0x81, 0xC6, 0x90, 0x01,
194         0xB5, 0x18, 0x84, 0xB3, 0xF6, 0xE6, 0x11, 0x57,
195         0xD6, 0x71, 0xC6, 0x3C, 0x3F, 0x2F, 0x33, 0xEE,
196         0x24, 0x42, 0x6E, 0xAC, 0x0B, 0xCA, 0xEC, 0xF9,
197         0x84, 0xF8, 0x22, 0xAA, 0x60, 0xF0, 0x32, 0xA9,
198         0x75, 0x75, 0x3B, 0xCB, 0x70, 0x21, 0x0A, 0x8D,
199         0x0F, 0xE0, 0xC4, 0x78, 0x2B, 0xF8, 0x97, 0xE3,
200         0xE4, 0x26, 0x4B, 0x29, 0xDA, 0x88, 0xCD, 0x46,
201         0xEC, 0xAA, 0xF9, 0x7F, 0xF1, 0x15, 0xEA, 0xC3,
202         0x87, 0xE6, 0x31, 0xF2, 0xCF, 0xDE, 0x4D, 0x80,
203         0x70, 0x91, 0x7E, 0x0C, 0xF7, 0x26, 0x3A, 0x92,
204         0x4F, 0x18, 0x83, 0xC0, 0x8F, 0x59, 0x01, 0xA5,
205         0x88, 0xD1, 0xDB, 0x26, 0x71, 0x27, 0x16, 0xF5,
206         0xEE, 0x10, 0x82, 0xAC, 0x68, 0x26, 0x9B, 0xE2,
207         0x6D, 0xD8, 0x9A, 0x80, 0xDF, 0x04, 0x31, 0xD5,
208         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
209         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
210         0x73, 0x02, 0x42, 0xC9, 0x23, 0x18, 0x8E, 0xB4,
211         0x6F, 0xB4, 0xA3, 0x54, 0x6E, 0x88, 0x3B, 0x62,
212         0x7C, 0x02, 0x8D, 0x4C, 0x9F, 0xC8, 0x45, 0xF4,
213         0xC9, 0xDE, 0x4F, 0xEB, 0x22, 0x83, 0x1B, 0xE4,
214         0x49, 0x37, 0xE4, 0xAD, 0xE7, 0xCD, 0x21, 0x54,
215         0xBC, 0x1C, 0xC2, 0x04, 0x97, 0xB4, 0x10, 0x61,
216         0xF0, 0xE4, 0xEF, 0x27, 0x63, 0x3A, 0xDA, 0x91,
217         0x41, 0x25, 0x62, 0x1C, 0x5C, 0xB6, 0x38, 0x4A,
218         0x88, 0x71, 0x59, 0x5A, 0x8D, 0xA0, 0x09, 0xAF,
219         0x72, 0x94, 0xD7, 0x79, 0x5C, 0x60, 0x7C, 0x8F,
220         0x4C, 0xF5, 0xD9, 0xA1, 0x39, 0x6D, 0x81, 0x28,
221         0xEF, 0x13, 0x28, 0xDF, 0xF5, 0x3E, 0xF7, 0x8E,
222         0x09, 0x9C, 0x78, 0x18, 0x79, 0xB8, 0x68, 0xD7,
223         0xA8, 0x29, 0x62, 0xAD, 0xDE, 0xE1, 0x61, 0x76,
224         0x1B, 0x05, 0x16, 0xCD, 0xBF, 0x02, 0x8E, 0xA6,
225         0x43, 0x6E, 0x92, 0x55, 0x4F, 0x60, 0x9C, 0x03,
226         0xB8, 0x4F, 0xA3, 0x02, 0xAC, 0xA8, 0xA7, 0x0C,
227         0x1E, 0xB5, 0x6B, 0xF8, 0xC8, 0x4D, 0xDE, 0xD2,
228         0xB0, 0x29, 0x6E, 0x40, 0xE6, 0xD6, 0xC9, 0xE6,
229         0xB9, 0x0F, 0xB6, 0x63, 0xF5, 0xAA, 0x2B, 0x96,
230         0xA7, 0x16, 0xAC, 0x4E, 0x0A, 0x33, 0x1C, 0xA6,
231         0xE6, 0xBD, 0x8A, 0xCF, 0x40, 0xA9, 0xB2, 0xFA,
232         0x63, 0x27, 0xFD, 0x9B, 0xD9, 0xFC, 0xD5, 0x87,
233         0x8D, 0x4C, 0xB6, 0xA4, 0xCB, 0xE7, 0x74, 0x55,
234         0xF4, 0xFB, 0x41, 0x25, 0xB5, 0x4B, 0x0A, 0x1B,
235         0xB1, 0xD6, 0xB7, 0xD9, 0x47, 0x2A, 0xC3, 0x98,
236         0x6A, 0xC4, 0x03, 0x73, 0x1F, 0x93, 0x6E, 0x53,
237         0x19, 0x25, 0x64, 0x15, 0x83, 0xF9, 0x73, 0x2A,
238         0x74, 0xB4, 0x93, 0x69, 0xC4, 0x72, 0xFC, 0x26,
239         0xA2, 0x9F, 0x43, 0x45, 0xDD, 0xB9, 0xEF, 0x36,
240         0xC8, 0x3A, 0xCD, 0x99, 0x9B, 0x54, 0x1A, 0x36,
241         0xC1, 0x59, 0xF8, 0x98, 0xA8, 0xCC, 0x28, 0x0D,
242         0x73, 0x4C, 0xEE, 0x98, 0xCB, 0x7C, 0x58, 0x7E,
243         0x20, 0x75, 0x1E, 0xB7, 0xC9, 0xF8, 0xF2, 0x0E,
244         0x63, 0x9E, 0x05, 0x78, 0x1A, 0xB6, 0xA8, 0x7A,
245         0xF9, 0x98, 0x6A, 0xA6, 0x46, 0x84, 0x2E, 0xF6,
246         0x4B, 0xDC, 0x9B, 0x8F, 0x9B, 0x8F, 0xEE, 0xB4,
247         0xAA, 0x3F, 0xEE, 0xC0, 0x37, 0x27, 0x76, 0xC7,
248         0x95, 0xBB, 0x26, 0x74, 0x69, 0x12, 0x7F, 0xF1,
249         0xBB, 0xFF, 0xAE, 0xB5, 0x99, 0x6E, 0xCB, 0x0C
250 };
251
252 /* AES128-CTR-SHA1 test vector */
253 static const struct blockcipher_test_data aes_test_data_1 = {
254         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
255         .cipher_key = {
256                 .data = {
257                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
258                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
259                 },
260                 .len = 16
261         },
262         .iv = {
263                 .data = {
264                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
265                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
266                 },
267                 .len = 16
268         },
269         .plaintext = {
270                 .data = plaintext_aes128ctr,
271                 .len = 64
272         },
273         .ciphertext = {
274                 .data = ciphertext64_aes128ctr,
275                 .len = 64
276         },
277         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
278         .auth_key = {
279                 .data = {
280                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
281                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
282                         0xDE, 0xF4, 0xDE, 0xAD
283                 },
284                 .len = 20
285         },
286         .digest = {
287                 .data = {
288                         0x9B, 0x6F, 0x0C, 0x43, 0xF5, 0xC1, 0x3E, 0xB0,
289                         0xB1, 0x70, 0xB8, 0x2B, 0x33, 0x09, 0xD2, 0xB2,
290                         0x56, 0x20, 0xFB, 0xFE
291                 },
292                 .len = 20,
293                 .truncated_len = 12
294         }
295 };
296
297 /** AES-192-CTR XCBC test vector */
298 static const struct blockcipher_test_data aes_test_data_2 = {
299         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
300         .cipher_key = {
301                 .data = {
302                         0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C,
303                         0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F,
304                         0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4
305                 },
306                 .len = 24
307         },
308         .iv = {
309                 .data = {
310                         0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
311                         0xB8, 0x7A, 0x4B, 0xED, 0x2B, 0xAF, 0xBF, 0x57
312                 },
313                 .len = 16
314         },
315         .plaintext = {
316                 .data = plaintext_aes192ctr,
317                 .len = 64
318         },
319         .ciphertext = {
320                 .data = ciphertext64_aes192ctr,
321                 .len = 64
322         },
323         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
324         .auth_key = {
325                 .data = {
326                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
327                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
328                 },
329                 .len = 16
330         },
331         .digest = {
332                 .data = {
333                         0xCA, 0x33, 0xB3, 0x3B, 0x16, 0x94, 0xAA, 0x55,
334                         0x36, 0x6B, 0x45, 0x46
335                 },
336                 .len = 12,
337                 .truncated_len = 12
338         }
339 };
340
341 /** AES-256-CTR SHA1 test vector */
342 static const struct blockcipher_test_data aes_test_data_3 = {
343         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
344         .cipher_key = {
345                 .data = {
346                         0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE,
347                         0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81,
348                         0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7,
349                         0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4
350                 },
351                 .len = 32
352         },
353         .iv = {
354                 .data = {
355                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
356                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
357                 },
358                 .len = 16
359         },
360         .plaintext = {
361                 .data = plaintext_aes256ctr,
362                 .len = 64
363         },
364         .ciphertext = {
365                 .data = ciphertext64_aes256ctr,
366                 .len = 64
367         },
368         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
369         .auth_key = {
370                 .data = {
371                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
372                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
373                         0xDE, 0xF4, 0xDE, 0xAD
374                 },
375                 .len = 20
376         },
377         .digest = {
378                 .data = {
379                         0x3B, 0x1A, 0x9D, 0x82, 0x35, 0xD5, 0xDD, 0x64,
380                         0xCC, 0x1B, 0xA9, 0xC0, 0xEB, 0xE9, 0x42, 0x16,
381                         0xE7, 0x87, 0xA3, 0xEF
382                 },
383                 .len = 20,
384                 .truncated_len = 12
385         }
386 };
387
388 /* AES128-CTR-SHA1 test vector (12-byte IV) */
389 static const struct blockcipher_test_data aes_test_data_1_IV_12_bytes = {
390         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
391         .cipher_key = {
392                 .data = {
393                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
394                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
395                 },
396                 .len = 16
397         },
398         .iv = {
399                 .data = {
400                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
401                         0xF8, 0xF9, 0xFA, 0xFB
402                 },
403                 .len = 12
404         },
405         .plaintext = {
406                 .data = plaintext_aes128ctr,
407                 .len = 64
408         },
409         .ciphertext = {
410                 .data = ciphertext64_aes128ctr_IV_12bytes,
411                 .len = 64
412         },
413         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
414         .auth_key = {
415                 .data = {
416                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
417                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
418                         0xDE, 0xF4, 0xDE, 0xAD
419                 },
420                 .len = 20
421         },
422         .digest = {
423                 .data = {
424                         0x5C, 0x34, 0x6B, 0xE4, 0x9A, 0x7F, 0x4A, 0xC3,
425                         0x82, 0xBE, 0xA0, 0x12, 0xD1, 0xF0, 0x15, 0xFA,
426                         0xCF, 0xC8, 0x7F, 0x60
427                 },
428                 .len = 20,
429                 .truncated_len = 12
430         }
431 };
432
433 /** AES-192-CTR XCBC test vector (12-byte IV) */
434 static const struct blockcipher_test_data aes_test_data_2_IV_12_bytes = {
435         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
436         .cipher_key = {
437                 .data = {
438                         0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C,
439                         0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F,
440                         0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4
441                 },
442                 .len = 24
443         },
444         .iv = {
445                 .data = {
446                         0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
447                         0xB8, 0x7A, 0x4B, 0xED
448                 },
449                 .len = 12
450         },
451         .plaintext = {
452                 .data = plaintext_aes192ctr,
453                 .len = 64
454         },
455         .ciphertext = {
456                 .data = ciphertext64_aes192ctr_IV_12bytes,
457                 .len = 64
458         },
459         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
460         .auth_key = {
461                 .data = {
462                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
463                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
464                 },
465                 .len = 16
466         },
467         .digest = {
468                 .data = {
469                         0x0C, 0xA1, 0xA5, 0xAF, 0x3E, 0x41, 0xD2, 0xF4,
470                         0x4C, 0x4C, 0xAB, 0x13
471                 },
472                 .len = 12,
473                 .truncated_len = 12
474         }
475 };
476
477 /** AES-256-CTR SHA1 test vector (12-byte IV) */
478 static const struct blockcipher_test_data aes_test_data_3_IV_12_bytes = {
479         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
480         .cipher_key = {
481                 .data = {
482                         0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE,
483                         0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81,
484                         0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7,
485                         0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4
486                 },
487                 .len = 32
488         },
489         .iv = {
490                 .data = {
491                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
492                         0xF8, 0xF9, 0xFA, 0xFB
493                 },
494                 .len = 12
495         },
496         .plaintext = {
497                 .data = plaintext_aes256ctr,
498                 .len = 64
499         },
500         .ciphertext = {
501                 .data = ciphertext64_aes256ctr_IV_12bytes,
502                 .len = 64
503         },
504         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
505         .auth_key = {
506                 .data = {
507                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
508                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
509                         0xDE, 0xF4, 0xDE, 0xAD
510                 },
511                 .len = 20
512         },
513         .digest = {
514                 .data = {
515                         0x57, 0x9A, 0x52, 0x6E, 0x31, 0x17, 0x57, 0x49,
516                         0xE7, 0xA1, 0x88, 0x6C, 0x2E, 0x36, 0x67, 0x63,
517                         0x3F, 0x2D, 0xA3, 0xEF
518                 },
519                 .len = 20,
520                 .truncated_len = 12
521         }
522 };
523 /** AES-128-CBC SHA1 test vector */
524 static const struct blockcipher_test_data aes_test_data_4 = {
525         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
526         .cipher_key = {
527                 .data = {
528                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
529                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
530                 },
531                 .len = 16
532         },
533         .iv = {
534                 .data = {
535                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
536                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
537                 },
538                 .len = 16
539         },
540         .plaintext = {
541                 .data = plaintext_aes_common,
542                 .len = 512
543         },
544         .ciphertext = {
545                 .data = ciphertext512_aes128cbc,
546                 .len = 512
547         },
548         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
549         .auth_key = {
550                 .data = {
551                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
552                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
553                         0xDE, 0xF4, 0xDE, 0xAD
554                 },
555                 .len = 20
556         },
557         .digest = {
558                 .data = {
559                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60,
560                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
561                         0x18, 0x8C, 0x1D, 0x32
562                 },
563                 .len = 20,
564                 .truncated_len = 12
565         }
566 };
567
568 /** AES-128-CBC SHA256 test vector */
569 static const struct blockcipher_test_data aes_test_data_5 = {
570         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
571         .cipher_key = {
572                 .data = {
573                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
574                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
575                 },
576                 .len = 16
577         },
578         .iv = {
579                 .data = {
580                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
581                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
582                 },
583                 .len = 16
584         },
585         .plaintext = {
586                 .data = plaintext_aes_common,
587                 .len = 512
588         },
589         .ciphertext = {
590                 .data = ciphertext512_aes128cbc,
591                 .len = 512
592         },
593         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
594         .auth_key = {
595                 .data = {
596                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
597                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
598                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
599                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
600                 },
601                 .len = 32
602         },
603         .digest = {
604                 .data = {
605                         0xC8, 0x57, 0x57, 0x31, 0x03, 0xE0, 0x03, 0x55,
606                         0x07, 0xC8, 0x9E, 0x7F, 0x48, 0x9A, 0x61, 0x9A,
607                         0x68, 0xEE, 0x03, 0x0E, 0x71, 0x75, 0xC7, 0xF4,
608                         0x2E, 0x45, 0x26, 0x32, 0x7C, 0x12, 0x15, 0x15
609                 },
610                 .len = 32,
611                 .truncated_len = 16
612         }
613 };
614
615 /** AES-128-CBC SHA512 test vector */
616 static const struct blockcipher_test_data aes_test_data_6 = {
617         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
618         .cipher_key = {
619                 .data = {
620                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
621                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
622                 },
623                 .len = 16
624         },
625         .iv = {
626                 .data = {
627                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
628                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
629                 },
630                 .len = 16
631         },
632         .plaintext = {
633                 .data = plaintext_aes_common,
634                 .len = 512
635         },
636         .ciphertext = {
637                 .data = ciphertext512_aes128cbc,
638                 .len = 512
639         },
640         .auth_algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
641         .auth_key = {
642                 .data = {
643                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
644                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
645                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
646                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
647                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
648                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
649                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
650                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
651                 },
652                 .len = 64
653         },
654         .digest = {
655                 .data = {
656                         0x5D, 0x54, 0x66, 0xC1, 0x6E, 0xBC, 0x04, 0xB8,
657                         0x46, 0xB8, 0x08, 0x6E, 0xE0, 0xF0, 0x43, 0x48,
658                         0x37, 0x96, 0x9C, 0xC6, 0x9C, 0xC2, 0x1E, 0xE8,
659                         0xF2, 0x0C, 0x0B, 0xEF, 0x86, 0xA2, 0xE3, 0x70,
660                         0x95, 0xC8, 0xB3, 0x06, 0x47, 0xA9, 0x90, 0xE8,
661                         0xA0, 0xC6, 0x72, 0x69, 0x05, 0xC0, 0x0D, 0x0E,
662                         0x21, 0x96, 0x65, 0x93, 0x74, 0x43, 0x2A, 0x1D,
663                         0x2E, 0xBF, 0xC2, 0xC2, 0xEE, 0xCC, 0x2F, 0x0A
664                 },
665                 .len = 64,
666                 .truncated_len = 32
667         }
668 };
669
670 /** AES-128-CBC XCBC test vector */
671 static const struct blockcipher_test_data aes_test_data_7 = {
672         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
673         .cipher_key = {
674                 .data = {
675                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
676                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
677                 },
678                 .len = 16
679         },
680         .iv = {
681                 .data = {
682                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
683                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
684                 },
685                 .len = 16
686         },
687         .plaintext = {
688                 .data = plaintext_aes_common,
689                 .len = 512
690         },
691         .ciphertext = {
692                 .data = ciphertext512_aes128cbc,
693                 .len = 512
694         },
695         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
696         .auth_key = {
697                 .data = {
698                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
699                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
700                 },
701                 .len = 16
702         },
703         .digest = {
704                 .data = {
705                         0xE0, 0xAC, 0x9A, 0xC4, 0x22, 0x64, 0x35, 0x89,
706                         0x77, 0x1D, 0x8B, 0x75
707                 },
708                 .len = 12,
709                 .truncated_len = 12
710         }
711 };
712
713 /** AES-128-CBC SHA224 test vector */
714 static const struct blockcipher_test_data aes_test_data_8 = {
715         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
716         .cipher_key = {
717                 .data = {
718                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
719                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
720                 },
721                 .len = 16
722         },
723         .iv = {
724                 .data = {
725                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
726                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
727                 },
728                 .len = 16
729         },
730         .plaintext = {
731                 .data = plaintext_aes_common,
732                 .len = 512
733         },
734         .ciphertext = {
735                 .data = ciphertext512_aes128cbc,
736                 .len = 512
737         },
738         .auth_algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
739         .auth_key = {
740                 .data = {
741                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
742                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
743                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
744                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
745                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
746                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
747                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
748                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
749                 },
750                 .len = 64
751         },
752         .digest = {
753                 .data = {
754                         0xA3, 0xCA, 0xC7, 0x1D, 0xA8, 0x61, 0x30, 0x98,
755                         0x3B, 0x8F, 0x01, 0x19, 0xAE, 0x8D, 0xBD, 0x34,
756                         0x40, 0x63, 0xA8, 0x2F, 0xDF, 0x85, 0x2B, 0x7F,
757                         0x63, 0x7C, 0xDD, 0xB7
758                 },
759                 .len = 28,
760                 .truncated_len = 14
761         }
762 };
763
764 /** AES-128-CBC SHA384 test vector */
765 static const struct blockcipher_test_data aes_test_data_9 = {
766         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
767         .cipher_key = {
768                 .data = {
769                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
770                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
771                 },
772                 .len = 16
773         },
774         .iv = {
775                 .data = {
776                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
777                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
778                 },
779                 .len = 16
780         },
781         .plaintext = {
782                 .data = plaintext_aes_common,
783                 .len = 512
784         },
785         .ciphertext = {
786                 .data = ciphertext512_aes128cbc,
787                 .len = 512
788         },
789         .auth_algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
790         .auth_key = {
791                 .data = {
792                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
793                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
794                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
795                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
796                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
797                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
798                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
799                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60,
800                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
801                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
802                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
803                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
804                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
805                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
806                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
807                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
808                 },
809                 .len = 128
810         },
811         .digest = {
812                 .data = {
813                         0x23, 0x60, 0xC8, 0xB1, 0x2D, 0x6C, 0x1E, 0x72,
814                         0x25, 0xAB, 0xF9, 0xC3, 0x9A, 0xA9, 0x4F, 0x8C,
815                         0x56, 0x38, 0x65, 0x0E, 0x74, 0xD5, 0x45, 0x9D,
816                         0xA3, 0xFD, 0x7E, 0x6D, 0x9E, 0x74, 0x88, 0x9D,
817                         0xA7, 0x12, 0x9D, 0xD8, 0x81, 0x3C, 0x86, 0x2F,
818                         0x4D, 0xF9, 0x6F, 0x0A, 0xB0, 0xC9, 0xEB, 0x0B
819                 },
820                 .len = 48,
821                 .truncated_len = 24
822         }
823 };
824
825 static const uint8_t ciphertext512_aes192cbc[] = {
826         0x45, 0xEE, 0x9A, 0xEA, 0x3C, 0x03, 0xFC, 0x4C,
827         0x84, 0x36, 0xB0, 0xDA, 0xB0, 0xDC, 0xF3, 0x5B,
828         0x75, 0xA7, 0xBE, 0x0E, 0xC0, 0x8D, 0x6C, 0xF8,
829         0xC1, 0x0F, 0xD0, 0x35, 0x1D, 0x82, 0xAE, 0x7C,
830         0x57, 0xC5, 0x7A, 0x55, 0x87, 0x1B, 0xD4, 0x03,
831         0x0A, 0x64, 0xC9, 0xE0, 0xF4, 0xC7, 0x6F, 0x57,
832         0x52, 0xC6, 0x73, 0xBA, 0x84, 0x0B, 0x5B, 0x89,
833         0x21, 0xD2, 0x9B, 0x88, 0x68, 0xF5, 0xA9, 0x7F,
834         0x3F, 0x49, 0xEB, 0xF4, 0xD4, 0x52, 0xD2, 0x64,
835         0x80, 0xB2, 0x53, 0xDA, 0x19, 0xF6, 0x10, 0x24,
836         0x23, 0x26, 0x7A, 0x7C, 0x07, 0x57, 0x4B, 0x0E,
837         0x58, 0x49, 0x61, 0xD1, 0xDC, 0x9A, 0x32, 0x6B,
838         0x0F, 0x43, 0x9E, 0x4D, 0xB4, 0x07, 0x4E, 0xB3,
839         0x51, 0x74, 0xDE, 0x29, 0xBC, 0x98, 0xF9, 0xDF,
840         0x78, 0x9A, 0x18, 0x9C, 0xD6, 0x7A, 0x55, 0x7C,
841         0xE6, 0x1D, 0x5C, 0x1A, 0x99, 0xD2, 0xC3, 0x7B,
842         0x9F, 0x96, 0x74, 0x2D, 0xE0, 0xEF, 0xD1, 0xE3,
843         0x08, 0x9F, 0xAF, 0xE6, 0xED, 0xCA, 0xE1, 0xEA,
844         0x23, 0x6F, 0x7C, 0x81, 0xA8, 0xC0, 0x5B, 0x8B,
845         0x53, 0x90, 0x51, 0x2D, 0x0F, 0xF6, 0x7D, 0xA7,
846         0x1C, 0xBD, 0x83, 0x84, 0x54, 0xA4, 0x15, 0xFB,
847         0x3E, 0x25, 0xA7, 0x3A, 0x0A, 0x73, 0xD9, 0x88,
848         0x6F, 0x80, 0x78, 0x95, 0x7F, 0x60, 0xAA, 0x86,
849         0x8A, 0xFC, 0xDF, 0xC1, 0xCB, 0xDE, 0xBB, 0x25,
850         0x52, 0x20, 0xC6, 0x79, 0xD4, 0x0F, 0x25, 0xE7,
851         0xDB, 0xB2, 0x17, 0xA4, 0x6F, 0x3C, 0x6F, 0x91,
852         0xF6, 0x44, 0x1E, 0xB6, 0x85, 0xBC, 0x7A, 0x14,
853         0x10, 0x72, 0xBD, 0x16, 0x63, 0x39, 0x9E, 0x7B,
854         0x84, 0x5B, 0x17, 0x61, 0xB1, 0x5D, 0x82, 0x0B,
855         0x6D, 0x37, 0xD7, 0x79, 0xB8, 0x24, 0x91, 0x30,
856         0x82, 0x91, 0x02, 0xB1, 0x18, 0x4B, 0xE0, 0xF4,
857         0x13, 0x1B, 0xB2, 0x4C, 0xDA, 0xB8, 0x99, 0x96,
858         0x83, 0x2F, 0xBE, 0x53, 0x8D, 0xDE, 0xFA, 0xAD,
859         0xF6, 0x5C, 0xDB, 0xE5, 0x66, 0x26, 0x8F, 0x13,
860         0x2B, 0x76, 0x47, 0x73, 0xDE, 0x1A, 0x74, 0xA6,
861         0x30, 0xAF, 0x42, 0xA0, 0xE5, 0xD2, 0x8F, 0xC2,
862         0xED, 0x3E, 0x9E, 0x29, 0x54, 0x3C, 0xDE, 0x9F,
863         0x5D, 0x30, 0x2B, 0x63, 0xFB, 0xE3, 0xB1, 0x07,
864         0xEE, 0x74, 0x4A, 0xAF, 0xB1, 0x20, 0x8D, 0xEC,
865         0xE6, 0x78, 0x16, 0x8D, 0xA4, 0x6E, 0x34, 0x7D,
866         0x47, 0xFB, 0x0B, 0xC1, 0x32, 0xD7, 0x0D, 0x6C,
867         0x6F, 0x93, 0x9C, 0x5E, 0xEF, 0x1F, 0x9C, 0x45,
868         0x80, 0x6B, 0x74, 0xA6, 0x81, 0xF2, 0xF6, 0xFA,
869         0xAA, 0x9D, 0x4F, 0xCA, 0xB5, 0x90, 0x59, 0xB0,
870         0x3B, 0xF2, 0xF0, 0x75, 0xFD, 0x8A, 0xD8, 0x97,
871         0x65, 0x88, 0x56, 0x4C, 0x44, 0xDF, 0x73, 0xF7,
872         0x56, 0x9C, 0x48, 0x7E, 0xB0, 0x1F, 0x1D, 0x7D,
873         0x6A, 0x11, 0xF5, 0xC2, 0xF4, 0x17, 0xEF, 0x58,
874         0xD8, 0x2A, 0xAF, 0x56, 0x2F, 0xCF, 0xEC, 0xA4,
875         0x58, 0x8B, 0x60, 0xCE, 0xD4, 0x0F, 0x9C, 0x21,
876         0xEC, 0x3E, 0x74, 0x7B, 0x81, 0x3D, 0x69, 0xC6,
877         0x5E, 0x12, 0x83, 0xE9, 0xEF, 0x81, 0x58, 0x36,
878         0x6A, 0x60, 0x0F, 0x54, 0x28, 0x11, 0xF9, 0x64,
879         0x36, 0xAD, 0x79, 0xF5, 0x1C, 0x74, 0xD0, 0xC3,
880         0x7B, 0x61, 0xE1, 0x92, 0xB0, 0x13, 0x91, 0x87,
881         0x32, 0x1F, 0xF2, 0x5A, 0xDA, 0x25, 0x69, 0xEB,
882         0xD7, 0x32, 0x7F, 0xF5, 0x23, 0x21, 0x54, 0x47,
883         0x7B, 0x1B, 0x33, 0xB0, 0x3D, 0xF6, 0xE2, 0x7E,
884         0x3E, 0xA2, 0x9E, 0xCA, 0x48, 0x0B, 0x4A, 0x29,
885         0x81, 0xD4, 0x4E, 0xD5, 0x69, 0xFB, 0xCD, 0x37,
886         0x8A, 0xC1, 0x5B, 0x50, 0xFF, 0xB5, 0x7D, 0x43,
887         0x0F, 0xAE, 0xA6, 0xC2, 0xE5, 0x8F, 0x45, 0xB2,
888         0x85, 0x99, 0x02, 0xA2, 0x9B, 0xBE, 0x90, 0x43,
889         0x4F, 0x2F, 0x50, 0xE2, 0x77, 0x62, 0xD9, 0xCC
890 };
891
892 /** AES-192-CBC test vector */
893 static const struct blockcipher_test_data aes_test_data_10 = {
894         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
895         .cipher_key = {
896                 .data = {
897                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
898                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
899                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
900                 },
901                 .len = 24
902         },
903         .iv = {
904                 .data = {
905                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
906                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
907                 },
908                 .len = 16
909         },
910         .plaintext = {
911                 .data = plaintext_aes_common,
912                 .len = 512
913         },
914         .ciphertext = {
915                 .data = ciphertext512_aes192cbc,
916                 .len = 512
917         }
918 };
919
920 static const uint8_t ciphertext512_aes256cbc[] = {
921         0xF3, 0xDD, 0xF0, 0x0B, 0xFF, 0xA2, 0x6A, 0x04,
922         0xBE, 0xDA, 0x52, 0xA6, 0xFE, 0x6B, 0xA6, 0xA7,
923         0x48, 0x1D, 0x7D, 0x98, 0x65, 0xDB, 0xEF, 0x06,
924         0x26, 0xB5, 0x8E, 0xEB, 0x05, 0x0E, 0x77, 0x98,
925         0x17, 0x8E, 0xD0, 0xD4, 0x7B, 0x92, 0x8F, 0x5C,
926         0xD0, 0x74, 0x5C, 0xA8, 0x4B, 0x54, 0xB6, 0x2F,
927         0x83, 0x72, 0x2C, 0xFF, 0x72, 0xE9, 0xE4, 0x15,
928         0x4C, 0x32, 0xAF, 0xC8, 0xC9, 0x89, 0x3C, 0x6E,
929         0x31, 0xD5, 0xC0, 0x16, 0xC0, 0x31, 0x7D, 0x11,
930         0xAB, 0xCB, 0xDE, 0xD2, 0xD6, 0xAA, 0x76, 0x5E,
931         0xBA, 0xF6, 0xE2, 0x92, 0xCB, 0x86, 0x07, 0xFA,
932         0xD4, 0x9E, 0x83, 0xED, 0xFD, 0xB8, 0x70, 0x54,
933         0x6B, 0xBE, 0xEC, 0x72, 0xDD, 0x28, 0x5E, 0x95,
934         0x78, 0xA5, 0x28, 0x43, 0x3D, 0x6D, 0xB1, 0xD9,
935         0x69, 0x1F, 0xC9, 0x66, 0x0E, 0x32, 0x44, 0x08,
936         0xD2, 0xAE, 0x2C, 0x43, 0xF2, 0xD0, 0x7D, 0x26,
937         0x70, 0xE5, 0xA1, 0xCA, 0x37, 0xE9, 0x7D, 0xC7,
938         0xA3, 0xFA, 0x81, 0x91, 0x64, 0xAA, 0x64, 0x91,
939         0x9A, 0x95, 0x2D, 0xC9, 0xF9, 0xCE, 0xFE, 0x9F,
940         0xC4, 0xD8, 0x81, 0xBE, 0x57, 0x84, 0xC5, 0x02,
941         0xDB, 0x30, 0xC1, 0xD9, 0x0E, 0xA0, 0xA6, 0x00,
942         0xD6, 0xF3, 0x52, 0x7E, 0x0D, 0x23, 0x6B, 0x2B,
943         0x34, 0x99, 0x1F, 0x70, 0x27, 0x6D, 0x58, 0x84,
944         0x93, 0x77, 0xB8, 0x3E, 0xF1, 0x71, 0x58, 0x42,
945         0x8B, 0x2B, 0xC8, 0x6D, 0x05, 0x84, 0xFF, 0x4E,
946         0x85, 0xEF, 0x4A, 0x9D, 0x91, 0x6A, 0xD5, 0xE1,
947         0xAF, 0x01, 0xEB, 0x83, 0x8F, 0x23, 0x7C, 0x7F,
948         0x12, 0x91, 0x05, 0xF0, 0x4E, 0xD9, 0x17, 0x62,
949         0x75, 0xBB, 0xAC, 0x97, 0xEE, 0x3B, 0x4E, 0xC7,
950         0xE5, 0x92, 0xF8, 0x9D, 0x4C, 0xF9, 0xEE, 0x55,
951         0x18, 0xBB, 0xCC, 0xB4, 0xF2, 0x59, 0xB9, 0xFC,
952         0x7A, 0x0F, 0x98, 0xD4, 0x8B, 0xFE, 0xF7, 0x83,
953         0x46, 0xE2, 0x83, 0x33, 0x3E, 0x95, 0x8D, 0x17,
954         0x1E, 0x85, 0xF8, 0x8C, 0x51, 0xB0, 0x6C, 0xB5,
955         0x5E, 0x95, 0xBA, 0x4B, 0x69, 0x1B, 0x48, 0x69,
956         0x0B, 0x8F, 0xA5, 0x18, 0x13, 0xB9, 0x77, 0xD1,
957         0x80, 0x32, 0x32, 0x6D, 0x53, 0xA1, 0x95, 0x40,
958         0x96, 0x8A, 0xCC, 0xA3, 0x69, 0xF8, 0x9F, 0xB5,
959         0x8E, 0xD2, 0x68, 0x07, 0x4F, 0xA7, 0xEC, 0xF8,
960         0x20, 0x21, 0x58, 0xF8, 0xD8, 0x9E, 0x5F, 0x40,
961         0xBA, 0xB9, 0x76, 0x57, 0x3B, 0x17, 0xAD, 0xEE,
962         0xCB, 0xDF, 0x07, 0xC1, 0xDF, 0x66, 0xA8, 0x0D,
963         0xC2, 0xCE, 0x8F, 0x79, 0xC3, 0x32, 0xE0, 0x8C,
964         0xFE, 0x5A, 0xF3, 0x55, 0x27, 0x73, 0x6F, 0xA1,
965         0x54, 0xC6, 0xFC, 0x28, 0x9D, 0xBE, 0x97, 0xB9,
966         0x54, 0x97, 0x72, 0x3A, 0x61, 0xAF, 0x6F, 0xDE,
967         0xF8, 0x0E, 0xBB, 0x6B, 0x96, 0x84, 0xDD, 0x9B,
968         0x62, 0xBA, 0x47, 0xB5, 0xC9, 0x3B, 0x4E, 0x8C,
969         0x78, 0x2A, 0xCC, 0x0A, 0x69, 0x54, 0x25, 0x5E,
970         0x8B, 0xAC, 0x56, 0xD9, 0xFE, 0x48, 0xBA, 0xCE,
971         0xA9, 0xCE, 0xA6, 0x1D, 0xBF, 0x3E, 0x3C, 0x66,
972         0x40, 0x71, 0x79, 0xAD, 0x5B, 0x26, 0xAD, 0xBE,
973         0x58, 0x13, 0x64, 0x60, 0x7C, 0x05, 0xFC, 0xE3,
974         0x51, 0x7A, 0xF2, 0xCC, 0x54, 0x16, 0x2C, 0xA4,
975         0xCE, 0x5F, 0x59, 0x12, 0x77, 0xEB, 0xD9, 0x23,
976         0xE3, 0x86, 0xFB, 0xD7, 0x48, 0x76, 0x9D, 0xE3,
977         0x89, 0x87, 0x39, 0xFA, 0x7B, 0x21, 0x0B, 0x76,
978         0xB2, 0xED, 0x1C, 0x27, 0x4B, 0xD5, 0x27, 0x05,
979         0x8C, 0x7D, 0x58, 0x6C, 0xCA, 0xA5, 0x54, 0x9A,
980         0x0F, 0xCB, 0xE9, 0x88, 0x31, 0xAD, 0x49, 0xEE,
981         0x38, 0xFB, 0xC9, 0xFB, 0xB4, 0x7A, 0x00, 0x58,
982         0x20, 0x32, 0xD3, 0x53, 0x5A, 0xDD, 0x74, 0x95,
983         0x60, 0x59, 0x09, 0xAE, 0x7E, 0xEC, 0x74, 0xA3,
984         0xB7, 0x1C, 0x6D, 0xF2, 0xAE, 0x79, 0xA4, 0x7C
985 };
986
987 /** AES-256-CBC test vector */
988 static const struct blockcipher_test_data aes_test_data_11 = {
989         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
990         .cipher_key = {
991                 .data = {
992                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
993                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
994                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0,
995                         0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D
996                 },
997                 .len = 32
998         },
999         .iv = {
1000                 .data = {
1001                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1002                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1003                 },
1004                 .len = 16
1005         },
1006         .plaintext = {
1007                 .data = plaintext_aes_common,
1008                 .len = 512
1009         },
1010         .ciphertext = {
1011                 .data = ciphertext512_aes256cbc,
1012                 .len = 512
1013         }
1014 };
1015
1016 /** AES-128-CBC SHA256 HMAC test vector (160 bytes) */
1017 static const struct blockcipher_test_data aes_test_data_12 = {
1018         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1019         .cipher_key = {
1020                 .data = {
1021                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1022                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1023                 },
1024                 .len = 16
1025         },
1026         .iv = {
1027                 .data = {
1028                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1029                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1030                 },
1031                 .len = 16
1032         },
1033         .plaintext = {
1034                 .data = plaintext_aes_common,
1035                 .len = 160
1036         },
1037         .ciphertext = {
1038                 .data = ciphertext512_aes128cbc,
1039                 .len = 160
1040         },
1041         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
1042         .auth_key = {
1043                 .data = {
1044                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
1045                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
1046                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
1047                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
1048                 },
1049                 .len = 32
1050         },
1051         .digest = {
1052                 .data = {
1053                         0x92, 0xEC, 0x65, 0x9A, 0x52, 0xCC, 0x50, 0xA5,
1054                         0xEE, 0x0E, 0xDF, 0x1E, 0xA4, 0xC9, 0xC1, 0x04,
1055                         0xD5, 0xDC, 0x78, 0x90, 0xF4, 0xE3, 0x35, 0x62,
1056                         0xAD, 0x95, 0x45, 0x28, 0x5C, 0xF8, 0x8C, 0x0B
1057                 },
1058                 .len = 32,
1059                 .truncated_len = 16
1060         }
1061 };
1062
1063 /** AES-128-CBC SHA1 HMAC test vector (160 bytes) */
1064 static const struct blockcipher_test_data aes_test_data_13 = {
1065         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1066         .cipher_key = {
1067                 .data = {
1068                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1069                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1070                 },
1071                 .len = 16
1072         },
1073         .iv = {
1074                 .data = {
1075                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1076                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1077                 },
1078                 .len = 16
1079         },
1080         .plaintext = {
1081                 .data = plaintext_aes_common,
1082                 .len = 160
1083         },
1084         .ciphertext = {
1085                 .data = ciphertext512_aes128cbc,
1086                 .len = 160
1087         },
1088         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1089         .auth_key = {
1090                 .data = {
1091                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1092                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1093                         0xDE, 0xF4, 0xDE, 0xAD
1094                 },
1095                 .len = 20
1096         },
1097         .digest = {
1098                 .data = {
1099                         0x4F, 0x16, 0xEA, 0xF7, 0x4A, 0x88, 0xD3, 0xE0,
1100                         0x0E, 0x12, 0x8B, 0xE7, 0x05, 0xD0, 0x86, 0x48,
1101                         0x22, 0x43, 0x30, 0xA7
1102                 },
1103                 .len = 20,
1104                 .truncated_len = 12
1105         }
1106 };
1107
1108 /* AES-DOCSIS-BPI test vectors */
1109
1110 /* Multiple of AES block size */
1111 static const struct blockcipher_test_data aes_test_data_docsis_1 = {
1112         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
1113         .cipher_key = {
1114                 .data = {
1115                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1116                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1117                 },
1118                 .len = 16
1119         },
1120         .iv = {
1121                 .data = {
1122                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1123                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1124                 },
1125                 .len = 16
1126         },
1127         .plaintext = {
1128                 .data = plaintext_aes_common,
1129                 .len = 512
1130         },
1131         .ciphertext = {
1132                 .data = ciphertext512_aes128cbc,
1133                 .len = 512
1134         }
1135 };
1136
1137 /* Less than AES block size */
1138 static const struct blockcipher_test_data aes_test_data_docsis_2 = {
1139         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
1140         .cipher_key = {
1141                 .data = {
1142                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
1143                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
1144                 },
1145                 .len = 16
1146         },
1147         .iv = {
1148                 .data = {
1149                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
1150                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
1151                 },
1152                 .len = 16
1153         },
1154         .plaintext = {
1155                 .data = plaintext_aes_docsis_bpi_cfb,
1156                 .len = 7
1157         },
1158         .ciphertext = {
1159                 .data = ciphertext_aes_docsis_bpi_cfb,
1160                 .len = 7
1161         }
1162 };
1163
1164 /* Not multiple of AES block size */
1165 static const struct blockcipher_test_data aes_test_data_docsis_3 = {
1166         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
1167         .cipher_key = {
1168                 .data = {
1169                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
1170                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
1171                 },
1172                 .len = 16
1173         },
1174         .iv = {
1175                 .data = {
1176                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
1177                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
1178                 },
1179                 .len = 16
1180         },
1181         .plaintext = {
1182                 .data = plaintext_aes_docsis_bpi_cbc_cfb,
1183                 .len = 19
1184         },
1185         .ciphertext = {
1186                 .data = ciphertext_aes_docsis_bpi_cbc_cfb,
1187                 .len = 19
1188         }
1189 };
1190
1191 static const struct blockcipher_test_case aes_chain_test_cases[] = {
1192         {
1193                 .test_descr = "AES-128-CTR HMAC-SHA1 Encryption Digest",
1194                 .test_data = &aes_test_data_1,
1195                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1196                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1197                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1198                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1199                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1200                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1201                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1202                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1203         },
1204         {
1205                 .test_descr = "AES-128-CTR HMAC-SHA1 Decryption Digest "
1206                         "Verify",
1207                 .test_data = &aes_test_data_1,
1208                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1209                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1210                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1211                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1212                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1213                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1214                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1215                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1216         },
1217         {
1218                 .test_descr = "AES-192-CTR XCBC Encryption Digest",
1219                 .test_data = &aes_test_data_2,
1220                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1221                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1222                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1223                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1224         },
1225         {
1226                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify",
1227                 .test_data = &aes_test_data_2,
1228                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1229                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1230                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1231                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1232         },
1233         {
1234                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify "
1235                                 "Scatter Gather",
1236                 .test_data = &aes_test_data_2,
1237                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1238                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1239                         BLOCKCIPHER_TEST_FEATURE_OOP,
1240                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1241                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1242                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1243         },
1244         {
1245                 .test_descr = "AES-256-CTR HMAC-SHA1 Encryption Digest",
1246                 .test_data = &aes_test_data_3,
1247                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1248                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1249                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1250                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1251                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1252                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1253                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1254                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1255         },
1256         {
1257                 .test_descr = "AES-256-CTR HMAC-SHA1 Decryption Digest "
1258                         "Verify",
1259                 .test_data = &aes_test_data_3,
1260                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1261                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1262                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1263                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1264                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1265                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1266                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1267                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1268         },
1269         {
1270                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest",
1271                 .test_data = &aes_test_data_4,
1272                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1273                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1274                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1275                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1276                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1277                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1278                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1279                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1280                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1281         },
1282         {
1283                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1284                         "(short buffers)",
1285                 .test_data = &aes_test_data_13,
1286                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1287                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1288                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1289         },
1290         {
1291                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1292                                 "Scatter Gather",
1293                 .test_data = &aes_test_data_4,
1294                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1295                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1296                         BLOCKCIPHER_TEST_FEATURE_OOP,
1297                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1298                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1299                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1300                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1301         },
1302         {
1303                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1304                         "Verify",
1305                 .test_data = &aes_test_data_4,
1306                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1307                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1308                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1309                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1310                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1311                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1312                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1313                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1314                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1315         },
1316         {
1317                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1318                         "Verify (short buffers)",
1319                 .test_data = &aes_test_data_13,
1320                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1321                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1322                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1323         },
1324         {
1325                 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest",
1326                 .test_data = &aes_test_data_5,
1327                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1328                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1329                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1330                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1331                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1332                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1333                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1334                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1335                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1336         },
1337         {
1338                 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest "
1339                         "(short buffers)",
1340                 .test_data = &aes_test_data_12,
1341                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1342                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1343                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1344         },
1345         {
1346                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1347                         "Verify",
1348                 .test_data = &aes_test_data_5,
1349                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1350                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1351                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1352                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1353                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1354                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1355                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1356                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1357                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1358         },
1359         {
1360                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
1361                         "Verify (short buffers)",
1362                 .test_data = &aes_test_data_12,
1363                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1364                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1365                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1366         },
1367         {
1368                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest",
1369                 .test_data = &aes_test_data_6,
1370                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1371                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1372                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1373                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1374                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1375                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1376                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1377                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1378         },
1379         {
1380                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1381                         "Sessionless",
1382                 .test_data = &aes_test_data_6,
1383                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1384                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1385                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1386                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1387         },
1388         {
1389                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
1390                                 "Scatter Gather Sessionless",
1391                 .test_data = &aes_test_data_6,
1392                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1393                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
1394                         BLOCKCIPHER_TEST_FEATURE_SG |
1395                         BLOCKCIPHER_TEST_FEATURE_OOP,
1396                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1397                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1398         },
1399         {
1400                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1401                         "Verify",
1402                 .test_data = &aes_test_data_6,
1403                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1404                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1405                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1406                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1407                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1408                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1409                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1410                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1411         },
1412         {
1413                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
1414                         "Verify Scatter Gather",
1415                 .test_data = &aes_test_data_6,
1416                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1417                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1418                         BLOCKCIPHER_TEST_FEATURE_OOP,
1419                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1420                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1421                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1422                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1423         },
1424         {
1425                 .test_descr = "AES-128-CBC XCBC Encryption Digest",
1426                 .test_data = &aes_test_data_7,
1427                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1428                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1429                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1430                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1431         },
1432         {
1433                 .test_descr = "AES-128-CBC XCBC Decryption Digest Verify",
1434                 .test_data = &aes_test_data_7,
1435                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1436                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1437                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1438                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER
1439         },
1440         {
1441                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1442                         "OOP",
1443                 .test_data = &aes_test_data_4,
1444                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1445                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1446                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1447                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1448                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1449                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1450                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
1451         },
1452         {
1453                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
1454                         "Verify OOP",
1455                 .test_data = &aes_test_data_4,
1456                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1457                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1458                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1459                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1460                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1461                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1462                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
1463         },
1464         {
1465                 .test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
1466                 .test_data = &aes_test_data_8,
1467                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1468                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1469                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1470                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1471                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1472                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1473                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
1474         },
1475         {
1476                 .test_descr = "AES-128-CBC HMAC-SHA224 Decryption Digest "
1477                         "Verify",
1478                 .test_data = &aes_test_data_8,
1479                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1480                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1481                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1482                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1483                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1484                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1485                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
1486         },
1487         {
1488                 .test_descr = "AES-128-CBC HMAC-SHA384 Encryption Digest",
1489                 .test_data = &aes_test_data_9,
1490                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1491                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1492                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1493                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1494                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1495                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1496                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1497                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1498         },
1499         {
1500                 .test_descr = "AES-128-CBC HMAC-SHA384 Decryption Digest "
1501                         "Verify",
1502                 .test_data = &aes_test_data_9,
1503                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1504                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1505                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1506                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1507                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1508                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1509                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1510                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1511         },
1512         {
1513                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
1514                                 "Sessionless",
1515                 .test_data = &aes_test_data_4,
1516                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1517                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1518                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1519                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1520         },
1521         {
1522                 .test_descr =
1523                                 "AES-128-CBC HMAC-SHA1 Decryption Digest "
1524                                 "Verify Sessionless",
1525                 .test_data = &aes_test_data_4,
1526                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1527                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1528                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
1529                         BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1530         },
1531 };
1532
1533 static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
1534         {
1535                 .test_descr = "AES-128-CBC Encryption",
1536                 .test_data = &aes_test_data_4,
1537                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1538                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1539                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1540                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1541                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1542                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1543                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1544                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1545         },
1546         {
1547                 .test_descr = "AES-128-CBC Decryption",
1548                 .test_data = &aes_test_data_4,
1549                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1550                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1551                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1552                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1553                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1554                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1555                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1556                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1557         },
1558         {
1559                 .test_descr = "AES-192-CBC Encryption",
1560                 .test_data = &aes_test_data_10,
1561                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1562                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1563                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1564                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1565                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1566                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1567                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
1568         },
1569         {
1570                 .test_descr = "AES-192-CBC Encryption Scater gather",
1571                 .test_data = &aes_test_data_10,
1572                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1573                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
1574                         BLOCKCIPHER_TEST_FEATURE_OOP,
1575                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL
1576         },
1577         {
1578                 .test_descr = "AES-192-CBC Decryption",
1579                 .test_data = &aes_test_data_10,
1580                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1581                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1582                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1583                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1584                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1585                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1586                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
1587         },
1588         {
1589                 .test_descr = "AES-256-CBC Encryption",
1590                 .test_data = &aes_test_data_11,
1591                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1592                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1593                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1594                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1595                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1596                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1597                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1598                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1599         },
1600         {
1601                 .test_descr = "AES-256-CBC Decryption",
1602                 .test_data = &aes_test_data_11,
1603                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1604                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1605                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1606                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1607                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1608                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1609                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1610                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1611         },
1612         {
1613                 .test_descr = "AES-256-CBC OOP Encryption",
1614                 .test_data = &aes_test_data_11,
1615                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1616                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1617                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1618                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1619                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1620                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
1621         },
1622         {
1623                 .test_descr = "AES-256-CBC OOP Decryption",
1624                 .test_data = &aes_test_data_11,
1625                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1626                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1627                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1628                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1629                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1630                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
1631         },
1632         {
1633                 .test_descr = "AES-128-CTR Encryption",
1634                 .test_data = &aes_test_data_1,
1635                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1636                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1637                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1638                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1639                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1640                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1641                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1642                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1643         },
1644         {
1645                 .test_descr = "AES-128-CTR Decryption",
1646                 .test_data = &aes_test_data_1,
1647                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1648                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1649                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1650                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1651                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1652                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1653                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1654                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1655         },
1656         {
1657                 .test_descr = "AES-192-CTR Encryption",
1658                 .test_data = &aes_test_data_2,
1659                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1660                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1661                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1662                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1663                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1664                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1665                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
1666         },
1667         {
1668                 .test_descr = "AES-192-CTR Decryption",
1669                 .test_data = &aes_test_data_2,
1670                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1671                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1672                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1673                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1674                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1675                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1676                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC
1677         },
1678         {
1679                 .test_descr = "AES-256-CTR Encryption",
1680                 .test_data = &aes_test_data_3,
1681                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1682                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1683                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1684                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1685                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1686                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1687                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1688                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1689         },
1690         {
1691                 .test_descr = "AES-256-CTR Decryption",
1692                 .test_data = &aes_test_data_3,
1693                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1694                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
1695                         BLOCKCIPHER_TEST_TARGET_PMD_QAT |
1696                         BLOCKCIPHER_TEST_TARGET_PMD_MB |
1697                         BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
1698                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
1699                         BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
1700                         BLOCKCIPHER_TEST_TARGET_PMD_MRVL
1701         },
1702         {
1703                 .test_descr = "AES-128-CTR Encryption (12-byte IV)",
1704                 .test_data = &aes_test_data_1_IV_12_bytes,
1705                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1706                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB
1707         },
1708         {
1709                 .test_descr = "AES-192-CTR Encryption (12-byte IV)",
1710                 .test_data = &aes_test_data_2_IV_12_bytes,
1711                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1712                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB
1713         },
1714         {
1715                 .test_descr = "AES-256-CTR Encryption (12-byte IV)",
1716                 .test_data = &aes_test_data_3_IV_12_bytes,
1717                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1718                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB
1719         }
1720 };
1721
1722 static const struct blockcipher_test_case aes_docsis_test_cases[] = {
1723
1724         {
1725                 .test_descr = "AES-DOCSIS-BPI Full Block Encryption",
1726                 .test_data = &aes_test_data_docsis_1,
1727                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1728                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1729                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1730         },
1731         {
1732                 .test_descr = "AES-DOCSIS-BPI Runt Block Encryption",
1733                 .test_data = &aes_test_data_docsis_2,
1734                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1735                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1736                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1737         },
1738         {
1739                 .test_descr = "AES-DOCSIS-BPI Uneven Encryption",
1740                 .test_data = &aes_test_data_docsis_3,
1741                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1742                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1743                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1744         },
1745         {
1746                 .test_descr = "AES-DOCSIS-BPI Full Block Decryption",
1747                 .test_data = &aes_test_data_docsis_1,
1748                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1749                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1750                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1751         },
1752         {
1753                 .test_descr = "AES-DOCSIS-BPI Runt Block Decryption",
1754                 .test_data = &aes_test_data_docsis_2,
1755                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1756                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1757                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1758         },
1759         {
1760                 .test_descr = "AES-DOCSIS-BPI Uneven Decryption",
1761                 .test_data = &aes_test_data_docsis_3,
1762                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1763                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
1764                         BLOCKCIPHER_TEST_TARGET_PMD_QAT
1765         },
1766         {
1767                 .test_descr = "AES-DOCSIS-BPI OOP Full Block Encryption",
1768                 .test_data = &aes_test_data_docsis_1,
1769                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1770                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1771                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1772         },
1773         {
1774                 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Encryption",
1775                 .test_data = &aes_test_data_docsis_2,
1776                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1777                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1778                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1779         },
1780         {
1781                 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Encryption",
1782                 .test_data = &aes_test_data_docsis_3,
1783                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1784                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1785                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1786         },
1787         {
1788                 .test_descr = "AES-DOCSIS-BPI OOP Full Block Decryption",
1789                 .test_data = &aes_test_data_docsis_1,
1790                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1791                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1792                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1793         },
1794         {
1795                 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Decryption",
1796                 .test_data = &aes_test_data_docsis_2,
1797                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1798                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1799                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1800         },
1801         {
1802                 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Decryption",
1803                 .test_data = &aes_test_data_docsis_3,
1804                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1805                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1806                 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT
1807         }
1808 };
1809 #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */