e404050701d66dd1f87381e150d3f44fa27d7861
[dpdk.git] / app / test / test_cryptodev_aes_test_vectors.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2016-2019 Intel Corporation
3  */
4
5 #ifndef TEST_CRYPTODEV_AES_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_AES_TEST_VECTORS_H_
7
8 /* test vectors */
9 static const uint8_t plaintext_aes128ctr[] = {
10         0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
11         0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A,
12         0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C,
13         0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51,
14         0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11,
15         0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF,
16         0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17,
17         0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10
18 };
19
20 static const uint8_t ciphertext64_aes128ctr[] = {
21         0x87, 0x4D, 0x61, 0x91, 0xB6, 0x20, 0xE3, 0x26,
22         0x1B, 0xEF, 0x68, 0x64, 0x99, 0x0D, 0xB6, 0xCE,
23         0x98, 0x06, 0xF6, 0x6B, 0x79, 0x70, 0xFD, 0xFF,
24         0x86, 0x17, 0x18, 0x7B, 0xB9, 0xFF, 0xFD, 0xFF,
25         0x5A, 0xE4, 0xDF, 0x3E, 0xDB, 0xD5, 0xD3, 0x5E,
26         0x5B, 0x4F, 0x09, 0x02, 0x0D, 0xB0, 0x3E, 0xAB,
27         0x1E, 0x03, 0x1D, 0xDA, 0x2F, 0xBE, 0x03, 0xD1,
28         0x79, 0x21, 0x70, 0xA0, 0xF3, 0x00, 0x9C, 0xEE
29 };
30
31 static const uint8_t ciphertext64_aes128ctr_IV_12bytes[] = {
32         0x28, 0x80, 0x28, 0xC7, 0x15, 0x99, 0xC5, 0xA8,
33         0xDD, 0x53, 0xC2, 0x67, 0x1B, 0x86, 0xB8, 0x13,
34         0xAB, 0x25, 0x39, 0x7A, 0xD2, 0x1F, 0x8B, 0x4B,
35         0x94, 0x89, 0x2B, 0x65, 0xCF, 0x89, 0x1E, 0xDD,
36         0xD4, 0x7C, 0xFD, 0x8D, 0x0E, 0xCD, 0x23, 0xA4,
37         0xEB, 0x8C, 0x05, 0x58, 0x45, 0x4A, 0x63, 0x44,
38         0x11, 0x42, 0x07, 0x17, 0xB4, 0xD2, 0xCC, 0x75,
39         0xB7, 0x23, 0x99, 0xA9, 0xC5, 0x89, 0x7F, 0x66
40 };
41
42 static const uint8_t plaintext_aes_docsis_bpi_cfb[] = {
43         0x00, 0x01, 0x02, 0x88, 0xEE, 0x59, 0x7E
44 };
45
46 static const uint8_t ciphertext_aes_docsis_bpi_cfb[] = {
47         0xFC, 0x68, 0xA3, 0x55, 0x60, 0x37, 0xDC
48 };
49
50 static const uint8_t ciphertext_aes256_docsis_bpi_cfb[] = {
51         0xE3, 0x75, 0xF2, 0x30, 0x1F, 0x75, 0x9A
52 };
53
54 static const uint8_t plaintext_aes_docsis_bpi_cbc_cfb[] = {
55         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
56         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x91,
57         0xD2, 0xD1, 0x9F
58 };
59
60 static const uint8_t ciphertext_aes_docsis_bpi_cbc_cfb[] = {
61         0x9D, 0xD1, 0x67, 0x4B, 0xBA, 0x61, 0x10, 0x1B,
62         0x56, 0x75, 0x64, 0x74, 0x36, 0x4F, 0x10, 0x1D,
63         0x44, 0xD4, 0x73
64 };
65
66 static const uint8_t ciphertext_aes256_docsis_bpi_cbc_cfb[] = {
67         0xD1, 0x28, 0x73, 0x1F, 0xB5, 0x28, 0xB5, 0x18,
68         0xAB, 0x51, 0xAB, 0xC8, 0x98, 0x3D, 0xD1, 0xEE,
69         0xE4, 0x43, 0x59
70 };
71
72 static const uint8_t plaintext_aes192ctr[] = {
73         0x01, 0x0F, 0x10, 0x1F, 0x20, 0x1C, 0x0E, 0xB8,
74         0xFB, 0x5C, 0xCD, 0xCC, 0x1F, 0xF9, 0xAF, 0x0B,
75         0x95, 0x03, 0x74, 0x99, 0x49, 0xE7, 0x62, 0x55,
76         0xDA, 0xEA, 0x13, 0x20, 0x1D, 0xC6, 0xCC, 0xCC,
77         0xD1, 0x70, 0x75, 0x47, 0x02, 0x2F, 0xFB, 0x86,
78         0xBB, 0x6B, 0x23, 0xD2, 0xC9, 0x74, 0xD7, 0x7B,
79         0x08, 0x03, 0x3B, 0x79, 0x39, 0xBB, 0x91, 0x29,
80         0xDA, 0x14, 0x39, 0x8D, 0xFF, 0x81, 0x50, 0x96,
81 };
82
83 static const uint8_t ciphertext64_aes192ctr[] = {
84         0x4A, 0x6C, 0xC8, 0xCC, 0x96, 0x2A, 0x13, 0x84,
85         0x1C, 0x36, 0x88, 0xE9, 0xE5, 0x94, 0x70, 0xB2,
86         0x14, 0x5B, 0x13, 0x80, 0xEA, 0xD8, 0x8D, 0x37,
87         0xFD, 0x70, 0xA8, 0x83, 0xE8, 0x2B, 0x88, 0x1E,
88         0xBA, 0x94, 0x3F, 0xF6, 0xB3, 0x1F, 0xDE, 0x34,
89         0xF3, 0x5B, 0x80, 0xE9, 0xAB, 0xF5, 0x1C, 0x29,
90         0xB6, 0xD9, 0x76, 0x2B, 0x06, 0xC6, 0x74, 0xF1,
91         0x59, 0x5E, 0x9E, 0xA5, 0x7B, 0x2D, 0xD7, 0xF0
92 };
93
94 static const uint8_t ciphertext64_aes192ctr_IV_12bytes[] = {
95         0x67, 0x65, 0xa9, 0xee, 0xfd, 0x31, 0x62, 0xfc,
96         0xad, 0xfd, 0xc7, 0x25, 0xb7, 0x25, 0x16, 0xbe,
97         0x25, 0xce, 0xc0, 0x1d, 0xda, 0xa9, 0xd3, 0xda,
98         0x1b, 0x7d, 0x68, 0x6a, 0x6f, 0x06, 0xea, 0x47,
99         0xa0, 0xe0, 0x15, 0xf4, 0xbd, 0x1b, 0x70, 0x34,
100         0xd4, 0x6d, 0x1c, 0x84, 0x17, 0x91, 0x46, 0x0c,
101         0xe8, 0xbc, 0x7a, 0xfb, 0x9f, 0x2a, 0x8f, 0xb4,
102         0xd4, 0xf3, 0x6e, 0x5b, 0x75, 0xa0, 0xce, 0x32
103 };
104
105 static const uint8_t plaintext_aes256ctr[] = {
106         0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
107         0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A,
108         0xAE, 0x2D, 0x8A, 0x57, 0x1E, 0x03, 0xAC, 0x9C,
109         0x9E, 0xB7, 0x6F, 0xAC, 0x45, 0xAF, 0x8E, 0x51,
110         0x30, 0xC8, 0x1C, 0x46, 0xA3, 0x5C, 0xE4, 0x11,
111         0xE5, 0xFB, 0xC1, 0x19, 0x1A, 0x0A, 0x52, 0xEF,
112         0xF6, 0x9F, 0x24, 0x45, 0xDF, 0x4F, 0x9B, 0x17,
113         0xAD, 0x2B, 0x41, 0x7B, 0xE6, 0x6C, 0x37, 0x10
114 };
115
116 static const uint8_t ciphertext64_aes256ctr[] = {
117         0x60, 0x1E, 0xC3, 0x13, 0x77, 0x57, 0x89, 0xA5,
118         0xB7, 0xA7, 0xF5, 0x04, 0xBB, 0xF3, 0xD2, 0x28,
119         0xF4, 0x43, 0xE3, 0xCA, 0x4D, 0x62, 0xB5, 0x9A,
120         0xCA, 0x84, 0xE9, 0x90, 0xCA, 0xCA, 0xF5, 0xC5,
121         0x2B, 0x09, 0x30, 0xDA, 0xA2, 0x3D, 0xE9, 0x4C,
122         0xE8, 0x70, 0x17, 0xBA, 0x2D, 0x84, 0x98, 0x8D,
123         0xDF, 0xC9, 0xC5, 0x8D, 0xB6, 0x7A, 0xAD, 0xA6,
124         0x13, 0xC2, 0xDD, 0x08, 0x45, 0x79, 0x41, 0xA6
125 };
126
127 static const uint8_t ciphertext64_aes256ctr_IV_12bytes[] = {
128         0x7B, 0x7A, 0x7D, 0x83, 0x85, 0xF8, 0x81, 0xF3,
129         0x32, 0x33, 0xD9, 0xFB, 0x04, 0x73, 0xD4, 0x2F,
130         0x70, 0xDE, 0x90, 0x3E, 0xD0, 0xA9, 0x93, 0x8A,
131         0x91, 0xF3, 0xB5, 0x29, 0x4D, 0x2A, 0x74, 0xD0,
132         0xDC, 0x4E, 0x5C, 0x9B, 0x97, 0x24, 0xD8, 0x02,
133         0xFE, 0xAB, 0x38, 0xE8, 0x73, 0x51, 0x29, 0x7E,
134         0xF1, 0xF9, 0x40, 0x78, 0xB1, 0x04, 0x7A, 0x78,
135         0x61, 0x07, 0x47, 0xE6, 0x8C, 0x0F, 0xA8, 0x76
136 };
137
138 static const uint8_t plaintext_aes_common[] = {
139         "What a lousy earth! He wondered how many people "
140         "were destitute that same night even in his own "
141         "prosperous country, how many homes were "
142         "shanties, how many husbands were drunk and "
143         "wives socked, and how many children were "
144         "bullied, abused, or abandoned. How many "
145         "families hungered for food they could not "
146         "afford to buy? How many hearts were broken? How "
147         "many suicides would take place that same night, "
148         "how many people would go insane? How many "
149         "cockroaches and landlords would triumph? How "
150         "many winners were losers, successes failures, "
151         "and rich men poor men? How many wise guys were "
152         "stupid? How many happy endings were unhappy "
153         "endings? How many honest men were liars, brave "
154         "men cowards, loyal men traitors, how many "
155         "sainted men were corrupt, how many people in "
156         "positions of trust had sold their souls to "
157         "bodyguards, how many had never had souls? How "
158         "many straight-and-narrow paths were crooked "
159         "paths? How many best families were worst "
160         "families and how many good people were bad "
161         "people? When you added them all up and then "
162         "subtracted, you might be left with only the "
163         "children, and perhaps with Albert Einstein and "
164         "an old violinist or sculptor somewhere."
165 };
166
167 static const uint8_t ciphertext512_aes128cbc[] = {
168         0x8B, 0x4D, 0xDA, 0x1B, 0xCF, 0x04, 0xA0, 0x31,
169         0xB4, 0xBF, 0xBD, 0x68, 0x43, 0x20, 0x7E, 0x76,
170         0xB1, 0x96, 0x8B, 0xA2, 0x7C, 0xA2, 0x83, 0x9E,
171         0x39, 0x5A, 0x2F, 0x7E, 0x92, 0xB4, 0x48, 0x1A,
172         0x3F, 0x6B, 0x5D, 0xDF, 0x52, 0x85, 0x5F, 0x8E,
173         0x42, 0x3C, 0xFB, 0xE9, 0x1A, 0x24, 0xD6, 0x08,
174         0xDD, 0xFD, 0x16, 0xFB, 0xE9, 0x55, 0xEF, 0xF0,
175         0xA0, 0x8D, 0x13, 0xAB, 0x81, 0xC6, 0x90, 0x01,
176         0xB5, 0x18, 0x84, 0xB3, 0xF6, 0xE6, 0x11, 0x57,
177         0xD6, 0x71, 0xC6, 0x3C, 0x3F, 0x2F, 0x33, 0xEE,
178         0x24, 0x42, 0x6E, 0xAC, 0x0B, 0xCA, 0xEC, 0xF9,
179         0x84, 0xF8, 0x22, 0xAA, 0x60, 0xF0, 0x32, 0xA9,
180         0x75, 0x75, 0x3B, 0xCB, 0x70, 0x21, 0x0A, 0x8D,
181         0x0F, 0xE0, 0xC4, 0x78, 0x2B, 0xF8, 0x97, 0xE3,
182         0xE4, 0x26, 0x4B, 0x29, 0xDA, 0x88, 0xCD, 0x46,
183         0xEC, 0xAA, 0xF9, 0x7F, 0xF1, 0x15, 0xEA, 0xC3,
184         0x87, 0xE6, 0x31, 0xF2, 0xCF, 0xDE, 0x4D, 0x80,
185         0x70, 0x91, 0x7E, 0x0C, 0xF7, 0x26, 0x3A, 0x92,
186         0x4F, 0x18, 0x83, 0xC0, 0x8F, 0x59, 0x01, 0xA5,
187         0x88, 0xD1, 0xDB, 0x26, 0x71, 0x27, 0x16, 0xF5,
188         0xEE, 0x10, 0x82, 0xAC, 0x68, 0x26, 0x9B, 0xE2,
189         0x6D, 0xD8, 0x9A, 0x80, 0xDF, 0x04, 0x31, 0xD5,
190         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
191         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
192         0x73, 0x02, 0x42, 0xC9, 0x23, 0x18, 0x8E, 0xB4,
193         0x6F, 0xB4, 0xA3, 0x54, 0x6E, 0x88, 0x3B, 0x62,
194         0x7C, 0x02, 0x8D, 0x4C, 0x9F, 0xC8, 0x45, 0xF4,
195         0xC9, 0xDE, 0x4F, 0xEB, 0x22, 0x83, 0x1B, 0xE4,
196         0x49, 0x37, 0xE4, 0xAD, 0xE7, 0xCD, 0x21, 0x54,
197         0xBC, 0x1C, 0xC2, 0x04, 0x97, 0xB4, 0x10, 0x61,
198         0xF0, 0xE4, 0xEF, 0x27, 0x63, 0x3A, 0xDA, 0x91,
199         0x41, 0x25, 0x62, 0x1C, 0x5C, 0xB6, 0x38, 0x4A,
200         0x88, 0x71, 0x59, 0x5A, 0x8D, 0xA0, 0x09, 0xAF,
201         0x72, 0x94, 0xD7, 0x79, 0x5C, 0x60, 0x7C, 0x8F,
202         0x4C, 0xF5, 0xD9, 0xA1, 0x39, 0x6D, 0x81, 0x28,
203         0xEF, 0x13, 0x28, 0xDF, 0xF5, 0x3E, 0xF7, 0x8E,
204         0x09, 0x9C, 0x78, 0x18, 0x79, 0xB8, 0x68, 0xD7,
205         0xA8, 0x29, 0x62, 0xAD, 0xDE, 0xE1, 0x61, 0x76,
206         0x1B, 0x05, 0x16, 0xCD, 0xBF, 0x02, 0x8E, 0xA6,
207         0x43, 0x6E, 0x92, 0x55, 0x4F, 0x60, 0x9C, 0x03,
208         0xB8, 0x4F, 0xA3, 0x02, 0xAC, 0xA8, 0xA7, 0x0C,
209         0x1E, 0xB5, 0x6B, 0xF8, 0xC8, 0x4D, 0xDE, 0xD2,
210         0xB0, 0x29, 0x6E, 0x40, 0xE6, 0xD6, 0xC9, 0xE6,
211         0xB9, 0x0F, 0xB6, 0x63, 0xF5, 0xAA, 0x2B, 0x96,
212         0xA7, 0x16, 0xAC, 0x4E, 0x0A, 0x33, 0x1C, 0xA6,
213         0xE6, 0xBD, 0x8A, 0xCF, 0x40, 0xA9, 0xB2, 0xFA,
214         0x63, 0x27, 0xFD, 0x9B, 0xD9, 0xFC, 0xD5, 0x87,
215         0x8D, 0x4C, 0xB6, 0xA4, 0xCB, 0xE7, 0x74, 0x55,
216         0xF4, 0xFB, 0x41, 0x25, 0xB5, 0x4B, 0x0A, 0x1B,
217         0xB1, 0xD6, 0xB7, 0xD9, 0x47, 0x2A, 0xC3, 0x98,
218         0x6A, 0xC4, 0x03, 0x73, 0x1F, 0x93, 0x6E, 0x53,
219         0x19, 0x25, 0x64, 0x15, 0x83, 0xF9, 0x73, 0x2A,
220         0x74, 0xB4, 0x93, 0x69, 0xC4, 0x72, 0xFC, 0x26,
221         0xA2, 0x9F, 0x43, 0x45, 0xDD, 0xB9, 0xEF, 0x36,
222         0xC8, 0x3A, 0xCD, 0x99, 0x9B, 0x54, 0x1A, 0x36,
223         0xC1, 0x59, 0xF8, 0x98, 0xA8, 0xCC, 0x28, 0x0D,
224         0x73, 0x4C, 0xEE, 0x98, 0xCB, 0x7C, 0x58, 0x7E,
225         0x20, 0x75, 0x1E, 0xB7, 0xC9, 0xF8, 0xF2, 0x0E,
226         0x63, 0x9E, 0x05, 0x78, 0x1A, 0xB6, 0xA8, 0x7A,
227         0xF9, 0x98, 0x6A, 0xA6, 0x46, 0x84, 0x2E, 0xF6,
228         0x4B, 0xDC, 0x9B, 0x8F, 0x9B, 0x8F, 0xEE, 0xB4,
229         0xAA, 0x3F, 0xEE, 0xC0, 0x37, 0x27, 0x76, 0xC7,
230         0x95, 0xBB, 0x26, 0x74, 0x69, 0x12, 0x7F, 0xF1,
231         0xBB, 0xFF, 0xAE, 0xB5, 0x99, 0x6E, 0xCB, 0x0C
232 };
233
234 static const uint8_t plaintext_aes128ecb[] = {
235         0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
236         0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
237         0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c,
238         0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
239         0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11,
240         0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef,
241         0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17,
242         0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10
243 };
244
245 static const uint8_t ciphertext_aes128ecb[] = {
246         0x3a, 0xd7, 0x7b, 0xb4, 0x0d, 0x7a, 0x36, 0x60,
247         0xa8, 0x9e, 0xca, 0xf3, 0x24, 0x66, 0xef, 0x97,
248         0xf5, 0xd3, 0xd5, 0x85, 0x03, 0xb9, 0x69, 0x9d,
249         0xe7, 0x85, 0x89, 0x5a, 0x96, 0xfd, 0xba, 0xaf,
250         0x43, 0xb1, 0xcd, 0x7f, 0x59, 0x8e, 0xce, 0x23,
251         0x88, 0x1b, 0x00, 0xe3, 0xed, 0x03, 0x06, 0x88,
252         0x7b, 0x0c, 0x78, 0x5e, 0x27, 0xe8, 0xad, 0x3f,
253         0x82, 0x23, 0x20, 0x71, 0x04, 0x72, 0x5d, 0xd4
254 };
255
256 static const uint8_t plaintext_aes192ecb[] = {
257         0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
258         0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
259         0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c,
260         0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
261         0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11,
262         0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef,
263         0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17,
264         0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10
265 };
266
267 static const uint8_t ciphertext_aes192ecb[] = {
268         0xbd, 0x33, 0x4f, 0x1d, 0x6e, 0x45, 0xf2, 0x5f,
269         0xf7, 0x12, 0xa2, 0x14, 0x57, 0x1f, 0xa5, 0xcc,
270         0x97, 0x41, 0x04, 0x84, 0x6d, 0x0a, 0xd3, 0xad,
271         0x77, 0x34, 0xec, 0xb3, 0xec, 0xee, 0x4e, 0xef,
272         0xef, 0x7a, 0xfd, 0x22, 0x70, 0xe2, 0xe6, 0x0a,
273         0xdc, 0xe0, 0xba, 0x2f, 0xac, 0xe6, 0x44, 0x4e,
274         0x9a, 0x4b, 0x41, 0xba, 0x73, 0x8d, 0x6c, 0x72,
275         0xfb, 0x16, 0x69, 0x16, 0x03, 0xc1, 0x8e, 0x0e
276 };
277
278 static const uint8_t plaintext_aes256ecb[] = {
279         0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96,
280         0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
281         0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c,
282         0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
283         0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11,
284         0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef,
285         0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17,
286         0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10
287 };
288
289 static const uint8_t ciphertext_aes256ecb[] = {
290         0xf3, 0xee, 0xd1, 0xbd, 0xb5, 0xd2, 0xa0, 0x3c,
291         0x06, 0x4b, 0x5a, 0x7e, 0x3d, 0xb1, 0x81, 0xf8,
292         0x59, 0x1c, 0xcb, 0x10, 0xd4, 0x10, 0xed, 0x26,
293         0xdc, 0x5b, 0xa7, 0x4a, 0x31, 0x36, 0x28, 0x70,
294         0xb6, 0xed, 0x21, 0xb9, 0x9c, 0xa6, 0xf4, 0xf9,
295         0xf1, 0x53, 0xe7, 0xb1, 0xbe, 0xaf, 0xed, 0x1d,
296         0x23, 0x30, 0x4b, 0x7a, 0x39, 0xf9, 0xf3, 0xff,
297         0x06, 0x7d, 0x8d, 0x8f, 0x9e, 0x24, 0xec, 0xc7
298 };
299
300 static const uint8_t plaintext_aes128ecb_128bytes[] = {
301         0xf7, 0xcd, 0x12, 0xfb, 0x4f, 0x8e, 0x50, 0xab,
302         0x35, 0x8e, 0x56, 0xf9, 0x83, 0x53, 0x9a, 0x1a,
303         0xfc, 0x47, 0x3c, 0x96, 0x01, 0xfe, 0x01, 0x87,
304         0xd5, 0xde, 0x46, 0x24, 0x5c, 0x62, 0x8f, 0xba,
305         0xba, 0x91, 0x17, 0x8d, 0xba, 0x5a, 0x79, 0xb1,
306         0x57, 0x05, 0x4d, 0x08, 0xba, 0x1f, 0x30, 0xd3,
307         0x80, 0x40, 0xe9, 0x37, 0xb0, 0xd6, 0x34, 0x87,
308         0x33, 0xdd, 0xc0, 0x5b, 0x2d, 0x58, 0x1d, 0x2a,
309         0x7b, 0xb6, 0xe3, 0xd0, 0xc8, 0xa0, 0x7a, 0x69,
310         0xc8, 0x5d, 0x10, 0xa2, 0xc3, 0x39, 0xca, 0xaf,
311         0x40, 0xdc, 0xc7, 0xcb, 0xff, 0x18, 0x7d, 0x51,
312         0x06, 0x28, 0x28, 0x1f, 0x3a, 0x9c, 0x18, 0x7d,
313         0x5b, 0xb5, 0xe9, 0x20, 0xc2, 0xae, 0x17, 0x7f,
314         0xd1, 0x65, 0x7a, 0x75, 0xcf, 0x21, 0xa0, 0x1e,
315         0x17, 0x1b, 0xf7, 0xe8, 0x62, 0x5f, 0xaf, 0x34,
316         0x7f, 0xd8, 0x18, 0x4a, 0x94, 0xf2, 0x33, 0x90
317 };
318
319 static const uint8_t ciphertext_aes128ecb_128bytes[] = {
320         0x48, 0xa0, 0xe8, 0x0a, 0x89, 0x99, 0xab, 0xb5,
321         0x66, 0x6d, 0x68, 0x23, 0x43, 0x40, 0x1f, 0x26,
322         0xac, 0x52, 0xc4, 0x7b, 0x09, 0x0a, 0x8f, 0xc0,
323         0x38, 0x00, 0xf5, 0x48, 0x3a, 0xfd, 0xcd, 0x7e,
324         0x21, 0xe7, 0xf8, 0xf6, 0xc2, 0xa7, 0x4c, 0x1c,
325         0x6e, 0x83, 0x57, 0xf4, 0xa4, 0xb0, 0xc0, 0x5f,
326         0x36, 0x73, 0x22, 0xff, 0x33, 0x44, 0xab, 0xeb,
327         0x96, 0xa8, 0xe0, 0x37, 0x65, 0x81, 0x6b, 0x82,
328         0x89, 0xcd, 0xcc, 0xac, 0x33, 0x18, 0x7d, 0x43,
329         0x0e, 0x79, 0x53, 0x30, 0x21, 0x4c, 0x95, 0x18,
330         0xb6, 0xc9, 0xea, 0x5c, 0x6f, 0xa1, 0x10, 0xa3,
331         0x51, 0x0e, 0x67, 0x8c, 0x1c, 0x9d, 0xf1, 0x57,
332         0xeb, 0xf6, 0xad, 0x4f, 0xf2, 0x55, 0xe8, 0x11,
333         0x6f, 0xaa, 0x4d, 0xe5, 0x18, 0x3d, 0xc3, 0x14,
334         0xf9, 0x40, 0xfa, 0x86, 0x9d, 0xaf, 0xff, 0xfc,
335         0x78, 0xba, 0xbe, 0x61, 0xf8, 0xd1, 0x00, 0x8d
336 };
337
338 static const uint8_t plaintext_aes192ecb_192bytes[] = {
339         0x19, 0x08, 0xa3, 0x58, 0x17, 0x14, 0x70, 0x5a,
340         0xb8, 0xab, 0x4f, 0x5f, 0xa4, 0x25, 0x2b, 0xec,
341         0xb6, 0x74, 0x0b, 0x9d, 0x56, 0x3b, 0xaf, 0xa3,
342         0xa4, 0x2d, 0x3e, 0x1f, 0x18, 0x84, 0x3b, 0x4f,
343         0x48, 0xd9, 0xa3, 0xfe, 0x59, 0x1e, 0x80, 0x67,
344         0x44, 0x35, 0x26, 0x00, 0x78, 0xda, 0x68, 0xfa,
345         0x61, 0x9c, 0xd8, 0x8e, 0x5c, 0xc1, 0xff, 0xeb,
346         0x9c, 0x7d, 0xe7, 0xa9, 0x38, 0xeb, 0x66, 0xf8,
347         0x6a, 0x46, 0x71, 0x51, 0x02, 0xba, 0x8d, 0x70,
348         0x55, 0x5b, 0x60, 0xc6, 0x4c, 0xae, 0xda, 0x2e,
349         0x17, 0xbb, 0x65, 0xef, 0x60, 0x85, 0x9e, 0x77,
350         0xe5, 0x83, 0xef, 0x30, 0x08, 0x3a, 0xba, 0x80,
351         0x28, 0xc0, 0xa1, 0x93, 0x4c, 0x2a, 0x0b, 0xe1,
352         0xcb, 0xd0, 0xac, 0x72, 0x72, 0x1d, 0x96, 0x76,
353         0x0e, 0xc0, 0xec, 0x7d, 0x84, 0xfd, 0xee, 0x08,
354         0xa1, 0x11, 0x20, 0x0d, 0x59, 0x5c, 0x06, 0x3f,
355         0xa3, 0xf1, 0xd7, 0xa3, 0x1d, 0x29, 0xc3, 0xaa,
356         0x05, 0x2b, 0x74, 0x8c, 0x73, 0x60, 0x65, 0x43,
357         0x76, 0xd4, 0xd7, 0x7b, 0x5f, 0x40, 0xf4, 0x77,
358         0xe1, 0xcc, 0x85, 0x37, 0x1c, 0xd8, 0xda, 0x91,
359         0xf0, 0x40, 0xb2, 0x43, 0x2d, 0x87, 0x51, 0xd0,
360         0xce, 0x27, 0xa6, 0x60, 0xac, 0x67, 0xea, 0x8b,
361         0xae, 0x46, 0x2e, 0x78, 0x06, 0x09, 0x8a, 0x82,
362         0xb0, 0x0d, 0x57, 0x56, 0x82, 0xfe, 0x89, 0xd2
363 };
364
365 static const uint8_t ciphertext_aes192ecb_192bytes[] = {
366         0xcc, 0xe2, 0x3f, 0xc3, 0x12, 0x41, 0x31, 0x63,
367         0x03, 0x3a, 0x3c, 0xfe, 0x76, 0x55, 0xd2, 0x26,
368         0xf0, 0xc9, 0xb5, 0xc6, 0xf0, 0x1e, 0xc3, 0x72,
369         0xfb, 0x64, 0x94, 0x7d, 0xf1, 0x5e, 0x2a, 0x9e,
370         0x0d, 0x9a, 0x7a, 0xe0, 0xbc, 0x7b, 0xa6, 0x65,
371         0x41, 0xc0, 0xa0, 0x9d, 0xb1, 0xb1, 0x09, 0x99,
372         0x6e, 0xe7, 0x25, 0x5e, 0x64, 0x2b, 0x74, 0xfa,
373         0xa1, 0x9a, 0x03, 0x33, 0x88, 0x81, 0x27, 0x48,
374         0xdd, 0x53, 0x77, 0x0b, 0xef, 0xd9, 0x2f, 0xfa,
375         0xc8, 0x50, 0x0e, 0x08, 0xa1, 0x45, 0x12, 0x82,
376         0x2b, 0xfb, 0x85, 0x5a, 0x39, 0x8c, 0x71, 0x32,
377         0x59, 0x27, 0x37, 0x53, 0xce, 0x3e, 0xae, 0x00,
378         0x45, 0x53, 0xfd, 0xaf, 0xa5, 0xd1, 0x1a, 0xe9,
379         0xa4, 0x1b, 0xe3, 0x99, 0xde, 0xcd, 0x03, 0x36,
380         0x6b, 0x72, 0x43, 0x76, 0x04, 0xa8, 0xf9, 0x83,
381         0xef, 0x9e, 0x57, 0x75, 0x36, 0x0e, 0x99, 0xe1,
382         0x79, 0x2b, 0x2b, 0x96, 0x01, 0x10, 0xb8, 0xf6,
383         0x4a, 0xa6, 0x13, 0xab, 0x7f, 0x55, 0x60, 0xf0,
384         0xc9, 0x5c, 0x81, 0xa7, 0x96, 0x99, 0xb4, 0x55,
385         0x41, 0x48, 0xf1, 0xd4, 0xa1, 0xb4, 0x76, 0xb5,
386         0x35, 0xe1, 0x02, 0x8e, 0x09, 0xb2, 0x6c, 0x11,
387         0x3f, 0xfb, 0x04, 0x47, 0x98, 0xab, 0x9b, 0x55,
388         0xc3, 0xa9, 0x2a, 0x64, 0x32, 0x5a, 0x69, 0x96,
389         0x28, 0x8c, 0x5b, 0xe3, 0xb2, 0x60, 0x82, 0xec
390 };
391
392 static const uint8_t plaintext_aes256ecb_256bytes[] = {
393         0x0b, 0xe5, 0x48, 0xa6, 0xa1, 0xbc, 0xac, 0x81,
394         0x80, 0x06, 0x5f, 0xae, 0x1e, 0x3f, 0x55, 0x73,
395         0x6d, 0x36, 0x7f, 0x57, 0x3d, 0xa4, 0x4a, 0x6b,
396         0xb6, 0x65, 0x2f, 0xb7, 0xe8, 0x85, 0x47, 0xe2,
397         0x41, 0x42, 0xc2, 0x4e, 0x58, 0xf1, 0xde, 0x42,
398         0x9f, 0x15, 0x4c, 0xaf, 0xea, 0x04, 0x20, 0xd0,
399         0x1a, 0x19, 0x36, 0x74, 0x71, 0x12, 0x72, 0x1b,
400         0xdb, 0x18, 0xf9, 0x0b, 0xb3, 0xf3, 0x63, 0xd4,
401         0x62, 0x52, 0x8b, 0x63, 0x0f, 0x6b, 0x4d, 0xb9,
402         0x70, 0xd6, 0x91, 0xa0, 0x43, 0x3f, 0x46, 0xfe,
403         0x43, 0xbb, 0xb8, 0xdc, 0x5e, 0xdb, 0xd4, 0x1f,
404         0xf0, 0x17, 0x94, 0x25, 0xee, 0x55, 0x67, 0xbf,
405         0x4d, 0xda, 0x9d, 0xe7, 0x4b, 0xc6, 0x7a, 0xcf,
406         0x8f, 0xd7, 0xbb, 0x29, 0x6e, 0x26, 0xd4, 0xc3,
407         0x08, 0x9b, 0x67, 0x15, 0xe9, 0x2d, 0x9f, 0x2d,
408         0x3c, 0x76, 0x26, 0xd3, 0xda, 0xfe, 0x6e, 0x73,
409         0x9d, 0x09, 0x60, 0x4b, 0x35, 0x60, 0xdb, 0x77,
410         0xb6, 0xc0, 0x45, 0x91, 0xf9, 0x14, 0x8a, 0x7a,
411         0xdd, 0xe2, 0xf1, 0xdf, 0x8f, 0x12, 0x4f, 0xd7,
412         0x75, 0xd6, 0x9a, 0x17, 0xda, 0x76, 0x88, 0xf0,
413         0xfa, 0x44, 0x27, 0xbe, 0x61, 0xaf, 0x55, 0x9f,
414         0xc7, 0xf0, 0x76, 0x77, 0xde, 0xca, 0xd1, 0x47,
415         0x51, 0x55, 0xb1, 0xbf, 0xfa, 0x1e, 0xca, 0x28,
416         0x17, 0x70, 0xf3, 0xb5, 0xd4, 0x32, 0x47, 0x04,
417         0xe0, 0x92, 0xd8, 0xa5, 0x03, 0x69, 0x46, 0x99,
418         0x7f, 0x1e, 0x3f, 0xb2, 0x93, 0x36, 0xa3, 0x88,
419         0x75, 0x07, 0x68, 0xb8, 0x33, 0xce, 0x17, 0x3f,
420         0x5c, 0xb7, 0x1e, 0x93, 0x38, 0xc5, 0x1d, 0x79,
421         0x86, 0x7c, 0x9d, 0x9e, 0x2f, 0x69, 0x38, 0x0f,
422         0x97, 0x5c, 0x67, 0xbf, 0xa0, 0x8d, 0x37, 0x0b,
423         0xd3, 0xb1, 0x04, 0x87, 0x1d, 0x74, 0xfe, 0x30,
424         0xfb, 0xd0, 0x22, 0x92, 0xf9, 0xf3, 0x23, 0xc9
425 };
426
427 static const uint8_t ciphertext_aes256ecb_256bytes[] = {
428         0x4b, 0xc0, 0x1f, 0x80, 0xf5, 0xc7, 0xe8, 0xf5,
429         0xc9, 0xd0, 0x3c, 0x86, 0x50, 0x78, 0x21, 0xce,
430         0x01, 0xec, 0x91, 0x00, 0xc9, 0xf8, 0x73, 0x43,
431         0x2f, 0x73, 0x8a, 0x6d, 0xee, 0xed, 0x2d, 0x40,
432         0x17, 0x16, 0x93, 0x15, 0xac, 0xed, 0x28, 0x61,
433         0xb0, 0x0f, 0xa2, 0xe1, 0xd3, 0x80, 0x51, 0xdf,
434         0x73, 0xce, 0x48, 0x4c, 0x1c, 0xc1, 0x8b, 0xc9,
435         0x9e, 0x5c, 0x48, 0x07, 0xa0, 0xf6, 0x29, 0xf8,
436         0x63, 0x87, 0xe4, 0xe7, 0x8b, 0xf8, 0xcf, 0x58,
437         0xda, 0x57, 0x62, 0x11, 0x2e, 0x6e, 0x91, 0x7e,
438         0xc7, 0x73, 0xdb, 0x27, 0x3c, 0x64, 0x72, 0x52,
439         0xe3, 0x27, 0x84, 0x1f, 0x73, 0x3f, 0xf4, 0x94,
440         0xd2, 0xdd, 0x93, 0x33, 0x65, 0x91, 0x98, 0x89,
441         0x13, 0xa9, 0x2b, 0x0d, 0x6f, 0x56, 0x51, 0x15,
442         0x07, 0xc6, 0xa7, 0x36, 0x8f, 0x0c, 0xd6, 0xc2,
443         0x07, 0x06, 0x65, 0x7a, 0xf8, 0x94, 0xa6, 0x75,
444         0x48, 0x4c, 0xcc, 0xa5, 0xa9, 0x91, 0x04, 0x2f,
445         0x7b, 0x89, 0x46, 0xd2, 0x87, 0xcb, 0xd6, 0x1b,
446         0xf3, 0x1e, 0xa7, 0xe5, 0x09, 0xcf, 0x75, 0x05,
447         0x9f, 0xc9, 0xac, 0xcc, 0x61, 0x15, 0x2d, 0x2e,
448         0x2c, 0x0a, 0x57, 0x4d, 0x33, 0x17, 0x6b, 0x22,
449         0x9e, 0x92, 0xc5, 0x81, 0xce, 0x9d, 0x52, 0x68,
450         0x7d, 0x98, 0xe1, 0x23, 0x70, 0xc5, 0x19, 0x3e,
451         0x91, 0xfc, 0xc6, 0xd7, 0x67, 0x5f, 0xbb, 0x57,
452         0x20, 0x96, 0x3f, 0x1f, 0x9f, 0x64, 0xe9, 0xb1,
453         0x51, 0xfd, 0x8c, 0xc1, 0x0f, 0x50, 0xbe, 0x43,
454         0x5f, 0x90, 0xb4, 0xd1, 0xb6, 0x41, 0x7c, 0x37,
455         0x92, 0x71, 0xda, 0x9d, 0xfd, 0xee, 0x69, 0x8c,
456         0x24, 0x18, 0xe8, 0x81, 0x60, 0xe2, 0x89, 0x33,
457         0x42, 0xd4, 0x1b, 0x6a, 0xcb, 0x4a, 0x5b, 0x00,
458         0x01, 0x4f, 0x11, 0x47, 0x0f, 0x57, 0xb0, 0x90,
459         0xf0, 0xed, 0xb0, 0x34, 0x2e, 0x9f, 0x81, 0x6c
460 };
461
462 static const uint8_t plaintext_aes128ecb_1008bytes[] = {
463         0xdd, 0x14, 0xde, 0x30, 0xe0, 0xfd, 0x7b, 0x2a,
464         0x94, 0x8e, 0x28, 0xa0, 0xf6, 0x93, 0x6e, 0xf5,
465         0x92, 0x65, 0x1d, 0x5e, 0x78, 0x2a, 0x9d, 0x39,
466         0xfc, 0xb8, 0x6d, 0x8b, 0xa5, 0xf4, 0x4b, 0x21,
467         0xdd, 0x4e, 0xe9, 0xeb, 0xd7, 0xa7, 0xa1, 0x59,
468         0xdc, 0x4c, 0x5e, 0xcc, 0x83, 0xab, 0xd3, 0x45,
469         0xfe, 0x2c, 0x73, 0x23, 0xea, 0x45, 0xcb, 0x0c,
470         0x12, 0x67, 0x28, 0xcd, 0xef, 0x4e, 0xca, 0xe2,
471         0x1d, 0x92, 0x82, 0xd8, 0x0f, 0xa9, 0x36, 0x23,
472         0x6d, 0x38, 0x68, 0xac, 0xa0, 0xeb, 0xdc, 0xcc,
473         0xdf, 0xb8, 0x3a, 0x53, 0x04, 0x1a, 0x55, 0x27,
474         0x8e, 0x22, 0x86, 0x8c, 0xbd, 0xdc, 0x6b, 0x12,
475         0x9c, 0x69, 0xd2, 0x7a, 0x4b, 0x52, 0x5d, 0x76,
476         0x34, 0xb9, 0x5e, 0x30, 0x0a, 0x8d, 0x1e, 0xf1,
477         0x27, 0xda, 0x5b, 0xb9, 0x5e, 0xbf, 0x65, 0x34,
478         0x00, 0xb6, 0xd2, 0xb0, 0x89, 0x12, 0xb6, 0x35,
479         0xae, 0x27, 0x7f, 0x11, 0xe9, 0xf9, 0x1c, 0x71,
480         0xc9, 0x50, 0xfe, 0xd4, 0x76, 0x50, 0x95, 0xf7,
481         0xe1, 0x1c, 0x14, 0xcd, 0x67, 0x0f, 0xf0, 0x6d,
482         0xa2, 0x93, 0x7b, 0x2c, 0x8d, 0x83, 0x5c, 0xff,
483         0xe4, 0x95, 0xf3, 0xa1, 0xfd, 0x00, 0x77, 0x68,
484         0x41, 0xb4, 0xfb, 0x81, 0xf4, 0x61, 0x1a, 0x84,
485         0x5a, 0x53, 0xc3, 0xdc, 0xba, 0x0d, 0x67, 0x2e,
486         0xcf, 0xf2, 0x30, 0xf5, 0x1d, 0xe9, 0xc4, 0x2c,
487         0xac, 0x1f, 0xa7, 0x9c, 0x64, 0xfd, 0x45, 0x30,
488         0x1b, 0xa1, 0x3b, 0x3d, 0xc7, 0xf5, 0xf9, 0xbb,
489         0xba, 0x99, 0xa4, 0x12, 0x6e, 0x4e, 0xea, 0x0b,
490         0x29, 0x7f, 0xcd, 0x84, 0x64, 0x50, 0x40, 0xb7,
491         0x6a, 0x24, 0x29, 0xa4, 0xa7, 0xa1, 0xef, 0xa9,
492         0xcf, 0xdf, 0x09, 0xff, 0xaa, 0x17, 0x5d, 0x82,
493         0x74, 0xf5, 0xae, 0xd0, 0xe9, 0xec, 0xad, 0x5e,
494         0xa7, 0x84, 0xda, 0xe7, 0x33, 0x58, 0x7e, 0x00,
495         0x45, 0x5f, 0xbb, 0x15, 0xa3, 0x65, 0x0e, 0xf5,
496         0x7e, 0x27, 0xe7, 0x04, 0x52, 0x58, 0x81, 0xd0,
497         0xee, 0x8f, 0xaf, 0xe2, 0x3c, 0xbe, 0x08, 0x97,
498         0x8a, 0x97, 0x12, 0xb0, 0x09, 0xfe, 0xa5, 0xeb,
499         0xd1, 0x9c, 0x30, 0xe8, 0x9a, 0x3f, 0xe0, 0x38,
500         0x34, 0x2b, 0xad, 0xb7, 0xc4, 0xda, 0x54, 0xab,
501         0x97, 0x9c, 0x46, 0x2b, 0x2c, 0x0b, 0xb3, 0x49,
502         0xcd, 0x9d, 0x32, 0x38, 0x3c, 0x1a, 0x49, 0xdc,
503         0x2f, 0xe7, 0xcd, 0x8a, 0xb0, 0x76, 0xcf, 0x30,
504         0xea, 0x0b, 0xb0, 0xb7, 0x63, 0xed, 0xb2, 0x8c,
505         0xc9, 0x2c, 0xb7, 0x75, 0xa8, 0xf6, 0x63, 0xb6,
506         0xcd, 0xb5, 0x63, 0xfb, 0x5f, 0x89, 0xae, 0x3d,
507         0x33, 0x73, 0xaf, 0xde, 0xcb, 0x37, 0x0a, 0x50,
508         0x6f, 0xae, 0xf3, 0xa6, 0x79, 0x85, 0xdd, 0xc5,
509         0x24, 0xc5, 0x29, 0x23, 0x64, 0xef, 0x43, 0xd7,
510         0xc4, 0xab, 0xd8, 0xb0, 0x84, 0x26, 0x6b, 0xe8,
511         0xb1, 0x5d, 0xb5, 0x69, 0xfb, 0x97, 0x0e, 0x20,
512         0xb3, 0xc1, 0x60, 0xad, 0x1a, 0xd2, 0xd6, 0x3a,
513         0x73, 0x08, 0xf0, 0x47, 0x5f, 0xcf, 0x15, 0xf7,
514         0x7b, 0xf3, 0x69, 0x08, 0x5a, 0x6b, 0x9f, 0xc7,
515         0x12, 0xa1, 0xf0, 0xfb, 0x91, 0xc9, 0x07, 0x61,
516         0x21, 0xa0, 0x30, 0x4c, 0x16, 0x81, 0xcd, 0x3c,
517         0x61, 0xe8, 0x96, 0x91, 0x30, 0xdd, 0x0c, 0x0e,
518         0x0b, 0xa1, 0x33, 0x95, 0x67, 0x99, 0xd6, 0x1e,
519         0x1a, 0xb3, 0x12, 0xfd, 0xad, 0x46, 0x48, 0x87,
520         0x5e, 0xe8, 0xd4, 0xf5, 0xac, 0xdf, 0xa7, 0x37,
521         0xb8, 0xa1, 0x62, 0x8c, 0xb8, 0xb6, 0xb0, 0x69,
522         0x63, 0x29, 0x60, 0x64, 0x26, 0xc3, 0xf8, 0x18,
523         0x8e, 0x46, 0xa0, 0xc5, 0x45, 0x5c, 0x08, 0x2a,
524         0xed, 0x29, 0x84, 0x11, 0xea, 0x59, 0xc0, 0x16,
525         0xe2, 0x04, 0x30, 0x63, 0x22, 0x87, 0xb6, 0xc7,
526         0x81, 0xa6, 0x58, 0xc0, 0xb2, 0xb0, 0x7d, 0xbc,
527         0x16, 0x44, 0x6e, 0x5d, 0x6d, 0xce, 0x2a, 0xe0,
528         0x20, 0x69, 0x35, 0xa1, 0x5d, 0x17, 0x48, 0x55,
529         0x88, 0xfe, 0xde, 0x34, 0xe7, 0x18, 0xbf, 0x7e,
530         0x0a, 0x1c, 0x32, 0x88, 0xab, 0xde, 0xe1, 0x02,
531         0x61, 0x09, 0x58, 0x96, 0xef, 0x16, 0x73, 0xac,
532         0xc0, 0x5c, 0x15, 0xca, 0x9b, 0xea, 0x0e, 0x05,
533         0x97, 0x88, 0x09, 0xc5, 0xd0, 0x95, 0x90, 0xae,
534         0xa5, 0xb5, 0x28, 0xc6, 0x5a, 0x7b, 0xb3, 0xcc,
535         0xae, 0x57, 0x71, 0x83, 0x56, 0x57, 0xca, 0xe8,
536         0x8b, 0x21, 0x0c, 0x37, 0x1d, 0xde, 0x85, 0xe2,
537         0x1b, 0xa2, 0x38, 0xa0, 0xc5, 0xc7, 0x98, 0x7b,
538         0xf9, 0x5e, 0x6a, 0x68, 0xb3, 0xed, 0x49, 0x5e,
539         0x46, 0xb9, 0xc9, 0xf6, 0x34, 0xa6, 0x0e, 0xac,
540         0x90, 0x72, 0xcf, 0xf8, 0x5b, 0x48, 0x13, 0x40,
541         0x7a, 0xce, 0xfd, 0x3c, 0x16, 0xff, 0xb5, 0xea,
542         0xb2, 0x56, 0x47, 0xcc, 0x9f, 0xbc, 0xae, 0x4a,
543         0xc8, 0xa5, 0x59, 0x57, 0x01, 0xd7, 0x9f, 0xd7,
544         0xbf, 0x13, 0xb1, 0xbf, 0xb7, 0x9a, 0xa0, 0xa1,
545         0xc6, 0x66, 0x61, 0x96, 0xf2, 0xcd, 0x8c, 0xcb,
546         0x3c, 0x67, 0xb5, 0xed, 0xb7, 0xa2, 0x54, 0x84,
547         0x3c, 0xcb, 0x7e, 0xb3, 0x97, 0x05, 0xcb, 0x8f,
548         0xa9, 0xc6, 0x3c, 0xa2, 0xbd, 0xbf, 0x3a, 0xb8,
549         0x92, 0x08, 0x01, 0xea, 0xfd, 0x55, 0x2f, 0x27,
550         0x2a, 0x82, 0x38, 0x26, 0x1d, 0x81, 0x19, 0x33,
551         0x75, 0x3c, 0xa2, 0x13, 0x1e, 0x58, 0x9f, 0x0b,
552         0x08, 0x5d, 0x7a, 0x2c, 0x9a, 0xd1, 0xa5, 0x4c,
553         0x41, 0xb4, 0x1d, 0xf8, 0x42, 0x08, 0x87, 0xdd,
554         0x8e, 0xc9, 0x05, 0xd2, 0x8c, 0xba, 0x93, 0x28,
555         0xbe, 0x4a, 0x14, 0x13, 0x2a, 0x58, 0xf0, 0x1c,
556         0xac, 0xc1, 0xc4, 0x49, 0xbc, 0xe1, 0xda, 0xb6,
557         0x2d, 0x06, 0x98, 0x32, 0xea, 0xa3, 0x89, 0x11,
558         0xca, 0x5f, 0x3e, 0xda, 0x24, 0xe2, 0xdb, 0x1e,
559         0xca, 0xf3, 0xc0, 0xc7, 0x64, 0xee, 0x4b, 0x3d,
560         0xa2, 0xee, 0x69, 0xb0, 0x3f, 0x2c, 0xd5, 0x49,
561         0xba, 0x2d, 0x45, 0x7d, 0xdd, 0xb0, 0x0d, 0xc5,
562         0xe0, 0x57, 0x95, 0xbe, 0xf8, 0x4a, 0x11, 0x46,
563         0x4c, 0xbb, 0xdf, 0xa8, 0x5a, 0xf9, 0xff, 0x0e,
564         0x31, 0xa9, 0x50, 0x5d, 0xc4, 0xb3, 0x3d, 0x09,
565         0x46, 0x33, 0x39, 0x31, 0xd5, 0xb3, 0xe5, 0x91,
566         0xcf, 0xca, 0x8a, 0xe0, 0xc2, 0x8e, 0xea, 0xbe,
567         0x54, 0x64, 0x78, 0x0c, 0x25, 0x1c, 0x17, 0xbc,
568         0x49, 0xf9, 0xc0, 0x30, 0x5f, 0x08, 0x04, 0x9d,
569         0xb5, 0xe4, 0xeb, 0x9e, 0xe5, 0x1e, 0x6d, 0xbc,
570         0x7b, 0xe7, 0xf0, 0xd1, 0xa0, 0x01, 0x18, 0x51,
571         0x4f, 0x64, 0xc3, 0x9c, 0x70, 0x25, 0x4f, 0xed,
572         0xc7, 0xbc, 0x19, 0x00, 0x09, 0x22, 0x97, 0x5d,
573         0x6f, 0xe4, 0x47, 0x98, 0x05, 0xcd, 0xcc, 0xde,
574         0xd5, 0xe3, 0xaf, 0xa3, 0xde, 0x69, 0x99, 0x2a,
575         0xd1, 0x28, 0x4d, 0x7c, 0x89, 0xa0, 0xdb, 0xae,
576         0xf9, 0xf1, 0x4a, 0x46, 0xdf, 0xbe, 0x1d, 0x37,
577         0xf2, 0xd5, 0x36, 0x4a, 0x54, 0xe8, 0xc4, 0xfb,
578         0x57, 0x77, 0x09, 0x05, 0x31, 0x99, 0xaf, 0x9a,
579         0x17, 0xd1, 0x20, 0x93, 0x31, 0x89, 0xff, 0xed,
580         0x0f, 0xf8, 0xed, 0xb3, 0xcf, 0x4c, 0x9a, 0x74,
581         0xbb, 0x00, 0x36, 0x41, 0xd1, 0x13, 0x68, 0x73,
582         0x78, 0x63, 0x42, 0xdd, 0x99, 0x15, 0x9a, 0xf4,
583         0xe1, 0xad, 0x6d, 0xf6, 0x5e, 0xca, 0x20, 0x24,
584         0xd7, 0x9d, 0x2f, 0x58, 0x97, 0xf7, 0xde, 0x31,
585         0x51, 0xa3, 0x1c, 0xe2, 0x66, 0x24, 0x4b, 0xa1,
586         0x56, 0x02, 0x32, 0xf4, 0x89, 0xf3, 0x86, 0x9a,
587         0x85, 0xda, 0x95, 0xa8, 0x7f, 0x6a, 0x77, 0x02,
588         0x3a, 0xba, 0xe0, 0xbe, 0x34, 0x5c, 0x9a, 0x1a
589 };
590
591 static const uint8_t ciphertext_aes128ecb_1008bytes[] = {
592         0x62, 0xa1, 0xcc, 0x1e, 0x1b, 0xc3, 0xb1, 0x11,
593         0xb5, 0x11, 0x4c, 0x37, 0xbf, 0xd0, 0x0c, 0xef,
594         0x36, 0x9f, 0x99, 0x49, 0x38, 0xc2, 0x62, 0xbd,
595         0x3e, 0x03, 0xd1, 0x02, 0xa2, 0x18, 0xdc, 0x58,
596         0x9c, 0x01, 0x99, 0xd8, 0x47, 0xeb, 0x27, 0xce,
597         0x76, 0x84, 0xa5, 0xab, 0xb7, 0x9b, 0xbb, 0x98,
598         0xc9, 0x84, 0x02, 0x6e, 0x32, 0x65, 0xc9, 0xcb,
599         0xca, 0xc7, 0xa5, 0x95, 0x11, 0xcc, 0x0a, 0x9d,
600         0x5e, 0xea, 0xba, 0x59, 0xef, 0x25, 0xc0, 0x2d,
601         0x8b, 0xa2, 0xec, 0x2f, 0x34, 0xea, 0x7c, 0xef,
602         0xee, 0x2a, 0x57, 0x80, 0xc4, 0xca, 0x5e, 0x08,
603         0x8c, 0x12, 0x13, 0x39, 0xd1, 0xc7, 0x96, 0x93,
604         0x41, 0x22, 0x97, 0x1c, 0x7d, 0xe0, 0x47, 0xab,
605         0xfa, 0xd7, 0xc6, 0x38, 0x5a, 0x39, 0xdb, 0x4c,
606         0xd4, 0x6d, 0x50, 0x2b, 0x8f, 0xb1, 0x92, 0x06,
607         0x01, 0xbf, 0xdc, 0x14, 0x5c, 0x32, 0xee, 0xb0,
608         0x6a, 0x36, 0xe8, 0xe9, 0xf3, 0x12, 0x9f, 0x1f,
609         0x00, 0xe5, 0x25, 0x3b, 0x52, 0x74, 0xba, 0x50,
610         0x17, 0x81, 0x60, 0x5c, 0x15, 0xec, 0x4d, 0xb0,
611         0x6a, 0xa1, 0xdd, 0xb4, 0xa2, 0x71, 0x01, 0xb8,
612         0x8b, 0x59, 0x93, 0x58, 0x23, 0xd6, 0x38, 0xbf,
613         0x49, 0x94, 0xb7, 0x6e, 0x22, 0x75, 0x68, 0x1f,
614         0x15, 0x2c, 0xc4, 0x46, 0x44, 0x35, 0xc8, 0x7a,
615         0x40, 0x2e, 0x55, 0x3f, 0x67, 0x4d, 0x12, 0x21,
616         0xf6, 0xb1, 0x20, 0x47, 0x4f, 0x35, 0xe4, 0x96,
617         0xf9, 0xa2, 0xdc, 0x4c, 0xe3, 0xa2, 0x13, 0x41,
618         0xed, 0x6d, 0x86, 0x80, 0x23, 0xe5, 0x2a, 0xd1,
619         0xa0, 0x69, 0x8f, 0x7e, 0x22, 0x3f, 0xf1, 0x65,
620         0x9f, 0xd7, 0x86, 0xa8, 0x78, 0x57, 0x49, 0x74,
621         0x91, 0x52, 0x91, 0xe7, 0x1e, 0xe2, 0x14, 0xe9,
622         0x88, 0xe1, 0x67, 0x12, 0x3d, 0x0a, 0x22, 0x31,
623         0x56, 0x2e, 0x36, 0xd4, 0x45, 0xc9, 0x9b, 0x7b,
624         0x09, 0x53, 0x55, 0x36, 0xed, 0xa3, 0xc2, 0x22,
625         0xac, 0x00, 0x5e, 0x57, 0xc8, 0x40, 0x65, 0xd2,
626         0x62, 0x61, 0x35, 0xf2, 0xe8, 0x4f, 0xb3, 0x9d,
627         0x2c, 0xb2, 0x12, 0x5e, 0x15, 0x47, 0xd6, 0x1c,
628         0x99, 0x80, 0xe0, 0x1c, 0x09, 0x28, 0xa0, 0x7e,
629         0x6c, 0x96, 0xc9, 0x62, 0x33, 0xd3, 0xbe, 0x53,
630         0x16, 0xa0, 0xf2, 0xa9, 0x42, 0x1c, 0x81, 0xa3,
631         0x35, 0x9b, 0x93, 0x9e, 0xc6, 0xc0, 0x83, 0x03,
632         0xb7, 0x39, 0x66, 0xc9, 0x86, 0xf8, 0x8d, 0xc0,
633         0xe2, 0x88, 0xb4, 0x1f, 0x5d, 0x15, 0x80, 0x60,
634         0x2d, 0x53, 0x1d, 0x60, 0x07, 0xbc, 0x72, 0x11,
635         0xd0, 0x0e, 0xcb, 0x70, 0x9c, 0xa0, 0x48, 0x56,
636         0x21, 0x5f, 0x18, 0xdd, 0xa3, 0x1d, 0xdb, 0xe0,
637         0x41, 0x0c, 0x9e, 0xb9, 0xa2, 0x7e, 0x32, 0xb3,
638         0x3e, 0x91, 0x9d, 0xf2, 0xa6, 0x0d, 0x8c, 0xea,
639         0xae, 0x44, 0xb2, 0x0f, 0x11, 0x35, 0x27, 0x2e,
640         0xb6, 0x3d, 0xe9, 0x63, 0x86, 0x2e, 0x81, 0xdc,
641         0xfa, 0xb4, 0x52, 0x1d, 0x9c, 0xd5, 0x44, 0x95,
642         0xc8, 0xd0, 0x66, 0x8a, 0xbd, 0xf6, 0xd1, 0xff,
643         0xeb, 0x82, 0x68, 0x58, 0x7b, 0xec, 0x0e, 0x92,
644         0x0e, 0x48, 0xd6, 0xff, 0x8d, 0xac, 0xc1, 0x41,
645         0x84, 0x9e, 0x56, 0x54, 0xf9, 0xb5, 0x1c, 0xb0,
646         0x9f, 0xde, 0xfe, 0x14, 0x42, 0x0d, 0x22, 0x12,
647         0xf2, 0x7d, 0x7b, 0xc3, 0x2e, 0x72, 0x27, 0x76,
648         0x12, 0xdf, 0x57, 0x2f, 0x97, 0x82, 0x9b, 0xcf,
649         0x75, 0x1a, 0x4a, 0x0c, 0xad, 0x29, 0x56, 0x4c,
650         0x74, 0xaf, 0x95, 0x03, 0xff, 0x9f, 0x9d, 0xc3,
651         0x2e, 0x9c, 0x1a, 0x42, 0x75, 0xe1, 0x59, 0xc9,
652         0x05, 0x12, 0x6c, 0xea, 0x2b, 0x2f, 0x89, 0xfc,
653         0xa4, 0x73, 0xc8, 0xdc, 0xf6, 0xd5, 0x50, 0x19,
654         0x22, 0x80, 0xbc, 0x08, 0x48, 0xb4, 0x45, 0x47,
655         0x25, 0x01, 0xa9, 0x55, 0x7b, 0x66, 0xbd, 0x84,
656         0x0f, 0x16, 0xfa, 0x44, 0x23, 0x51, 0x6f, 0xed,
657         0x35, 0x0e, 0x88, 0x4d, 0xda, 0xe8, 0x27, 0x94,
658         0xbd, 0x68, 0x46, 0x28, 0x79, 0x8c, 0x03, 0x03,
659         0xf0, 0x81, 0xac, 0xbc, 0xc2, 0xdd, 0xa8, 0x98,
660         0xdf, 0xe3, 0x1c, 0x1c, 0x4b, 0x43, 0x9e, 0x7b,
661         0x26, 0x3c, 0xe9, 0xff, 0x3b, 0xee, 0x35, 0xe6,
662         0x2a, 0xcf, 0xdc, 0x17, 0x85, 0x99, 0x9e, 0x88,
663         0x5c, 0x38, 0x4c, 0x56, 0x4a, 0x06, 0xeb, 0x28,
664         0xf7, 0xb5, 0x97, 0x04, 0xd4, 0x05, 0x85, 0xee,
665         0x90, 0xd7, 0xe2, 0x10, 0x8a, 0x86, 0xb2, 0x3f,
666         0xbf, 0x3f, 0x6a, 0xe6, 0xeb, 0xc1, 0x42, 0x97,
667         0xcb, 0x30, 0x41, 0x44, 0x79, 0x44, 0x7e, 0x1e,
668         0x3e, 0x55, 0xe5, 0xc8, 0xd5, 0xec, 0x64, 0x3d,
669         0x09, 0x69, 0xea, 0xdb, 0xe5, 0x08, 0x33, 0x00,
670         0x79, 0x1b, 0x31, 0xf2, 0x3d, 0xbd, 0x73, 0xe6,
671         0x0e, 0xc1, 0xb9, 0x45, 0xbf, 0xa5, 0x52, 0x5a,
672         0xcd, 0x71, 0x7a, 0x2e, 0x20, 0x1e, 0xbf, 0xff,
673         0x42, 0x0a, 0x6a, 0x1b, 0xa4, 0xad, 0x79, 0x3d,
674         0x34, 0x54, 0x73, 0xe2, 0xd6, 0x6f, 0xb0, 0xcc,
675         0xc0, 0x8a, 0x56, 0x3d, 0x4d, 0x90, 0x35, 0xe3,
676         0x4b, 0xcc, 0x40, 0x40, 0xbc, 0xcf, 0x93, 0xa0,
677         0xbd, 0x5c, 0xed, 0x22, 0x57, 0x92, 0x5c, 0x8d,
678         0xfb, 0x67, 0x9e, 0xab, 0x40, 0xc9, 0xed, 0x7c,
679         0xa1, 0xb6, 0x36, 0xb2, 0xcb, 0xbc, 0xf2, 0x1a,
680         0x46, 0x6c, 0x1f, 0xb3, 0xe4, 0xf6, 0x4c, 0x7a,
681         0x10, 0x81, 0x16, 0x93, 0x77, 0xa3, 0xa1, 0x07,
682         0xec, 0xc8, 0x01, 0x76, 0xf8, 0xe3, 0xe6, 0xae,
683         0xaf, 0x90, 0x98, 0x3a, 0xbd, 0x7d, 0x28, 0x57,
684         0xb4, 0xc5, 0xfe, 0x13, 0xab, 0x6c, 0x77, 0xc1,
685         0xc3, 0x47, 0x1d, 0x34, 0x2f, 0xdd, 0xe1, 0x7b,
686         0x8b, 0x65, 0xc4, 0xe3, 0x45, 0xda, 0x6e, 0xba,
687         0x37, 0xb1, 0x37, 0xbf, 0x63, 0x1d, 0x39, 0x77,
688         0xf0, 0xa8, 0xf8, 0xda, 0x91, 0xd3, 0x27, 0xb9,
689         0x29, 0x70, 0xf7, 0xae, 0x11, 0x6d, 0x8a, 0x8f,
690         0x2f, 0x3a, 0xe1, 0xb8, 0x9b, 0xb5, 0x2a, 0xa8,
691         0x7b, 0x86, 0x49, 0xca, 0x0c, 0x95, 0x17, 0x1e,
692         0xaf, 0x9c, 0x52, 0x6b, 0x68, 0xae, 0xe3, 0xc3,
693         0xc9, 0x8c, 0x89, 0x4b, 0xf2, 0xfb, 0xb1, 0xae,
694         0x2f, 0x80, 0xf9, 0xa3, 0xf4, 0x10, 0x09, 0x36,
695         0x81, 0x27, 0x06, 0x6d, 0xe9, 0x79, 0x8e, 0xa4,
696         0x8e, 0x12, 0xfa, 0x03, 0x8e, 0x69, 0x4c, 0x7e,
697         0xc5, 0x10, 0xd5, 0x00, 0x64, 0x87, 0xf8, 0x10,
698         0x8a, 0x8e, 0x96, 0x9e, 0xc8, 0xac, 0x42, 0x75,
699         0x97, 0x6d, 0x62, 0x3f, 0xa3, 0x29, 0x11, 0xd2,
700         0x73, 0xd3, 0x95, 0xef, 0xb4, 0x64, 0xa4, 0x37,
701         0x09, 0x15, 0x42, 0x7f, 0xc4, 0x46, 0x8b, 0x80,
702         0xa8, 0xd9, 0x2a, 0xfc, 0x38, 0x8f, 0xf9, 0xc1,
703         0xc5, 0x95, 0xad, 0x62, 0xc9, 0x6c, 0x60, 0x0b,
704         0x30, 0x04, 0x8c, 0x88, 0xb5, 0x0b, 0x73, 0x23,
705         0xa4, 0xe0, 0xb7, 0x6e, 0x4c, 0x78, 0xe5, 0x0a,
706         0xfb, 0xe1, 0xc4, 0xeb, 0x1a, 0xb4, 0xd8, 0x3c,
707         0x06, 0xb0, 0x00, 0x23, 0x86, 0xb0, 0xb4, 0x9d,
708         0x33, 0xe4, 0x21, 0xca, 0xf2, 0xad, 0x14, 0x07,
709         0x82, 0x25, 0xde, 0x85, 0xe4, 0x58, 0x56, 0x93,
710         0x09, 0x3a, 0xeb, 0xde, 0x46, 0x77, 0x76, 0xa2,
711         0x35, 0x39, 0xd0, 0xf6, 0x10, 0x81, 0x73, 0x3f,
712         0x22, 0x3b, 0xeb, 0xca, 0x00, 0x19, 0x38, 0x89,
713         0x26, 0x29, 0x7d, 0x6f, 0x70, 0xa6, 0xbb, 0x52,
714         0x58, 0xb1, 0x0a, 0x85, 0xe9, 0x0b, 0x74, 0x2f,
715         0x08, 0xe8, 0xa4, 0x4d, 0xa1, 0xcf, 0xf2, 0x75,
716         0xed, 0x05, 0xae, 0x7f, 0x10, 0xb1, 0x71, 0x26,
717         0xc5, 0xc7, 0xdc, 0xb0, 0x2d, 0x26, 0xf1, 0xb4
718 };
719
720 /** AES-128-ECB test vector */
721 static const struct blockcipher_test_data aes_test_data_15 = {
722         .crypto_algo = RTE_CRYPTO_CIPHER_AES_ECB,
723         .cipher_key = {
724                 .data = {
725                          0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
726                          0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
727                 },
728                 .len = 16
729         },
730         .iv = {
731                .data = { 0 },
732                .len = 0
733         },
734         .plaintext = {
735                 .data = plaintext_aes128ecb,
736                 .len = 64
737         },
738         .ciphertext = {
739                 .data = ciphertext_aes128ecb,
740                 .len = 64
741         }
742 };
743
744 /** AES-192-ECB test vector */
745 static const struct blockcipher_test_data aes_test_data_16 = {
746         .crypto_algo = RTE_CRYPTO_CIPHER_AES_ECB,
747         .cipher_key = {
748                 .data = {
749                          0x8e, 0x73, 0xb0, 0xf7, 0xda, 0x0e, 0x64, 0x52,
750                          0xc8, 0x10, 0xf3, 0x2b, 0x80, 0x90, 0x79, 0xe5,
751                          0x62, 0xf8, 0xea, 0xd2, 0x52, 0x2c, 0x6b, 0x7b
752                 },
753                 .len = 24
754         },
755         .iv = {
756                .data = { 0 },
757                .len = 0
758         },
759         .plaintext = {
760                 .data = plaintext_aes192ecb,
761                 .len = 64
762         },
763         .ciphertext = {
764                 .data = ciphertext_aes192ecb,
765                 .len = 64
766         }
767 };
768
769 /** AES-256-ECB test vector */
770 static const struct blockcipher_test_data aes_test_data_17 = {
771         .crypto_algo = RTE_CRYPTO_CIPHER_AES_ECB,
772         .cipher_key = {
773                 .data = {
774                          0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe,
775                          0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81,
776                          0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7,
777                          0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4
778                 },
779                 .len = 32
780         },
781         .iv = {
782                .data = { 0 },
783                .len = 0
784         },
785         .plaintext = {
786                 .data = plaintext_aes256ecb,
787                 .len = 64
788         },
789         .ciphertext = {
790                 .data = ciphertext_aes256ecb,
791                 .len = 64
792         }
793 };
794
795 /** AES-128-ECB 128 byte test vector */
796 static const struct blockcipher_test_data aes_test_data_18 = {
797         .crypto_algo = RTE_CRYPTO_CIPHER_AES_ECB,
798         .cipher_key = {
799                 .data = {
800                          0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
801                          0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
802                 },
803                 .len = 16
804         },
805         .iv = {
806                .data = { 0 },
807                .len = 0
808         },
809         .plaintext = {
810                 .data = plaintext_aes128ecb_128bytes,
811                 .len = 128
812         },
813         .ciphertext = {
814                 .data = ciphertext_aes128ecb_128bytes,
815                 .len = 128
816         }
817 };
818
819 /** AES-192-ECB 192 bytes test vector */
820 static const struct blockcipher_test_data aes_test_data_19 = {
821         .crypto_algo = RTE_CRYPTO_CIPHER_AES_ECB,
822         .cipher_key = {
823                 .data = {
824                          0x8e, 0x73, 0xb0, 0xf7, 0xda, 0x0e, 0x64, 0x52,
825                          0xc8, 0x10, 0xf3, 0x2b, 0x80, 0x90, 0x79, 0xe5,
826                          0x62, 0xf8, 0xea, 0xd2, 0x52, 0x2c, 0x6b, 0x7b
827                 },
828                 .len = 24
829         },
830         .iv = {
831                .data = { 0 },
832                .len = 0
833         },
834         .plaintext = {
835                 .data = plaintext_aes192ecb_192bytes,
836                 .len = 64
837         },
838         .ciphertext = {
839                 .data = ciphertext_aes192ecb_192bytes,
840                 .len = 64
841         }
842 };
843
844 /** AES-256-ECB 256 byte test vector */
845 static const struct blockcipher_test_data aes_test_data_20 = {
846         .crypto_algo = RTE_CRYPTO_CIPHER_AES_ECB,
847         .cipher_key = {
848                 .data = {
849                          0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe,
850                          0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81,
851                          0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7,
852                          0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4
853                 },
854                 .len = 32
855         },
856         .iv = {
857                .data = { 0 },
858                .len = 0
859         },
860         .plaintext = {
861                 .data = plaintext_aes256ecb_256bytes,
862                 .len = 256
863         },
864         .ciphertext = {
865                 .data = ciphertext_aes256ecb_256bytes,
866                 .len = 256
867         }
868 };
869
870 /** AES-128-ECB 1008 byte test vector */
871 static const struct blockcipher_test_data aes_test_data_21 = {
872         .crypto_algo = RTE_CRYPTO_CIPHER_AES_ECB,
873         .cipher_key = {
874                 .data = {
875                          0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
876                          0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
877                 },
878                 .len = 16
879         },
880         .iv = {
881                .data = { 0 },
882                .len = 0
883         },
884         .plaintext = {
885                 .data = plaintext_aes128ecb_1008bytes,
886                 .len = 1008
887         },
888         .ciphertext = {
889                 .data = ciphertext_aes128ecb_1008bytes,
890                 .len = 1008
891         }
892 };
893
894 /* NULL cipher NULL auth 8-byte multiple test vector */
895 static const struct blockcipher_test_data null_test_data_chain_x8_multiple = {
896         .crypto_algo = RTE_CRYPTO_CIPHER_NULL,
897         .cipher_key = { /* arbitrary data - shouldn't be used */
898                 .data = {
899                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
900                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
901                 },
902                 .len = 16
903         },
904         .iv = {                 /* arbitrary data - shouldn't be used */
905                 .data = {
906                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
907                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
908                 },
909                 .len = 16
910         },
911         .plaintext = {
912                 .data = plaintext_aes_common,
913                 .len = 512
914         },
915         .ciphertext = {
916                 .data = plaintext_aes_common,
917                 .len = 512
918         },
919         .auth_algo = RTE_CRYPTO_AUTH_NULL,
920         .auth_key = {           /* arbitrary data - shouldn't be used */
921                 .data = {
922                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
923                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
924                         0xDE, 0xF4, 0xDE, 0xAD
925                 },
926                 .len = 20
927         },
928         .digest = {
929                 .data = {
930                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
931                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
932                         0x00, 0x00, 0x00, 0x00
933                 },
934                 .len = 20,
935                 .truncated_len = 12
936         }
937 };
938
939 /* NULL cipher NULL auth 4-byte multiple test vector */
940 static const struct blockcipher_test_data null_test_data_chain_x4_multiple = {
941         .crypto_algo = RTE_CRYPTO_CIPHER_NULL,
942         .cipher_key = { /* arbitrary data - shouldn't be used */
943                 .data = {
944                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
945                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
946                 },
947                 .len = 16
948         },
949         .iv = {                 /* arbitrary data - shouldn't be used */
950                 .data = {
951                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
952                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
953                 },
954                 .len = 16
955         },
956         .plaintext = {
957                 .data = plaintext_aes128ctr,
958                 .len = 20
959         },
960         .ciphertext = {
961                 .data = plaintext_aes128ctr,
962                 .len = 20
963         },
964         .auth_algo = RTE_CRYPTO_AUTH_NULL,
965         .auth_key = {           /* arbitrary data - shouldn't be used */
966                 .data = {
967                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
968                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
969                         0xDE, 0xF4, 0xDE, 0xAD
970                 },
971                 .len = 20
972         },
973         .digest = {
974                 .data = {
975                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
976                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
977                         0x00, 0x00, 0x00, 0x00
978                 },
979                 .len = 20,
980                 .truncated_len = 12
981         }
982 };
983
984 /* NULL cipher NULL auth 1-byte multiple test vector */
985 static const struct blockcipher_test_data null_test_data_chain_x1_multiple = {
986         .crypto_algo = RTE_CRYPTO_CIPHER_NULL,
987         .cipher_key = { /* arbitrary data - shouldn't be used */
988                 .data = {
989                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
990                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
991                 },
992                 .len = 16
993         },
994         .iv = {                 /* arbitrary data - shouldn't be used */
995                 .data = {
996                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
997                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
998                 },
999                 .len = 16
1000         },
1001         .plaintext = {
1002                 .data = plaintext_aes128ctr,
1003                 .len = 21
1004         },
1005         .ciphertext = {
1006                 .data = plaintext_aes128ctr,
1007                 .len = 21
1008         },
1009         .auth_algo = RTE_CRYPTO_AUTH_NULL,
1010         .auth_key = {           /* arbitrary data - shouldn't be used */
1011                 .data = {
1012                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1013                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1014                         0xDE, 0xF4, 0xDE, 0xAD
1015                 },
1016                 .len = 20
1017         },
1018         .digest = {
1019                 .data = {
1020                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1021                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1022                         0x00, 0x00, 0x00, 0x00
1023                 },
1024                 .len = 20,
1025                 .truncated_len = 12
1026         }
1027 };
1028
1029 static const uint8_t ciphertext512_aes128cbc_aad[] = {
1030         0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C,
1031         0x1D, 0x7C, 0x76, 0xED, 0xC2, 0x10, 0x3C, 0xB5,
1032         0x14, 0x07, 0x3C, 0x33, 0x7B, 0xBE, 0x9E, 0xA9,
1033         0x01, 0xC5, 0xAA, 0xA6, 0xB6, 0x7A, 0xE1, 0xDB,
1034         0x39, 0xAA, 0xAA, 0xF4, 0xEE, 0xA7, 0x71, 0x71,
1035         0x78, 0x0D, 0x5A, 0xD4, 0xF9, 0xCD, 0x75, 0xD1,
1036         0x9C, 0x7F, 0xC8, 0x58, 0x46, 0x7A, 0xD1, 0x81,
1037         0xEA, 0xCC, 0x08, 0xDC, 0x82, 0x73, 0x22, 0x08,
1038         0x11, 0x73, 0x7C, 0xB1, 0x84, 0x6A, 0x8E, 0x67,
1039         0x3F, 0x5D, 0xDB, 0x0E, 0xE2, 0xC2, 0xCB, 0x6D,
1040         0x88, 0xEC, 0x3F, 0x50, 0x44, 0xD3, 0x47, 0x6E,
1041         0xDD, 0x42, 0xDC, 0x2A, 0x5E, 0x5C, 0x50, 0x24,
1042         0x57, 0x8A, 0xE7, 0xC5, 0x53, 0x6D, 0x89, 0x33,
1043         0x21, 0x65, 0x82, 0xD6, 0xE9, 0xE7, 0x77, 0x10,
1044         0xC2, 0x09, 0x91, 0xC1, 0x42, 0x62, 0x36, 0xF4,
1045         0x43, 0x37, 0x95, 0xB3, 0x7E, 0x21, 0xC5, 0x3E,
1046         0x65, 0xCB, 0xB6, 0xAA, 0xEC, 0xA5, 0xC6, 0x5C,
1047         0x4D, 0xBE, 0x14, 0xF1, 0x98, 0xBF, 0x6C, 0x8A,
1048         0x9E, 0x9F, 0xD4, 0xB4, 0xF2, 0x22, 0x96, 0x99,
1049         0x37, 0x32, 0xB6, 0xC1, 0x04, 0x66, 0x52, 0x37,
1050         0x5D, 0x5F, 0x58, 0x92, 0xC9, 0x97, 0xEA, 0x60,
1051         0x60, 0x27, 0x57, 0xF9, 0x47, 0x4F, 0xBC, 0xDF,
1052         0x05, 0xBD, 0x37, 0x87, 0xBB, 0x09, 0xA5, 0xBE,
1053         0xC1, 0xFC, 0x32, 0x86, 0x6A, 0xB7, 0x8B, 0x1E,
1054         0x6B, 0xCE, 0x8D, 0x81, 0x63, 0x4C, 0xF2, 0x7F,
1055         0xD1, 0x45, 0x82, 0xE8, 0x0D, 0x1C, 0x4D, 0xA8,
1056         0xBF, 0x2D, 0x2B, 0x52, 0xE5, 0xDB, 0xAB, 0xFD,
1057         0x04, 0xA2, 0xA1, 0x1E, 0x21, 0x1D, 0x06, 0x9A,
1058         0xC2, 0x7D, 0x99, 0xFC, 0xB4, 0x72, 0x89, 0x41,
1059         0x55, 0x69, 0xFA, 0x1F, 0x78, 0x2F, 0x35, 0x59,
1060         0xD7, 0x59, 0x6D, 0xA6, 0x45, 0xC9, 0x2B, 0x06,
1061         0x6C, 0xEC, 0x83, 0x34, 0xA5, 0x08, 0xDB, 0x6F,
1062         0xDE, 0x75, 0x21, 0x9B, 0xB0, 0xCB, 0x0A, 0xAE,
1063         0x22, 0x99, 0x74, 0x1C, 0x9D, 0x37, 0x0E, 0xC6,
1064         0x3A, 0x45, 0x49, 0xE5, 0xE3, 0x21, 0x11, 0xEA,
1065         0x34, 0x25, 0xD5, 0x76, 0xB0, 0x30, 0x19, 0x87,
1066         0x14, 0x3A, 0x10, 0x6F, 0x6D, 0xDD, 0xE9, 0x60,
1067         0x6A, 0x00, 0x6A, 0x4C, 0x5B, 0x85, 0x3E, 0x1A,
1068         0x41, 0xFA, 0xDE, 0x2D, 0x2F, 0x2E, 0x5B, 0x79,
1069         0x09, 0x66, 0x65, 0xD0, 0xDB, 0x32, 0x05, 0xB5,
1070         0xEA, 0xFB, 0x6A, 0xD5, 0x43, 0xF8, 0xBD, 0x98,
1071         0x7B, 0x8E, 0x3B, 0x85, 0x89, 0x5D, 0xC5, 0x59,
1072         0x54, 0x22, 0x75, 0xA8, 0x60, 0xDC, 0x0A, 0x37,
1073         0x8C, 0xD8, 0x05, 0xEA, 0x62, 0x62, 0x71, 0x98,
1074         0x0C, 0xCB, 0xCE, 0x0A, 0xD9, 0xE6, 0xE8, 0xA7,
1075         0xB3, 0x2D, 0x89, 0xA7, 0x60, 0xF0, 0x42, 0xA7,
1076         0x3D, 0x80, 0x44, 0xE7, 0xC1, 0xA6, 0x88, 0xB1,
1077         0x4F, 0xC0, 0xB1, 0xAF, 0x40, 0xF3, 0x54, 0x72,
1078         0x8F, 0xAF, 0x47, 0x96, 0x19, 0xEB, 0xA5, 0x5C,
1079         0x00, 0x3B, 0x36, 0xC8, 0x3F, 0x1E, 0x63, 0x54,
1080         0xF3, 0x3D, 0x85, 0x44, 0x9B, 0x9B, 0x20, 0xE3,
1081         0x9D, 0xEF, 0x62, 0x21, 0xA1, 0x0B, 0x78, 0xF4,
1082         0x2B, 0x89, 0x66, 0x5E, 0x97, 0xC6, 0xC4, 0x55,
1083         0x35, 0x32, 0xD7, 0x44, 0x95, 0x9A, 0xE7, 0xF2,
1084         0x57, 0x52, 0x5B, 0x92, 0x86, 0x8F, 0x8B, 0xCF,
1085         0x41, 0x89, 0xF6, 0x2A, 0xD3, 0x42, 0x87, 0x43,
1086         0x56, 0x1F, 0x0E, 0x49, 0xF1, 0x32, 0x6D, 0xA8,
1087         0x62, 0xDF, 0x47, 0xBB, 0xB6, 0x53, 0xF8, 0x5C,
1088         0x36, 0xDA, 0x34, 0x34, 0x2D, 0x2E, 0x1D, 0x33,
1089         0xAF, 0x6A, 0x1E, 0xF1, 0xC9, 0x72, 0xB5, 0x3C,
1090         0x64, 0x4C, 0x96, 0x12, 0x78, 0x67, 0x6A, 0xE5,
1091         0x8B, 0x05, 0x80, 0xAE, 0x7D, 0xE5, 0x9B, 0x24,
1092         0xDB, 0xFF, 0x1E, 0xB8, 0x36, 0x6D, 0x3D, 0x5D,
1093         0x73, 0x65, 0x72, 0x73, 0x2C, 0x20, 0x73, 0x75
1094 };
1095
1096 static const uint8_t plaintext_aes_common_digest_enc[] = {
1097         0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C,
1098         0x6F, 0x75, 0x73, 0x79, 0x20, 0x65, 0x61, 0x72,
1099         0x74, 0x68, 0x21, 0x20, 0x48, 0x65, 0x20, 0x77,
1100         0x6F, 0x6E, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20,
1101         0x68, 0x6F, 0x77, 0x20, 0x6D, 0x61, 0x6E, 0x79,
1102         0x20, 0x70, 0x65, 0x6F, 0x70, 0x6C, 0x65, 0x20,
1103         0x77, 0x65, 0x72, 0x65, 0x20, 0x64, 0x65, 0x73,
1104         0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x20, 0x74,
1105         0x68, 0x61, 0x74, 0x20, 0x73, 0x61, 0x6D, 0x65,
1106         0x20, 0x6E, 0x69, 0x67, 0x68, 0x74, 0x20, 0x65,
1107         0x76, 0x65, 0x6E, 0x20, 0x69, 0x6E, 0x20, 0x68,
1108         0x69, 0x73, 0x20, 0x6F, 0x77, 0x6E, 0x20, 0x70,
1109         0x72, 0x6F, 0x73, 0x70, 0x65, 0x72, 0x6F, 0x75,
1110         0x73, 0x20, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x72,
1111         0x79, 0x2C, 0x20, 0x68, 0x6F, 0x77, 0x20, 0x6D,
1112         0x61, 0x6E, 0x79, 0x20, 0x68, 0x6F, 0x6D, 0x65,
1113         0x73, 0x20, 0x77, 0x65, 0x72, 0x65, 0x20, 0x73,
1114         0x68, 0x61, 0x6E, 0x74, 0x69, 0x65, 0x73, 0x2C,
1115         0x20, 0x68, 0x6F, 0x77, 0x20, 0x6D, 0x61, 0x6E,
1116         0x79, 0x20, 0x68, 0x75, 0x73, 0x62, 0x61, 0x6E,
1117         0x64, 0x73, 0x20, 0x77, 0x65, 0x72, 0x65, 0x20,
1118         0x64, 0x72, 0x75, 0x6E, 0x6B, 0x20, 0x61, 0x6E,
1119         0x64, 0x20, 0x77, 0x69, 0x76, 0x65, 0x73, 0x20,
1120         0x73, 0x6F, 0x63, 0x6B, 0x65, 0x64, 0x2C, 0x20,
1121         0x61, 0x6E, 0x64, 0x20, 0x68, 0x6F, 0x77, 0x20,
1122         0x6D, 0x61, 0x6E, 0x79, 0x20, 0x63, 0x68, 0x69,
1123         0x6C, 0x64, 0x72, 0x65, 0x6E, 0x20, 0x77, 0x65,
1124         0x72, 0x65, 0x20, 0x62, 0x75, 0x6C, 0x6C, 0x69,
1125         0x65, 0x64, 0x2C, 0x20, 0x61, 0x62, 0x75, 0x73,
1126         0x65, 0x64, 0x2C, 0x20, 0x6F, 0x72, 0x20, 0x61,
1127         0x62, 0x61, 0x6E, 0x64, 0x6F, 0x6E, 0x65, 0x64,
1128         0x2E, 0x20, 0x48, 0x6F, 0x77, 0x20, 0x6D, 0x61,
1129         0x6E, 0x79, 0x20, 0x66, 0x61, 0x6D, 0x69, 0x6C,
1130         0x69, 0x65, 0x73, 0x20, 0x68, 0x75, 0x6E, 0x67,
1131         0x65, 0x72, 0x65, 0x64, 0x20, 0x66, 0x6F, 0x72,
1132         0x20, 0x66, 0x6F, 0x6F, 0x64, 0x20, 0x74, 0x68,
1133         0x65, 0x79, 0x20, 0x63, 0x6F, 0x75, 0x6C, 0x64,
1134         0x20, 0x6E, 0x6F, 0x74, 0x20, 0x61, 0x66, 0x66,
1135         0x6F, 0x72, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x62,
1136         0x75, 0x79, 0x3F, 0x20, 0x48, 0x6F, 0x77, 0x20,
1137         0x6D, 0x61, 0x6E, 0x79, 0x20, 0x68, 0x65, 0x61,
1138         0x72, 0x74, 0x73, 0x20, 0x77, 0x65, 0x72, 0x65,
1139         0x20, 0x62, 0x72, 0x6F, 0x6B, 0x65, 0x6E, 0x3F,
1140         0x20, 0x48, 0x6F, 0x77, 0x20, 0x6D, 0x61, 0x6E,
1141         0x79, 0x20, 0x73, 0x75, 0x69, 0x63, 0x69, 0x64,
1142         0x65, 0x73, 0x20, 0x77, 0x6F, 0x75, 0x6C, 0x64,
1143         0x20, 0x74, 0x61, 0x6B, 0x65, 0x20, 0x70, 0x6C,
1144         0x61, 0x63, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74,
1145         0x20, 0x73, 0x61, 0x6D, 0x65, 0x20, 0x6E, 0x69,
1146         0x67, 0x68, 0x74, 0x2C, 0x20, 0x68, 0x6F, 0x77,
1147         0x20, 0x6D, 0x61, 0x6E, 0x79, 0x20, 0x70, 0x65,
1148         0x6F, 0x70, 0x6C, 0x65, 0x20, 0x77, 0x6F, 0x75,
1149         0x6C, 0x64, 0x20, 0x67, 0x6F, 0x20, 0x69, 0x6E,
1150         0x73, 0x61, 0x6E, 0x65, 0x3F, 0x20, 0x48, 0x6F,
1151         0x77, 0x20, 0x6D, 0x61, 0x6E, 0x79, 0x20, 0x63,
1152         0x6F, 0x63, 0x6B, 0x72, 0x6F, 0x61, 0x63, 0x68,
1153         0x65, 0x73, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x6C,
1154         0x61, 0x6E, 0x64, 0x6C, 0x6F, 0x72, 0x64, 0x73,
1155         0x20, 0x77, 0x6F, 0x75, 0x6C, 0x64, 0x20, 0x74,
1156         0x72, 0x69, 0x75, 0x6D, 0x70, 0x68, 0x3F, 0x20,
1157         0x48, 0x6F, 0x77, 0x20, 0x6D, 0x61, 0x6E, 0x79,
1158         0x20, 0x77, 0x69, 0x6E, 0x6E, 0x65, 0x72, 0x73,
1159         0x20, 0x77, 0x65, 0x72, 0x65, 0x20, 0x6c, 0x6f,
1160         0x73, 0x65, 0x72, 0x73, 0x2c, 0x20, 0x73, 0x75,
1161         /* mac */
1162         0xC4, 0xB7, 0x0E, 0x6B, 0xDE, 0xD1, 0xE7, 0x77,
1163         0x7E, 0x2E, 0x8F, 0xFC, 0x48, 0x39, 0x46, 0x17,
1164         0x3F, 0x91, 0x64, 0x59
1165 };
1166
1167 static const uint8_t ciphertext512_aes128cbc_digest_enc[] = {
1168         0x8B, 0x4D, 0xDA, 0x1B, 0xCF, 0x04, 0xA0, 0x31,
1169         0xB4, 0xBF, 0xBD, 0x68, 0x43, 0x20, 0x7E, 0x76,
1170         0xB1, 0x96, 0x8B, 0xA2, 0x7C, 0xA2, 0x83, 0x9E,
1171         0x39, 0x5A, 0x2F, 0x7E, 0x92, 0xB4, 0x48, 0x1A,
1172         0x3F, 0x6B, 0x5D, 0xDF, 0x52, 0x85, 0x5F, 0x8E,
1173         0x42, 0x3C, 0xFB, 0xE9, 0x1A, 0x24, 0xD6, 0x08,
1174         0xDD, 0xFD, 0x16, 0xFB, 0xE9, 0x55, 0xEF, 0xF0,
1175         0xA0, 0x8D, 0x13, 0xAB, 0x81, 0xC6, 0x90, 0x01,
1176         0xB5, 0x18, 0x84, 0xB3, 0xF6, 0xE6, 0x11, 0x57,
1177         0xD6, 0x71, 0xC6, 0x3C, 0x3F, 0x2F, 0x33, 0xEE,
1178         0x24, 0x42, 0x6E, 0xAC, 0x0B, 0xCA, 0xEC, 0xF9,
1179         0x84, 0xF8, 0x22, 0xAA, 0x60, 0xF0, 0x32, 0xA9,
1180         0x75, 0x75, 0x3B, 0xCB, 0x70, 0x21, 0x0A, 0x8D,
1181         0x0F, 0xE0, 0xC4, 0x78, 0x2B, 0xF8, 0x97, 0xE3,
1182         0xE4, 0x26, 0x4B, 0x29, 0xDA, 0x88, 0xCD, 0x46,
1183         0xEC, 0xAA, 0xF9, 0x7F, 0xF1, 0x15, 0xEA, 0xC3,
1184         0x87, 0xE6, 0x31, 0xF2, 0xCF, 0xDE, 0x4D, 0x80,
1185         0x70, 0x91, 0x7E, 0x0C, 0xF7, 0x26, 0x3A, 0x92,
1186         0x4F, 0x18, 0x83, 0xC0, 0x8F, 0x59, 0x01, 0xA5,
1187         0x88, 0xD1, 0xDB, 0x26, 0x71, 0x27, 0x16, 0xF5,
1188         0xEE, 0x10, 0x82, 0xAC, 0x68, 0x26, 0x9B, 0xE2,
1189         0x6D, 0xD8, 0x9A, 0x80, 0xDF, 0x04, 0x31, 0xD5,
1190         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
1191         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
1192         0x73, 0x02, 0x42, 0xC9, 0x23, 0x18, 0x8E, 0xB4,
1193         0x6F, 0xB4, 0xA3, 0x54, 0x6E, 0x88, 0x3B, 0x62,
1194         0x7C, 0x02, 0x8D, 0x4C, 0x9F, 0xC8, 0x45, 0xF4,
1195         0xC9, 0xDE, 0x4F, 0xEB, 0x22, 0x83, 0x1B, 0xE4,
1196         0x49, 0x37, 0xE4, 0xAD, 0xE7, 0xCD, 0x21, 0x54,
1197         0xBC, 0x1C, 0xC2, 0x04, 0x97, 0xB4, 0x10, 0x61,
1198         0xF0, 0xE4, 0xEF, 0x27, 0x63, 0x3A, 0xDA, 0x91,
1199         0x41, 0x25, 0x62, 0x1C, 0x5C, 0xB6, 0x38, 0x4A,
1200         0x88, 0x71, 0x59, 0x5A, 0x8D, 0xA0, 0x09, 0xAF,
1201         0x72, 0x94, 0xD7, 0x79, 0x5C, 0x60, 0x7C, 0x8F,
1202         0x4C, 0xF5, 0xD9, 0xA1, 0x39, 0x6D, 0x81, 0x28,
1203         0xEF, 0x13, 0x28, 0xDF, 0xF5, 0x3E, 0xF7, 0x8E,
1204         0x09, 0x9C, 0x78, 0x18, 0x79, 0xB8, 0x68, 0xD7,
1205         0xA8, 0x29, 0x62, 0xAD, 0xDE, 0xE1, 0x61, 0x76,
1206         0x1B, 0x05, 0x16, 0xCD, 0xBF, 0x02, 0x8E, 0xA6,
1207         0x43, 0x6E, 0x92, 0x55, 0x4F, 0x60, 0x9C, 0x03,
1208         0xB8, 0x4F, 0xA3, 0x02, 0xAC, 0xA8, 0xA7, 0x0C,
1209         0x1E, 0xB5, 0x6B, 0xF8, 0xC8, 0x4D, 0xDE, 0xD2,
1210         0xB0, 0x29, 0x6E, 0x40, 0xE6, 0xD6, 0xC9, 0xE6,
1211         0xB9, 0x0F, 0xB6, 0x63, 0xF5, 0xAA, 0x2B, 0x96,
1212         0xA7, 0x16, 0xAC, 0x4E, 0x0A, 0x33, 0x1C, 0xA6,
1213         0xE6, 0xBD, 0x8A, 0xCF, 0x40, 0xA9, 0xB2, 0xFA,
1214         0x63, 0x27, 0xFD, 0x9B, 0xD9, 0xFC, 0xD5, 0x87,
1215         0x8D, 0x4C, 0xB6, 0xA4, 0xCB, 0xE7, 0x74, 0x55,
1216         0xF4, 0xFB, 0x41, 0x25, 0xB5, 0x4B, 0x0A, 0x1B,
1217         0xB1, 0xD6, 0xB7, 0xD9, 0x47, 0x2A, 0xC3, 0x98,
1218         0x6A, 0xC4, 0x03, 0x73, 0x1F, 0x93, 0x6E, 0x53,
1219         0x19, 0x25, 0x64, 0x15, 0x83, 0xF9, 0x73, 0x2A,
1220         0x74, 0xB4, 0x93, 0x69, 0xC4, 0x72, 0xFC, 0x26,
1221         0xA2, 0x9F, 0x43, 0x45, 0xDD, 0xB9, 0xEF, 0x36,
1222         0xC8, 0x3A, 0xCD, 0x99, 0x9B, 0x54, 0x1A, 0x36,
1223         0xC1, 0x59, 0xF8, 0x98, 0xA8, 0xCC, 0x28, 0x0D,
1224         0x73, 0x4C, 0xEE, 0x98, 0xCB, 0x7C, 0x58, 0x7E,
1225         0x20, 0x75, 0x1E, 0xB7, 0xC9, 0xF8, 0xF2, 0x0E,
1226         0x63, 0x9E, 0x05, 0x78, 0x1A, 0xB6, 0xA8, 0x7A,
1227         0xF9, 0x98, 0x6A, 0xA6, 0x46, 0x84, 0x2E, 0xF6,
1228         0x4B, 0xDC, 0x9B, 0x8F, 0x9B, 0x8F, 0xEE, 0xB4,
1229         0xAA, 0x3F, 0xEE, 0xC0, 0x37, 0x27, 0x76, 0xC7,
1230         0x95, 0xBB, 0x26, 0x74, 0x69, 0x12, 0x7F, 0xF1,
1231         0xBB, 0xFF, 0xAE, 0xB5, 0x99, 0x6E, 0xCB, 0x0C,
1232         /* encrypted mac */
1233         0x39, 0x34, 0x16, 0x84, 0xE7, 0x90, 0x02, 0xB1,
1234         0x3E, 0x92, 0xCB, 0x58, 0x98, 0xBA, 0x7C, 0x98,
1235         0x8B, 0x90, 0xFB, 0x5E, 0x9D, 0x74, 0xCC, 0x56,
1236         0xE3, 0x55, 0xB1, 0xC8, 0xC8, 0x7C, 0xB2, 0xE7
1237 };
1238
1239 static const uint8_t plaintext_aes_common_short_digest_enc[] = {
1240         0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1241         0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1242         0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1243         0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1244         0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1245         0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
1246         0xDD, 0xDD
1247 };
1248
1249 static const uint8_t ciphertext512_aes128cbc_short_digest_enc[] = {
1250         0x6D, 0xB1, 0x23, 0x86, 0x58, 0x54, 0x83, 0xE7,
1251         0x3B, 0x27, 0x85, 0xA7, 0x06, 0xBC, 0x4A, 0xFB,
1252         0x16, 0xD8, 0x56, 0x7C, 0x39, 0xC6, 0xE7, 0x1A,
1253         0x67, 0xA8, 0x48, 0x22, 0xD6, 0xFF, 0x96, 0xB3,
1254         0xA1, 0x52, 0x52, 0x83, 0xE6, 0x2E, 0x6A, 0xC9,
1255         0x57, 0x8E, 0x34, 0x6F, 0xEE, 0x41, 0xF5, 0xBD,
1256         0x6B, 0x89, 0x31, 0x64, 0x89, 0xAB, 0xDE, 0xA7,
1257         0xBD, 0xFD, 0x46, 0x40, 0xE7, 0x13, 0x23, 0x84,
1258         0xDD, 0xCB, 0x35, 0x87, 0x4E, 0x57, 0xB7, 0x97,
1259         0x9E, 0xAB, 0xFB, 0xE7, 0x18, 0x82, 0x05, 0xDF
1260 };
1261
1262 /* AES128-CTR-SHA1 test vector */
1263 static const struct blockcipher_test_data aes_test_data_1 = {
1264         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
1265         .cipher_key = {
1266                 .data = {
1267                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
1268                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
1269                 },
1270                 .len = 16
1271         },
1272         .iv = {
1273                 .data = {
1274                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
1275                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
1276                 },
1277                 .len = 16
1278         },
1279         .plaintext = {
1280                 .data = plaintext_aes128ctr,
1281                 .len = 64
1282         },
1283         .ciphertext = {
1284                 .data = ciphertext64_aes128ctr,
1285                 .len = 64
1286         },
1287         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1288         .auth_key = {
1289                 .data = {
1290                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1291                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1292                         0xDE, 0xF4, 0xDE, 0xAD
1293                 },
1294                 .len = 20
1295         },
1296         .digest = {
1297                 .data = {
1298                         0x9B, 0x6F, 0x0C, 0x43, 0xF5, 0xC1, 0x3E, 0xB0,
1299                         0xB1, 0x70, 0xB8, 0x2B, 0x33, 0x09, 0xD2, 0xB2,
1300                         0x56, 0x20, 0xFB, 0xFE
1301                 },
1302                 .len = 20,
1303                 .truncated_len = 12
1304         }
1305 };
1306
1307 /** AES-192-CTR XCBC test vector */
1308 static const struct blockcipher_test_data aes_test_data_2 = {
1309         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
1310         .cipher_key = {
1311                 .data = {
1312                         0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C,
1313                         0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F,
1314                         0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4
1315                 },
1316                 .len = 24
1317         },
1318         .iv = {
1319                 .data = {
1320                         0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
1321                         0xB8, 0x7A, 0x4B, 0xED, 0x2B, 0xAF, 0xBF, 0x57
1322                 },
1323                 .len = 16
1324         },
1325         .plaintext = {
1326                 .data = plaintext_aes192ctr,
1327                 .len = 64
1328         },
1329         .ciphertext = {
1330                 .data = ciphertext64_aes192ctr,
1331                 .len = 64
1332         },
1333         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
1334         .auth_key = {
1335                 .data = {
1336                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
1337                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
1338                 },
1339                 .len = 16
1340         },
1341         .digest = {
1342                 .data = {
1343                         0xCA, 0x33, 0xB3, 0x3B, 0x16, 0x94, 0xAA, 0x55,
1344                         0x36, 0x6B, 0x45, 0x46
1345                 },
1346                 .len = 12,
1347                 .truncated_len = 12
1348         }
1349 };
1350
1351 /** AES-256-CTR SHA1 test vector */
1352 static const struct blockcipher_test_data aes_test_data_3 = {
1353         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
1354         .cipher_key = {
1355                 .data = {
1356                         0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE,
1357                         0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81,
1358                         0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7,
1359                         0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4
1360                 },
1361                 .len = 32
1362         },
1363         .iv = {
1364                 .data = {
1365                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
1366                         0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
1367                 },
1368                 .len = 16
1369         },
1370         .plaintext = {
1371                 .data = plaintext_aes256ctr,
1372                 .len = 64
1373         },
1374         .ciphertext = {
1375                 .data = ciphertext64_aes256ctr,
1376                 .len = 64
1377         },
1378         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1379         .auth_key = {
1380                 .data = {
1381                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1382                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1383                         0xDE, 0xF4, 0xDE, 0xAD
1384                 },
1385                 .len = 20
1386         },
1387         .digest = {
1388                 .data = {
1389                         0x3B, 0x1A, 0x9D, 0x82, 0x35, 0xD5, 0xDD, 0x64,
1390                         0xCC, 0x1B, 0xA9, 0xC0, 0xEB, 0xE9, 0x42, 0x16,
1391                         0xE7, 0x87, 0xA3, 0xEF
1392                 },
1393                 .len = 20,
1394                 .truncated_len = 12
1395         }
1396 };
1397
1398 /* AES128-CTR-SHA1 test vector (12-byte IV) */
1399 static const struct blockcipher_test_data aes_test_data_1_IV_12_bytes = {
1400         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
1401         .cipher_key = {
1402                 .data = {
1403                         0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
1404                         0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
1405                 },
1406                 .len = 16
1407         },
1408         .iv = {
1409                 .data = {
1410                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
1411                         0xF8, 0xF9, 0xFA, 0xFB
1412                 },
1413                 .len = 12
1414         },
1415         .plaintext = {
1416                 .data = plaintext_aes128ctr,
1417                 .len = 64
1418         },
1419         .ciphertext = {
1420                 .data = ciphertext64_aes128ctr_IV_12bytes,
1421                 .len = 64
1422         },
1423         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1424         .auth_key = {
1425                 .data = {
1426                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1427                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1428                         0xDE, 0xF4, 0xDE, 0xAD
1429                 },
1430                 .len = 20
1431         },
1432         .digest = {
1433                 .data = {
1434                         0x5C, 0x34, 0x6B, 0xE4, 0x9A, 0x7F, 0x4A, 0xC3,
1435                         0x82, 0xBE, 0xA0, 0x12, 0xD1, 0xF0, 0x15, 0xFA,
1436                         0xCF, 0xC8, 0x7F, 0x60
1437                 },
1438                 .len = 20,
1439                 .truncated_len = 12
1440         }
1441 };
1442
1443 /** AES-192-CTR XCBC test vector (12-byte IV) */
1444 static const struct blockcipher_test_data aes_test_data_2_IV_12_bytes = {
1445         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
1446         .cipher_key = {
1447                 .data = {
1448                         0xCB, 0xC5, 0xED, 0x5B, 0xE7, 0x7C, 0xBD, 0x8C,
1449                         0x50, 0xD9, 0x30, 0xF2, 0xB5, 0x6A, 0x0E, 0x5F,
1450                         0xAA, 0xAE, 0xAD, 0xA2, 0x1F, 0x49, 0x52, 0xD4
1451                 },
1452                 .len = 24
1453         },
1454         .iv = {
1455                 .data = {
1456                         0x3F, 0x69, 0xA8, 0xCD, 0xE8, 0xF0, 0xEF, 0x40,
1457                         0xB8, 0x7A, 0x4B, 0xED
1458                 },
1459                 .len = 12
1460         },
1461         .plaintext = {
1462                 .data = plaintext_aes192ctr,
1463                 .len = 64
1464         },
1465         .ciphertext = {
1466                 .data = ciphertext64_aes192ctr_IV_12bytes,
1467                 .len = 64
1468         },
1469         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
1470         .auth_key = {
1471                 .data = {
1472                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
1473                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
1474                 },
1475                 .len = 16
1476         },
1477         .digest = {
1478                 .data = {
1479                         0x0C, 0xA1, 0xA5, 0xAF, 0x3E, 0x41, 0xD2, 0xF4,
1480                         0x4C, 0x4C, 0xAB, 0x13
1481                 },
1482                 .len = 12,
1483                 .truncated_len = 12
1484         }
1485 };
1486
1487 /** AES-256-CTR SHA1 test vector (12-byte IV) */
1488 static const struct blockcipher_test_data aes_test_data_3_IV_12_bytes = {
1489         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,
1490         .cipher_key = {
1491                 .data = {
1492                         0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE,
1493                         0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81,
1494                         0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7,
1495                         0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4
1496                 },
1497                 .len = 32
1498         },
1499         .iv = {
1500                 .data = {
1501                         0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
1502                         0xF8, 0xF9, 0xFA, 0xFB
1503                 },
1504                 .len = 12
1505         },
1506         .plaintext = {
1507                 .data = plaintext_aes256ctr,
1508                 .len = 64
1509         },
1510         .ciphertext = {
1511                 .data = ciphertext64_aes256ctr_IV_12bytes,
1512                 .len = 64
1513         },
1514         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1515         .auth_key = {
1516                 .data = {
1517                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1518                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1519                         0xDE, 0xF4, 0xDE, 0xAD
1520                 },
1521                 .len = 20
1522         },
1523         .digest = {
1524                 .data = {
1525                         0x57, 0x9A, 0x52, 0x6E, 0x31, 0x17, 0x57, 0x49,
1526                         0xE7, 0xA1, 0x88, 0x6C, 0x2E, 0x36, 0x67, 0x63,
1527                         0x3F, 0x2D, 0xA3, 0xEF
1528                 },
1529                 .len = 20,
1530                 .truncated_len = 12
1531         }
1532 };
1533 /** AES-128-CBC SHA1 test vector */
1534 static const struct blockcipher_test_data aes_test_data_4 = {
1535         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1536         .cipher_key = {
1537                 .data = {
1538                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1539                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1540                 },
1541                 .len = 16
1542         },
1543         .iv = {
1544                 .data = {
1545                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1546                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1547                 },
1548                 .len = 16
1549         },
1550         .plaintext = {
1551                 .data = plaintext_aes_common,
1552                 .len = 512
1553         },
1554         .ciphertext = {
1555                 .data = ciphertext512_aes128cbc,
1556                 .len = 512
1557         },
1558         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1559         .auth_key = {
1560                 .data = {
1561                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1562                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1563                         0xDE, 0xF4, 0xDE, 0xAD
1564                 },
1565                 .len = 20
1566         },
1567         .digest = {
1568                 .data = {
1569                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60,
1570                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
1571                         0x18, 0x8C, 0x1D, 0x32
1572                 },
1573                 .len = 20,
1574                 .truncated_len = 12
1575         }
1576 };
1577
1578 /** AES-128-CBC SHA1 test vector (Digest encrypted mode) */
1579 static const struct blockcipher_test_data aes_test_data_4_digest_enc = {
1580         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1581         .cipher_key = {
1582                 .data = {
1583                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1584                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1585                 },
1586                 .len = 16
1587         },
1588         .iv = {
1589                 .data = {
1590                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1591                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1592                 },
1593                 .len = 16
1594         },
1595         .plaintext = {
1596                 .data = plaintext_aes_common_digest_enc,
1597                 .len = 512
1598         },
1599         .ciphertext = {
1600                 .data = ciphertext512_aes128cbc_digest_enc,
1601                 .len = 512
1602         },
1603         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1604         .auth_key = {
1605                 .data = {
1606                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1607                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1608                         0xDE, 0xF4, 0xDE, 0xAD
1609                 },
1610                 .len = 20
1611         },
1612         .digest = {
1613                 .data = {
1614                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60,
1615                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
1616                         0x18, 0x8C, 0x1D, 0x32
1617                 },
1618                 .len = 20,
1619         }
1620 };
1621
1622 /** AES-128-CBC SHA256 test vector */
1623 static const struct blockcipher_test_data aes_test_data_5 = {
1624         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1625         .cipher_key = {
1626                 .data = {
1627                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1628                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1629                 },
1630                 .len = 16
1631         },
1632         .iv = {
1633                 .data = {
1634                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1635                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1636                 },
1637                 .len = 16
1638         },
1639         .plaintext = {
1640                 .data = plaintext_aes_common,
1641                 .len = 512
1642         },
1643         .ciphertext = {
1644                 .data = ciphertext512_aes128cbc,
1645                 .len = 512
1646         },
1647         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
1648         .auth_key = {
1649                 .data = {
1650                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
1651                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
1652                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
1653                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
1654                 },
1655                 .len = 32
1656         },
1657         .digest = {
1658                 .data = {
1659                         0xC8, 0x57, 0x57, 0x31, 0x03, 0xE0, 0x03, 0x55,
1660                         0x07, 0xC8, 0x9E, 0x7F, 0x48, 0x9A, 0x61, 0x9A,
1661                         0x68, 0xEE, 0x03, 0x0E, 0x71, 0x75, 0xC7, 0xF4,
1662                         0x2E, 0x45, 0x26, 0x32, 0x7C, 0x12, 0x15, 0x15
1663                 },
1664                 .len = 32,
1665                 .truncated_len = 16
1666         }
1667 };
1668
1669 /** AES-128-CBC SHA512 test vector */
1670 static const struct blockcipher_test_data aes_test_data_6 = {
1671         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1672         .cipher_key = {
1673                 .data = {
1674                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1675                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1676                 },
1677                 .len = 16
1678         },
1679         .iv = {
1680                 .data = {
1681                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1682                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1683                 },
1684                 .len = 16
1685         },
1686         .plaintext = {
1687                 .data = plaintext_aes_common,
1688                 .len = 512
1689         },
1690         .ciphertext = {
1691                 .data = ciphertext512_aes128cbc,
1692                 .len = 512
1693         },
1694         .auth_algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
1695         .auth_key = {
1696                 .data = {
1697                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
1698                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
1699                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
1700                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
1701                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
1702                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
1703                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
1704                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
1705                 },
1706                 .len = 64
1707         },
1708         .digest = {
1709                 .data = {
1710                         0x5D, 0x54, 0x66, 0xC1, 0x6E, 0xBC, 0x04, 0xB8,
1711                         0x46, 0xB8, 0x08, 0x6E, 0xE0, 0xF0, 0x43, 0x48,
1712                         0x37, 0x96, 0x9C, 0xC6, 0x9C, 0xC2, 0x1E, 0xE8,
1713                         0xF2, 0x0C, 0x0B, 0xEF, 0x86, 0xA2, 0xE3, 0x70,
1714                         0x95, 0xC8, 0xB3, 0x06, 0x47, 0xA9, 0x90, 0xE8,
1715                         0xA0, 0xC6, 0x72, 0x69, 0x05, 0xC0, 0x0D, 0x0E,
1716                         0x21, 0x96, 0x65, 0x93, 0x74, 0x43, 0x2A, 0x1D,
1717                         0x2E, 0xBF, 0xC2, 0xC2, 0xEE, 0xCC, 0x2F, 0x0A
1718                 },
1719                 .len = 64,
1720                 .truncated_len = 32
1721         }
1722 };
1723
1724 /** AES-128-CBC XCBC test vector */
1725 static const struct blockcipher_test_data aes_test_data_7 = {
1726         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1727         .cipher_key = {
1728                 .data = {
1729                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1730                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1731                 },
1732                 .len = 16
1733         },
1734         .iv = {
1735                 .data = {
1736                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1737                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1738                 },
1739                 .len = 16
1740         },
1741         .plaintext = {
1742                 .data = plaintext_aes_common,
1743                 .len = 512
1744         },
1745         .ciphertext = {
1746                 .data = ciphertext512_aes128cbc,
1747                 .len = 512
1748         },
1749         .auth_algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
1750         .auth_key = {
1751                 .data = {
1752                         0x87, 0x61, 0x54, 0x53, 0xC4, 0x6D, 0xDD, 0x51,
1753                         0xE1, 0x9F, 0x86, 0x64, 0x39, 0x0A, 0xE6, 0x59
1754                 },
1755                 .len = 16
1756         },
1757         .digest = {
1758                 .data = {
1759                         0xE0, 0xAC, 0x9A, 0xC4, 0x22, 0x64, 0x35, 0x89,
1760                         0x77, 0x1D, 0x8B, 0x75
1761                 },
1762                 .len = 12,
1763                 .truncated_len = 12
1764         }
1765 };
1766
1767 /** AES-128-CBC SHA224 test vector */
1768 static const struct blockcipher_test_data aes_test_data_8 = {
1769         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1770         .cipher_key = {
1771                 .data = {
1772                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1773                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1774                 },
1775                 .len = 16
1776         },
1777         .iv = {
1778                 .data = {
1779                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1780                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1781                 },
1782                 .len = 16
1783         },
1784         .plaintext = {
1785                 .data = plaintext_aes_common,
1786                 .len = 512
1787         },
1788         .ciphertext = {
1789                 .data = ciphertext512_aes128cbc,
1790                 .len = 512
1791         },
1792         .auth_algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
1793         .auth_key = {
1794                 .data = {
1795                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
1796                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
1797                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
1798                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
1799                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
1800                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
1801                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
1802                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
1803                 },
1804                 .len = 64
1805         },
1806         .digest = {
1807                 .data = {
1808                         0xA3, 0xCA, 0xC7, 0x1D, 0xA8, 0x61, 0x30, 0x98,
1809                         0x3B, 0x8F, 0x01, 0x19, 0xAE, 0x8D, 0xBD, 0x34,
1810                         0x40, 0x63, 0xA8, 0x2F, 0xDF, 0x85, 0x2B, 0x7F,
1811                         0x63, 0x7C, 0xDD, 0xB7
1812                 },
1813                 .len = 28,
1814                 .truncated_len = 14
1815         }
1816 };
1817
1818 /** AES-128-CBC SHA384 test vector */
1819 static const struct blockcipher_test_data aes_test_data_9 = {
1820         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
1821         .cipher_key = {
1822                 .data = {
1823                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
1824                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
1825                 },
1826                 .len = 16
1827         },
1828         .iv = {
1829                 .data = {
1830                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1831                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
1832                 },
1833                 .len = 16
1834         },
1835         .plaintext = {
1836                 .data = plaintext_aes_common,
1837                 .len = 512
1838         },
1839         .ciphertext = {
1840                 .data = ciphertext512_aes128cbc,
1841                 .len = 512
1842         },
1843         .auth_algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
1844         .auth_key = {
1845                 .data = {
1846                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
1847                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
1848                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
1849                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
1850                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
1851                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
1852                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
1853                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60,
1854                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
1855                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
1856                         0x58, 0x34, 0x85, 0x65, 0x1C, 0x42, 0x50, 0x76,
1857                         0x9A, 0xAF, 0x88, 0x1B, 0xB6, 0x8F, 0xF8, 0x60,
1858                         0xA2, 0x5A, 0x7F, 0x3F, 0xF4, 0x72, 0x70, 0xF1,
1859                         0xF5, 0x35, 0x4C, 0x3B, 0xDD, 0x90, 0x65, 0xB0,
1860                         0x47, 0x3A, 0x75, 0x61, 0x5C, 0xA2, 0x10, 0x76,
1861                         0x9A, 0xAF, 0x77, 0x5B, 0xB6, 0x7F, 0xF7, 0x60
1862                 },
1863                 .len = 128
1864         },
1865         .digest = {
1866                 .data = {
1867                         0x23, 0x60, 0xC8, 0xB1, 0x2D, 0x6C, 0x1E, 0x72,
1868                         0x25, 0xAB, 0xF9, 0xC3, 0x9A, 0xA9, 0x4F, 0x8C,
1869                         0x56, 0x38, 0x65, 0x0E, 0x74, 0xD5, 0x45, 0x9D,
1870                         0xA3, 0xFD, 0x7E, 0x6D, 0x9E, 0x74, 0x88, 0x9D,
1871                         0xA7, 0x12, 0x9D, 0xD8, 0x81, 0x3C, 0x86, 0x2F,
1872                         0x4D, 0xF9, 0x6F, 0x0A, 0xB0, 0xC9, 0xEB, 0x0B
1873                 },
1874                 .len = 48,
1875                 .truncated_len = 24
1876         }
1877 };
1878
1879 static const uint8_t ciphertext512_aes192cbc[] = {
1880         0x45, 0xEE, 0x9A, 0xEA, 0x3C, 0x03, 0xFC, 0x4C,
1881         0x84, 0x36, 0xB0, 0xDA, 0xB0, 0xDC, 0xF3, 0x5B,
1882         0x75, 0xA7, 0xBE, 0x0E, 0xC0, 0x8D, 0x6C, 0xF8,
1883         0xC1, 0x0F, 0xD0, 0x35, 0x1D, 0x82, 0xAE, 0x7C,
1884         0x57, 0xC5, 0x7A, 0x55, 0x87, 0x1B, 0xD4, 0x03,
1885         0x0A, 0x64, 0xC9, 0xE0, 0xF4, 0xC7, 0x6F, 0x57,
1886         0x52, 0xC6, 0x73, 0xBA, 0x84, 0x0B, 0x5B, 0x89,
1887         0x21, 0xD2, 0x9B, 0x88, 0x68, 0xF5, 0xA9, 0x7F,
1888         0x3F, 0x49, 0xEB, 0xF4, 0xD4, 0x52, 0xD2, 0x64,
1889         0x80, 0xB2, 0x53, 0xDA, 0x19, 0xF6, 0x10, 0x24,
1890         0x23, 0x26, 0x7A, 0x7C, 0x07, 0x57, 0x4B, 0x0E,
1891         0x58, 0x49, 0x61, 0xD1, 0xDC, 0x9A, 0x32, 0x6B,
1892         0x0F, 0x43, 0x9E, 0x4D, 0xB4, 0x07, 0x4E, 0xB3,
1893         0x51, 0x74, 0xDE, 0x29, 0xBC, 0x98, 0xF9, 0xDF,
1894         0x78, 0x9A, 0x18, 0x9C, 0xD6, 0x7A, 0x55, 0x7C,
1895         0xE6, 0x1D, 0x5C, 0x1A, 0x99, 0xD2, 0xC3, 0x7B,
1896         0x9F, 0x96, 0x74, 0x2D, 0xE0, 0xEF, 0xD1, 0xE3,
1897         0x08, 0x9F, 0xAF, 0xE6, 0xED, 0xCA, 0xE1, 0xEA,
1898         0x23, 0x6F, 0x7C, 0x81, 0xA8, 0xC0, 0x5B, 0x8B,
1899         0x53, 0x90, 0x51, 0x2D, 0x0F, 0xF6, 0x7D, 0xA7,
1900         0x1C, 0xBD, 0x83, 0x84, 0x54, 0xA4, 0x15, 0xFB,
1901         0x3E, 0x25, 0xA7, 0x3A, 0x0A, 0x73, 0xD9, 0x88,
1902         0x6F, 0x80, 0x78, 0x95, 0x7F, 0x60, 0xAA, 0x86,
1903         0x8A, 0xFC, 0xDF, 0xC1, 0xCB, 0xDE, 0xBB, 0x25,
1904         0x52, 0x20, 0xC6, 0x79, 0xD4, 0x0F, 0x25, 0xE7,
1905         0xDB, 0xB2, 0x17, 0xA4, 0x6F, 0x3C, 0x6F, 0x91,
1906         0xF6, 0x44, 0x1E, 0xB6, 0x85, 0xBC, 0x7A, 0x14,
1907         0x10, 0x72, 0xBD, 0x16, 0x63, 0x39, 0x9E, 0x7B,
1908         0x84, 0x5B, 0x17, 0x61, 0xB1, 0x5D, 0x82, 0x0B,
1909         0x6D, 0x37, 0xD7, 0x79, 0xB8, 0x24, 0x91, 0x30,
1910         0x82, 0x91, 0x02, 0xB1, 0x18, 0x4B, 0xE0, 0xF4,
1911         0x13, 0x1B, 0xB2, 0x4C, 0xDA, 0xB8, 0x99, 0x96,
1912         0x83, 0x2F, 0xBE, 0x53, 0x8D, 0xDE, 0xFA, 0xAD,
1913         0xF6, 0x5C, 0xDB, 0xE5, 0x66, 0x26, 0x8F, 0x13,
1914         0x2B, 0x76, 0x47, 0x73, 0xDE, 0x1A, 0x74, 0xA6,
1915         0x30, 0xAF, 0x42, 0xA0, 0xE5, 0xD2, 0x8F, 0xC2,
1916         0xED, 0x3E, 0x9E, 0x29, 0x54, 0x3C, 0xDE, 0x9F,
1917         0x5D, 0x30, 0x2B, 0x63, 0xFB, 0xE3, 0xB1, 0x07,
1918         0xEE, 0x74, 0x4A, 0xAF, 0xB1, 0x20, 0x8D, 0xEC,
1919         0xE6, 0x78, 0x16, 0x8D, 0xA4, 0x6E, 0x34, 0x7D,
1920         0x47, 0xFB, 0x0B, 0xC1, 0x32, 0xD7, 0x0D, 0x6C,
1921         0x6F, 0x93, 0x9C, 0x5E, 0xEF, 0x1F, 0x9C, 0x45,
1922         0x80, 0x6B, 0x74, 0xA6, 0x81, 0xF2, 0xF6, 0xFA,
1923         0xAA, 0x9D, 0x4F, 0xCA, 0xB5, 0x90, 0x59, 0xB0,
1924         0x3B, 0xF2, 0xF0, 0x75, 0xFD, 0x8A, 0xD8, 0x97,
1925         0x65, 0x88, 0x56, 0x4C, 0x44, 0xDF, 0x73, 0xF7,
1926         0x56, 0x9C, 0x48, 0x7E, 0xB0, 0x1F, 0x1D, 0x7D,
1927         0x6A, 0x11, 0xF5, 0xC2, 0xF4, 0x17, 0xEF, 0x58,
1928         0xD8, 0x2A, 0xAF, 0x56, 0x2F, 0xCF, 0xEC, 0xA4,
1929         0x58, 0x8B, 0x60, 0xCE, 0xD4, 0x0F, 0x9C, 0x21,
1930         0xEC, 0x3E, 0x74, 0x7B, 0x81, 0x3D, 0x69, 0xC6,
1931         0x5E, 0x12, 0x83, 0xE9, 0xEF, 0x81, 0x58, 0x36,
1932         0x6A, 0x60, 0x0F, 0x54, 0x28, 0x11, 0xF9, 0x64,
1933         0x36, 0xAD, 0x79, 0xF5, 0x1C, 0x74, 0xD0, 0xC3,
1934         0x7B, 0x61, 0xE1, 0x92, 0xB0, 0x13, 0x91, 0x87,
1935         0x32, 0x1F, 0xF2, 0x5A, 0xDA, 0x25, 0x69, 0xEB,
1936         0xD7, 0x32, 0x7F, 0xF5, 0x23, 0x21, 0x54, 0x47,
1937         0x7B, 0x1B, 0x33, 0xB0, 0x3D, 0xF6, 0xE2, 0x7E,
1938         0x3E, 0xA2, 0x9E, 0xCA, 0x48, 0x0B, 0x4A, 0x29,
1939         0x81, 0xD4, 0x4E, 0xD5, 0x69, 0xFB, 0xCD, 0x37,
1940         0x8A, 0xC1, 0x5B, 0x50, 0xFF, 0xB5, 0x7D, 0x43,
1941         0x0F, 0xAE, 0xA6, 0xC2, 0xE5, 0x8F, 0x45, 0xB2,
1942         0x85, 0x99, 0x02, 0xA2, 0x9B, 0xBE, 0x90, 0x43,
1943         0x4F, 0x2F, 0x50, 0xE2, 0x77, 0x62, 0xD9, 0xCC
1944 };
1945
1946 static const uint8_t ciphertext512_aes192cbc_digest_enc[] = {
1947         0x45, 0xee, 0x9a, 0xEA, 0x3C, 0x03, 0xFC, 0x4C,
1948         0x84, 0x36, 0xB0, 0xDA, 0xB0, 0xDC, 0xF3, 0x5B,
1949         0x75, 0xA7, 0xBE, 0x0E, 0xC0, 0x8D, 0x6C, 0xF8,
1950         0xC1, 0x0F, 0xD0, 0x35, 0x1D, 0x82, 0xAE, 0x7C,
1951         0x57, 0xC5, 0x7A, 0x55, 0x87, 0x1B, 0xD4, 0x03,
1952         0x0A, 0x64, 0xC9, 0xE0, 0xF4, 0xC7, 0x6F, 0x57,
1953         0x52, 0xC6, 0x73, 0xBA, 0x84, 0x0B, 0x5B, 0x89,
1954         0x21, 0xD2, 0x9B, 0x88, 0x68, 0xF5, 0xA9, 0x7F,
1955         0x3F, 0x49, 0xEB, 0xF4, 0xD4, 0x52, 0xD2, 0x64,
1956         0x80, 0xB2, 0x53, 0xDA, 0x19, 0xF6, 0x10, 0x24,
1957         0x23, 0x26, 0x7A, 0x7C, 0x07, 0x57, 0x4B, 0x0E,
1958         0x58, 0x49, 0x61, 0xD1, 0xDC, 0x9A, 0x32, 0x6B,
1959         0x0F, 0x43, 0x9E, 0x4D, 0xB4, 0x07, 0x4E, 0xB3,
1960         0x51, 0x74, 0xDE, 0x29, 0xBC, 0x98, 0xF9, 0xDF,
1961         0x78, 0x9A, 0x18, 0x9C, 0xD6, 0x7A, 0x55, 0x7C,
1962         0xE6, 0x1D, 0x5C, 0x1A, 0x99, 0xD2, 0xC3, 0x7B,
1963         0x9F, 0x96, 0x74, 0x2D, 0xE0, 0xEF, 0xD1, 0xE3,
1964         0x08, 0x9F, 0xAF, 0xE6, 0xED, 0xCA, 0xE1, 0xEA,
1965         0x23, 0x6F, 0x7C, 0x81, 0xA8, 0xC0, 0x5B, 0x8B,
1966         0x53, 0x90, 0x51, 0x2D, 0x0F, 0xF6, 0x7D, 0xA7,
1967         0x1C, 0xBD, 0x83, 0x84, 0x54, 0xA4, 0x15, 0xFB,
1968         0x3E, 0x25, 0xA7, 0x3A, 0x0A, 0x73, 0xD9, 0x88,
1969         0x6F, 0x80, 0x78, 0x95, 0x7F, 0x60, 0xAA, 0x86,
1970         0x8A, 0xFC, 0xDF, 0xC1, 0xCB, 0xDE, 0xBB, 0x25,
1971         0x52, 0x20, 0xC6, 0x79, 0xD4, 0x0F, 0x25, 0xE7,
1972         0xDB, 0xB2, 0x17, 0xA4, 0x6F, 0x3C, 0x6F, 0x91,
1973         0xF6, 0x44, 0x1E, 0xB6, 0x85, 0xBC, 0x7A, 0x14,
1974         0x10, 0x72, 0xBD, 0x16, 0x63, 0x39, 0x9E, 0x7B,
1975         0x84, 0x5B, 0x17, 0x61, 0xB1, 0x5D, 0x82, 0x0B,
1976         0x6D, 0x37, 0xD7, 0x79, 0xB8, 0x24, 0x91, 0x30,
1977         0x82, 0x91, 0x02, 0xB1, 0x18, 0x4B, 0xE0, 0xF4,
1978         0x13, 0x1B, 0xB2, 0x4C, 0xDA, 0xB8, 0x99, 0x96,
1979         0x83, 0x2F, 0xBE, 0x53, 0x8D, 0xDE, 0xFA, 0xAD,
1980         0xF6, 0x5C, 0xDB, 0xE5, 0x66, 0x26, 0x8F, 0x13,
1981         0x2B, 0x76, 0x47, 0x73, 0xDE, 0x1A, 0x74, 0xA6,
1982         0x30, 0xAF, 0x42, 0xA0, 0xE5, 0xD2, 0x8F, 0xC2,
1983         0xED, 0x3E, 0x9E, 0x29, 0x54, 0x3C, 0xDE, 0x9F,
1984         0x5D, 0x30, 0x2B, 0x63, 0xFB, 0xE3, 0xB1, 0x07,
1985         0xEE, 0x74, 0x4A, 0xAF, 0xB1, 0x20, 0x8D, 0xEC,
1986         0xE6, 0x78, 0x16, 0x8D, 0xA4, 0x6E, 0x34, 0x7D,
1987         0x47, 0xFB, 0x0B, 0xC1, 0x32, 0xD7, 0x0D, 0x6C,
1988         0x6F, 0x93, 0x9C, 0x5E, 0xEF, 0x1F, 0x9C, 0x45,
1989         0x80, 0x6B, 0x74, 0xA6, 0x81, 0xF2, 0xF6, 0xFA,
1990         0xAA, 0x9D, 0x4F, 0xCA, 0xB5, 0x90, 0x59, 0xB0,
1991         0x3B, 0xF2, 0xF0, 0x75, 0xFD, 0x8A, 0xD8, 0x97,
1992         0x65, 0x88, 0x56, 0x4C, 0x44, 0xDF, 0x73, 0xF7,
1993         0x56, 0x9C, 0x48, 0x7E, 0xB0, 0x1F, 0x1D, 0x7D,
1994         0x6A, 0x11, 0xF5, 0xC2, 0xF4, 0x17, 0xEF, 0x58,
1995         0xD8, 0x2A, 0xAF, 0x56, 0x2F, 0xCF, 0xEC, 0xA4,
1996         0x58, 0x8B, 0x60, 0xCE, 0xD4, 0x0F, 0x9C, 0x21,
1997         0xEC, 0x3E, 0x74, 0x7B, 0x81, 0x3D, 0x69, 0xC6,
1998         0x5E, 0x12, 0x83, 0xE9, 0xEF, 0x81, 0x58, 0x36,
1999         0x6A, 0x60, 0x0F, 0x54, 0x28, 0x11, 0xF9, 0x64,
2000         0x36, 0xAD, 0x79, 0xF5, 0x1C, 0x74, 0xD0, 0xC3,
2001         0x7B, 0x61, 0xE1, 0x92, 0xB0, 0x13, 0x91, 0x87,
2002         0x32, 0x1F, 0xF2, 0x5A, 0xDA, 0x25, 0x69, 0xEB,
2003         0xD7, 0x32, 0x7F, 0xF5, 0x23, 0x21, 0x54, 0x47,
2004         0x7B, 0x1B, 0x33, 0xB0, 0x3D, 0xF6, 0xE2, 0x7E,
2005         0x3E, 0xA2, 0x9E, 0xCA, 0x48, 0x0B, 0x4A, 0x29,
2006         0x81, 0xD4, 0x4E, 0xD5, 0x69, 0xFB, 0xCD, 0x37,
2007         0x8A, 0xC1, 0x5B, 0x50, 0xFF, 0xB5, 0x7D, 0x43,
2008         0x0F, 0xAE, 0xA6, 0xC2, 0xE5, 0x8F, 0x45, 0xB2,
2009         0x85, 0x99, 0x02, 0xA2, 0x9B, 0xBE, 0x90, 0x43,
2010         0x4F, 0x2F, 0x50, 0xE2, 0x77, 0x62, 0xD9, 0xCC,
2011         0x5D, 0x93, 0x6A, 0x97, 0xFB, 0x1D, 0x01, 0x17,
2012         0x90, 0x61, 0x41, 0xD5, 0x5C, 0x43, 0x60, 0xBC,
2013         0x21, 0x04, 0x5B, 0xB9, 0xFF, 0x75, 0xF8, 0x1F,
2014         0x5C, 0x85, 0x91, 0x08, 0x02, 0xA2, 0xFD, 0x88,
2015 };
2016
2017 /** AES-192-CBC test vector */
2018 static const struct blockcipher_test_data aes_test_data_10 = {
2019         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
2020         .cipher_key = {
2021                 .data = {
2022                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
2023                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
2024                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
2025                 },
2026                 .len = 24
2027         },
2028         .iv = {
2029                 .data = {
2030                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2031                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
2032                 },
2033                 .len = 16
2034         },
2035         .plaintext = {
2036                 .data = plaintext_aes_common,
2037                 .len = 512
2038         },
2039         .ciphertext = {
2040                 .data = ciphertext512_aes192cbc,
2041                 .len = 512
2042         }
2043 };
2044
2045 /** AES-192-CBC SHA1 test vector (Digest encrypted mode) */
2046 static const struct blockcipher_test_data aes_test_data_10_digest_enc = {
2047         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
2048         .cipher_key = {
2049                 .data = {
2050                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
2051                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
2052                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
2053                 },
2054                 .len = 24
2055         },
2056         .iv = {
2057                 .data = {
2058                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2059                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
2060                 },
2061                 .len = 16
2062         },
2063         .plaintext = {
2064                 .data = plaintext_aes_common_digest_enc,
2065                 .len = 512
2066         },
2067         .ciphertext = {
2068                 .data = ciphertext512_aes192cbc_digest_enc,
2069                 .len = 512
2070         },
2071         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
2072         .auth_key = {
2073                 .data = {
2074                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
2075                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
2076                         0xDE, 0xF4, 0xDE, 0xAD
2077                 },
2078                 .len = 20
2079         },
2080         .digest = {
2081                 .data = {
2082                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60,
2083                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
2084                         0x18, 0x8C, 0x1D, 0x32
2085                 },
2086                 .len = 20,
2087         }
2088 };
2089
2090 static const uint8_t ciphertext512_aes256cbc[] = {
2091         0xF3, 0xDD, 0xF0, 0x0B, 0xFF, 0xA2, 0x6A, 0x04,
2092         0xBE, 0xDA, 0x52, 0xA6, 0xFE, 0x6B, 0xA6, 0xA7,
2093         0x48, 0x1D, 0x7D, 0x98, 0x65, 0xDB, 0xEF, 0x06,
2094         0x26, 0xB5, 0x8E, 0xEB, 0x05, 0x0E, 0x77, 0x98,
2095         0x17, 0x8E, 0xD0, 0xD4, 0x7B, 0x92, 0x8F, 0x5C,
2096         0xD0, 0x74, 0x5C, 0xA8, 0x4B, 0x54, 0xB6, 0x2F,
2097         0x83, 0x72, 0x2C, 0xFF, 0x72, 0xE9, 0xE4, 0x15,
2098         0x4C, 0x32, 0xAF, 0xC8, 0xC9, 0x89, 0x3C, 0x6E,
2099         0x31, 0xD5, 0xC0, 0x16, 0xC0, 0x31, 0x7D, 0x11,
2100         0xAB, 0xCB, 0xDE, 0xD2, 0xD6, 0xAA, 0x76, 0x5E,
2101         0xBA, 0xF6, 0xE2, 0x92, 0xCB, 0x86, 0x07, 0xFA,
2102         0xD4, 0x9E, 0x83, 0xED, 0xFD, 0xB8, 0x70, 0x54,
2103         0x6B, 0xBE, 0xEC, 0x72, 0xDD, 0x28, 0x5E, 0x95,
2104         0x78, 0xA5, 0x28, 0x43, 0x3D, 0x6D, 0xB1, 0xD9,
2105         0x69, 0x1F, 0xC9, 0x66, 0x0E, 0x32, 0x44, 0x08,
2106         0xD2, 0xAE, 0x2C, 0x43, 0xF2, 0xD0, 0x7D, 0x26,
2107         0x70, 0xE5, 0xA1, 0xCA, 0x37, 0xE9, 0x7D, 0xC7,
2108         0xA3, 0xFA, 0x81, 0x91, 0x64, 0xAA, 0x64, 0x91,
2109         0x9A, 0x95, 0x2D, 0xC9, 0xF9, 0xCE, 0xFE, 0x9F,
2110         0xC4, 0xD8, 0x81, 0xBE, 0x57, 0x84, 0xC5, 0x02,
2111         0xDB, 0x30, 0xC1, 0xD9, 0x0E, 0xA0, 0xA6, 0x00,
2112         0xD6, 0xF3, 0x52, 0x7E, 0x0D, 0x23, 0x6B, 0x2B,
2113         0x34, 0x99, 0x1F, 0x70, 0x27, 0x6D, 0x58, 0x84,
2114         0x93, 0x77, 0xB8, 0x3E, 0xF1, 0x71, 0x58, 0x42,
2115         0x8B, 0x2B, 0xC8, 0x6D, 0x05, 0x84, 0xFF, 0x4E,
2116         0x85, 0xEF, 0x4A, 0x9D, 0x91, 0x6A, 0xD5, 0xE1,
2117         0xAF, 0x01, 0xEB, 0x83, 0x8F, 0x23, 0x7C, 0x7F,
2118         0x12, 0x91, 0x05, 0xF0, 0x4E, 0xD9, 0x17, 0x62,
2119         0x75, 0xBB, 0xAC, 0x97, 0xEE, 0x3B, 0x4E, 0xC7,
2120         0xE5, 0x92, 0xF8, 0x9D, 0x4C, 0xF9, 0xEE, 0x55,
2121         0x18, 0xBB, 0xCC, 0xB4, 0xF2, 0x59, 0xB9, 0xFC,
2122         0x7A, 0x0F, 0x98, 0xD4, 0x8B, 0xFE, 0xF7, 0x83,
2123         0x46, 0xE2, 0x83, 0x33, 0x3E, 0x95, 0x8D, 0x17,
2124         0x1E, 0x85, 0xF8, 0x8C, 0x51, 0xB0, 0x6C, 0xB5,
2125         0x5E, 0x95, 0xBA, 0x4B, 0x69, 0x1B, 0x48, 0x69,
2126         0x0B, 0x8F, 0xA5, 0x18, 0x13, 0xB9, 0x77, 0xD1,
2127         0x80, 0x32, 0x32, 0x6D, 0x53, 0xA1, 0x95, 0x40,
2128         0x96, 0x8A, 0xCC, 0xA3, 0x69, 0xF8, 0x9F, 0xB5,
2129         0x8E, 0xD2, 0x68, 0x07, 0x4F, 0xA7, 0xEC, 0xF8,
2130         0x20, 0x21, 0x58, 0xF8, 0xD8, 0x9E, 0x5F, 0x40,
2131         0xBA, 0xB9, 0x76, 0x57, 0x3B, 0x17, 0xAD, 0xEE,
2132         0xCB, 0xDF, 0x07, 0xC1, 0xDF, 0x66, 0xA8, 0x0D,
2133         0xC2, 0xCE, 0x8F, 0x79, 0xC3, 0x32, 0xE0, 0x8C,
2134         0xFE, 0x5A, 0xF3, 0x55, 0x27, 0x73, 0x6F, 0xA1,
2135         0x54, 0xC6, 0xFC, 0x28, 0x9D, 0xBE, 0x97, 0xB9,
2136         0x54, 0x97, 0x72, 0x3A, 0x61, 0xAF, 0x6F, 0xDE,
2137         0xF8, 0x0E, 0xBB, 0x6B, 0x96, 0x84, 0xDD, 0x9B,
2138         0x62, 0xBA, 0x47, 0xB5, 0xC9, 0x3B, 0x4E, 0x8C,
2139         0x78, 0x2A, 0xCC, 0x0A, 0x69, 0x54, 0x25, 0x5E,
2140         0x8B, 0xAC, 0x56, 0xD9, 0xFE, 0x48, 0xBA, 0xCE,
2141         0xA9, 0xCE, 0xA6, 0x1D, 0xBF, 0x3E, 0x3C, 0x66,
2142         0x40, 0x71, 0x79, 0xAD, 0x5B, 0x26, 0xAD, 0xBE,
2143         0x58, 0x13, 0x64, 0x60, 0x7C, 0x05, 0xFC, 0xE3,
2144         0x51, 0x7A, 0xF2, 0xCC, 0x54, 0x16, 0x2C, 0xA4,
2145         0xCE, 0x5F, 0x59, 0x12, 0x77, 0xEB, 0xD9, 0x23,
2146         0xE3, 0x86, 0xFB, 0xD7, 0x48, 0x76, 0x9D, 0xE3,
2147         0x89, 0x87, 0x39, 0xFA, 0x7B, 0x21, 0x0B, 0x76,
2148         0xB2, 0xED, 0x1C, 0x27, 0x4B, 0xD5, 0x27, 0x05,
2149         0x8C, 0x7D, 0x58, 0x6C, 0xCA, 0xA5, 0x54, 0x9A,
2150         0x0F, 0xCB, 0xE9, 0x88, 0x31, 0xAD, 0x49, 0xEE,
2151         0x38, 0xFB, 0xC9, 0xFB, 0xB4, 0x7A, 0x00, 0x58,
2152         0x20, 0x32, 0xD3, 0x53, 0x5A, 0xDD, 0x74, 0x95,
2153         0x60, 0x59, 0x09, 0xAE, 0x7E, 0xEC, 0x74, 0xA3,
2154         0xB7, 0x1C, 0x6D, 0xF2, 0xAE, 0x79, 0xA4, 0x7C
2155 };
2156
2157 static const uint8_t ciphertext512_aes256cbc_digest_enc[] = {
2158         0xF3, 0xDD, 0xF0, 0x0B, 0xFF, 0xA2, 0x6A, 0x04,
2159         0xBE, 0xDA, 0x52, 0xA6, 0xFE, 0x6B, 0xA6, 0xA7,
2160         0x48, 0x1D, 0x7D, 0x98, 0x65, 0xDB, 0xEF, 0x06,
2161         0x26, 0xB5, 0x8E, 0xEB, 0x05, 0x0E, 0x77, 0x98,
2162         0x17, 0x8E, 0xD0, 0xD4, 0x7B, 0x92, 0x8F, 0x5C,
2163         0xD0, 0x74, 0x5C, 0xA8, 0x4B, 0x54, 0xB6, 0x2F,
2164         0x83, 0x72, 0x2C, 0xFF, 0x72, 0xE9, 0xE4, 0x15,
2165         0x4C, 0x32, 0xAF, 0xC8, 0xC9, 0x89, 0x3C, 0x6E,
2166         0x31, 0xD5, 0xC0, 0x16, 0xC0, 0x31, 0x7D, 0x11,
2167         0xAB, 0xCB, 0xDE, 0xD2, 0xD6, 0xAA, 0x76, 0x5E,
2168         0xBA, 0xF6, 0xE2, 0x92, 0xCB, 0x86, 0x07, 0xFA,
2169         0xD4, 0x9E, 0x83, 0xED, 0xFD, 0xB8, 0x70, 0x54,
2170         0x6B, 0xBE, 0xEC, 0x72, 0xDD, 0x28, 0x5E, 0x95,
2171         0x78, 0xA5, 0x28, 0x43, 0x3D, 0x6D, 0xB1, 0xD9,
2172         0x69, 0x1F, 0xC9, 0x66, 0x0E, 0x32, 0x44, 0x08,
2173         0xD2, 0xAE, 0x2C, 0x43, 0xF2, 0xD0, 0x7D, 0x26,
2174         0x70, 0xE5, 0xA1, 0xCA, 0x37, 0xE9, 0x7D, 0xC7,
2175         0xA3, 0xFA, 0x81, 0x91, 0x64, 0xAA, 0x64, 0x91,
2176         0x9A, 0x95, 0x2D, 0xC9, 0xF9, 0xCE, 0xFE, 0x9F,
2177         0xC4, 0xD8, 0x81, 0xBE, 0x57, 0x84, 0xC5, 0x02,
2178         0xDB, 0x30, 0xC1, 0xD9, 0x0E, 0xA0, 0xA6, 0x00,
2179         0xD6, 0xF3, 0x52, 0x7E, 0x0D, 0x23, 0x6B, 0x2B,
2180         0x34, 0x99, 0x1F, 0x70, 0x27, 0x6D, 0x58, 0x84,
2181         0x93, 0x77, 0xB8, 0x3E, 0xF1, 0x71, 0x58, 0x42,
2182         0x8B, 0x2B, 0xC8, 0x6D, 0x05, 0x84, 0xFF, 0x4E,
2183         0x85, 0xEF, 0x4A, 0x9D, 0x91, 0x6A, 0xD5, 0xE1,
2184         0xAF, 0x01, 0xEB, 0x83, 0x8F, 0x23, 0x7C, 0x7F,
2185         0x12, 0x91, 0x05, 0xF0, 0x4E, 0xD9, 0x17, 0x62,
2186         0x75, 0xBB, 0xAC, 0x97, 0xEE, 0x3B, 0x4E, 0xC7,
2187         0xE5, 0x92, 0xF8, 0x9D, 0x4C, 0xF9, 0xEE, 0x55,
2188         0x18, 0xBB, 0xCC, 0xB4, 0xF2, 0x59, 0xB9, 0xFC,
2189         0x7A, 0x0F, 0x98, 0xD4, 0x8B, 0xFE, 0xF7, 0x83,
2190         0x46, 0xE2, 0x83, 0x33, 0x3E, 0x95, 0x8D, 0x17,
2191         0x1E, 0x85, 0xF8, 0x8C, 0x51, 0xB0, 0x6C, 0xB5,
2192         0x5E, 0x95, 0xBA, 0x4B, 0x69, 0x1B, 0x48, 0x69,
2193         0x0B, 0x8F, 0xA5, 0x18, 0x13, 0xB9, 0x77, 0xD1,
2194         0x80, 0x32, 0x32, 0x6D, 0x53, 0xA1, 0x95, 0x40,
2195         0x96, 0x8A, 0xCC, 0xA3, 0x69, 0xF8, 0x9F, 0xB5,
2196         0x8E, 0xD2, 0x68, 0x07, 0x4F, 0xA7, 0xEC, 0xF8,
2197         0x20, 0x21, 0x58, 0xF8, 0xD8, 0x9E, 0x5F, 0x40,
2198         0xBA, 0xB9, 0x76, 0x57, 0x3B, 0x17, 0xAD, 0xEE,
2199         0xCB, 0xDF, 0x07, 0xC1, 0xDF, 0x66, 0xA8, 0x0D,
2200         0xC2, 0xCE, 0x8F, 0x79, 0xC3, 0x32, 0xE0, 0x8C,
2201         0xFE, 0x5A, 0xF3, 0x55, 0x27, 0x73, 0x6F, 0xA1,
2202         0x54, 0xC6, 0xFC, 0x28, 0x9D, 0xBE, 0x97, 0xB9,
2203         0x54, 0x97, 0x72, 0x3A, 0x61, 0xAF, 0x6F, 0xDE,
2204         0xF8, 0x0E, 0xBB, 0x6B, 0x96, 0x84, 0xDD, 0x9B,
2205         0x62, 0xBA, 0x47, 0xB5, 0xC9, 0x3B, 0x4E, 0x8C,
2206         0x78, 0x2A, 0xCC, 0x0A, 0x69, 0x54, 0x25, 0x5E,
2207         0x8B, 0xAC, 0x56, 0xD9, 0xFE, 0x48, 0xBA, 0xCE,
2208         0xA9, 0xCE, 0xA6, 0x1D, 0xBF, 0x3E, 0x3C, 0x66,
2209         0x40, 0x71, 0x79, 0xAD, 0x5B, 0x26, 0xAD, 0xBE,
2210         0x58, 0x13, 0x64, 0x60, 0x7C, 0x05, 0xFC, 0xE3,
2211         0x51, 0x7A, 0xF2, 0xCC, 0x54, 0x16, 0x2C, 0xA4,
2212         0xCE, 0x5F, 0x59, 0x12, 0x77, 0xEB, 0xD9, 0x23,
2213         0xE3, 0x86, 0xFB, 0xD7, 0x48, 0x76, 0x9D, 0xE3,
2214         0x89, 0x87, 0x39, 0xFA, 0x7B, 0x21, 0x0B, 0x76,
2215         0xB2, 0xED, 0x1C, 0x27, 0x4B, 0xD5, 0x27, 0x05,
2216         0x8C, 0x7D, 0x58, 0x6C, 0xCA, 0xA5, 0x54, 0x9A,
2217         0x0F, 0xCB, 0xE9, 0x88, 0x31, 0xAD, 0x49, 0xEE,
2218         0x38, 0xFB, 0xC9, 0xFB, 0xB4, 0x7A, 0x00, 0x58,
2219         0x20, 0x32, 0xD3, 0x53, 0x5A, 0xDD, 0x74, 0x95,
2220         0x60, 0x59, 0x09, 0xAE, 0x7E, 0xEC, 0x74, 0xA3,
2221         0xB7, 0x1C, 0x6D, 0xF2, 0xAE, 0x79, 0xA4, 0x7C,
2222         0x50, 0xB1, 0x8D, 0x56, 0x22, 0x75, 0xD6, 0x8F,
2223         0x93, 0xB5, 0xED, 0xE8, 0x3D, 0x20, 0x4F, 0x9F,
2224         0x80, 0x2F, 0x56, 0x95, 0xA0, 0x80, 0xC6, 0xC2,
2225         0xA8, 0x27, 0xFB, 0x48, 0x96, 0x58, 0xA1, 0x93,
2226 };
2227
2228 /** AES-256-CBC test vector */
2229 static const struct blockcipher_test_data aes_test_data_11 = {
2230         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
2231         .cipher_key = {
2232                 .data = {
2233                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
2234                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
2235                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0,
2236                         0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D
2237                 },
2238                 .len = 32
2239         },
2240         .iv = {
2241                 .data = {
2242                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2243                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
2244                 },
2245                 .len = 16
2246         },
2247         .plaintext = {
2248                 .data = plaintext_aes_common,
2249                 .len = 512
2250         },
2251         .ciphertext = {
2252                 .data = ciphertext512_aes256cbc,
2253                 .len = 512
2254         }
2255 };
2256
2257 /** AES-256-CBC SHA1 test vector (Digest encrypted mode) */
2258 static const struct blockcipher_test_data aes_test_data_11_digest_enc = {
2259         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
2260         .cipher_key = {
2261                 .data = {
2262                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
2263                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
2264                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0,
2265                         0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D
2266                 },
2267                 .len = 32
2268         },
2269         .iv = {
2270                 .data = {
2271                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2272                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
2273                 },
2274                 .len = 16
2275         },
2276         .plaintext = {
2277                 .data = plaintext_aes_common_digest_enc,
2278                 .len = 512
2279         },
2280         .ciphertext = {
2281                 .data = ciphertext512_aes256cbc_digest_enc,
2282                 .len = 512
2283         },
2284         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
2285         .auth_key = {
2286                 .data = {
2287                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
2288                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
2289                         0xDE, 0xF4, 0xDE, 0xAD
2290                 },
2291                 .len = 20
2292         },
2293         .digest = {
2294                 .data = {
2295                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60,
2296                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
2297                         0x18, 0x8C, 0x1D, 0x32
2298                 },
2299                 .len = 20,
2300         }
2301 };
2302
2303 /** AES-128-CBC SHA256 HMAC test vector (160 bytes) */
2304 static const struct blockcipher_test_data aes_test_data_12 = {
2305         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
2306         .cipher_key = {
2307                 .data = {
2308                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
2309                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
2310                 },
2311                 .len = 16
2312         },
2313         .iv = {
2314                 .data = {
2315                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2316                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
2317                 },
2318                 .len = 16
2319         },
2320         .plaintext = {
2321                 .data = plaintext_aes_common,
2322                 .len = 160
2323         },
2324         .ciphertext = {
2325                 .data = ciphertext512_aes128cbc,
2326                 .len = 160
2327         },
2328         .auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
2329         .auth_key = {
2330                 .data = {
2331                         0x42, 0x1A, 0x7D, 0x3D, 0xF5, 0x82, 0x80, 0xF1,
2332                         0xF1, 0x35, 0x5C, 0x3B, 0xDD, 0x9A, 0x65, 0xBA,
2333                         0x58, 0x34, 0x85, 0x61, 0x1C, 0x42, 0x10, 0x76,
2334                         0x9A, 0x4F, 0x88, 0x1B, 0xB6, 0x8F, 0xD8, 0x60
2335                 },
2336                 .len = 32
2337         },
2338         .digest = {
2339                 .data = {
2340                         0x92, 0xEC, 0x65, 0x9A, 0x52, 0xCC, 0x50, 0xA5,
2341                         0xEE, 0x0E, 0xDF, 0x1E, 0xA4, 0xC9, 0xC1, 0x04,
2342                         0xD5, 0xDC, 0x78, 0x90, 0xF4, 0xE3, 0x35, 0x62,
2343                         0xAD, 0x95, 0x45, 0x28, 0x5C, 0xF8, 0x8C, 0x0B
2344                 },
2345                 .len = 32,
2346                 .truncated_len = 16
2347         }
2348 };
2349
2350 /** AES-128-CBC SHA1 HMAC test vector (160 bytes) */
2351 static const struct blockcipher_test_data aes_test_data_13 = {
2352         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
2353         .cipher_key = {
2354                 .data = {
2355                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
2356                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
2357                 },
2358                 .len = 16
2359         },
2360         .iv = {
2361                 .data = {
2362                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2363                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
2364                 },
2365                 .len = 16
2366         },
2367         .plaintext = {
2368                 .data = plaintext_aes_common,
2369                 .len = 160
2370         },
2371         .ciphertext = {
2372                 .data = ciphertext512_aes128cbc,
2373                 .len = 160
2374         },
2375         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
2376         .auth_key = {
2377                 .data = {
2378                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
2379                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
2380                         0xDE, 0xF4, 0xDE, 0xAD
2381                 },
2382                 .len = 20
2383         },
2384         .digest = {
2385                 .data = {
2386                         0x4F, 0x16, 0xEA, 0xF7, 0x4A, 0x88, 0xD3, 0xE0,
2387                         0x0E, 0x12, 0x8B, 0xE7, 0x05, 0xD0, 0x86, 0x48,
2388                         0x22, 0x43, 0x30, 0xA7
2389                 },
2390                 .len = 20,
2391                 .truncated_len = 12
2392         }
2393 };
2394
2395 /** AES-128-CBC SHA1 test vector (Digest encrypted mode) */
2396 static const struct blockcipher_test_data aes_test_data_13_digest_enc = {
2397         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
2398         .cipher_key = {
2399                 .data = {
2400                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
2401                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
2402                 },
2403                 .len = 16
2404         },
2405         .iv = {
2406                 .data = {
2407                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2408                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
2409                 },
2410                 .len = 16
2411         },
2412         .plaintext = {
2413                 .data = plaintext_aes_common_short_digest_enc,
2414                 .len = 50
2415         },
2416         .ciphertext = {
2417                 .data = ciphertext512_aes128cbc_short_digest_enc,
2418                 .len = 50
2419         },
2420         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
2421         .auth_key = {
2422                 .data = {
2423                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
2424                         0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
2425                         0xAA, 0xAA, 0xAA, 0xAA
2426                 },
2427                 .len = 20
2428         },
2429         .digest = {
2430                 .data = {
2431                         0x12, 0x5D, 0x73, 0x42, 0xB9, 0xAC, 0x11, 0xCD,
2432                         0x91, 0xA3, 0x9A, 0xF4, 0x8A, 0xA1, 0x7B, 0x4F,
2433                         0x63, 0xF1, 0x75, 0xD3
2434                 },
2435                 .len = 20,
2436         }
2437 };
2438
2439 /** XTS-AES-128 test vector (2 keys * 128 bit) */
2440 static const uint8_t plaintext_aes128xts_16bytes[] = {
2441         0xEB, 0xAB, 0xCE, 0x95, 0xB1, 0x4D, 0x3C, 0x8D,
2442         0x6F, 0xB3, 0x50, 0x39, 0x07, 0x90, 0x31, 0x1C
2443 };
2444 static const uint8_t ciphertext_aes128xts_16bytes[] = {
2445         0x77, 0x8A, 0xE8, 0xB4, 0x3C, 0xB9, 0x8D, 0x5A,
2446         0x82, 0x50, 0x81, 0xD5, 0xBE, 0x47, 0x1C, 0x63
2447 };
2448 static const struct
2449 blockcipher_test_data aes_test_data_xts_key_32_pt_16 = {
2450         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
2451         .cipher_key = {
2452                 .data = {
2453                         0xA1, 0xB9, 0x0C, 0xBA, 0x3F, 0x06, 0xAC, 0x35,
2454                         0x3B, 0x2C, 0x34, 0x38, 0x76, 0x08, 0x17, 0x62,
2455                         0x09, 0x09, 0x23, 0x02, 0x6E, 0x91, 0x77, 0x18,
2456                         0x15, 0xF2, 0x9D, 0xAB, 0x01, 0x93, 0x2F, 0x2F
2457                 },
2458                 .len = 32
2459         },
2460         .iv = {
2461                 .data = {
2462                         0x4F, 0xAE, 0xF7, 0x11, 0x7C, 0xDA, 0x59, 0xC6,
2463                         0x6E, 0x4B, 0x92, 0x01, 0x3E, 0x76, 0x8A, 0xD5
2464                 },
2465                 .len = 16
2466         },
2467         .plaintext = {
2468                 .data = plaintext_aes128xts_16bytes,
2469                 .len = 16
2470         },
2471         .ciphertext = {
2472                 .data = ciphertext_aes128xts_16bytes,
2473                 .len = 16
2474         }
2475 };
2476 static const uint8_t plaintext_aes128xts_32bytes[] = {
2477         0xB0, 0x4D, 0x84, 0xDA, 0x85, 0x6B, 0x9A, 0x59,
2478         0xCE, 0x2D, 0x62, 0x67, 0x46, 0xF6, 0x89, 0xA8,
2479         0x05, 0x1D, 0xAC, 0xD6, 0xBC, 0xE3, 0xB9, 0x90,
2480         0xAA, 0x90, 0x1E, 0x40, 0x30, 0x64, 0x88, 0x79
2481 };
2482 static const uint8_t ciphertext_aes128xts_32bytes[] = {
2483         0xF9, 0x41, 0x03, 0x9E, 0xBA, 0xB8, 0xCA, 0xC3,
2484         0x9D, 0x59, 0x24, 0x7C, 0xBB, 0xCB, 0x4D, 0x81,
2485         0x6C, 0x72, 0x6D, 0xAE, 0xD1, 0x15, 0x77, 0x69,
2486         0x2C, 0x55, 0xE4, 0xAC, 0x6D, 0x3E, 0x68, 0x20
2487 };
2488 static const struct
2489 blockcipher_test_data aes_test_data_xts_key_32_pt_32 = {
2490         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
2491         .cipher_key = {
2492                 .data = {
2493                         0x78, 0x3A, 0x83, 0xEC, 0x52, 0xA2, 0x74, 0x05,
2494                         0xDF, 0xF9, 0xDE, 0x4C, 0x57, 0xF9, 0xC9, 0x79,
2495                         0xB3, 0x60, 0xB6, 0xA5, 0xDF, 0x88, 0xD6, 0x7E,
2496                         0xC1, 0xA0, 0x52, 0xE6, 0xF5, 0x82, 0xA7, 0x17
2497                 },
2498                 .len = 32
2499         },
2500         .iv = {
2501                 .data = {
2502                         0x88, 0x6E, 0x97, 0x5B, 0x29, 0xBD, 0xF6, 0xF0,
2503                         0xC0, 0x1B, 0xB4, 0x7F, 0x61, 0xF6, 0xF0, 0xF5
2504                 },
2505                 .len = 16
2506         },
2507         .plaintext = {
2508                 .data = plaintext_aes128xts_32bytes,
2509                 .len = 32
2510         },
2511         .ciphertext = {
2512                 .data = ciphertext_aes128xts_32bytes,
2513                 .len = 32
2514         }
2515 };
2516
2517 /** XTS-AES-256 test vector (2 keys * 256 bit) */
2518 /* Encryption */
2519 static const uint8_t plaintext_aes256xts_32bytes[] = {
2520         0x2E, 0xED, 0xEA, 0x52, 0xCD, 0x82, 0x15, 0xE1,
2521         0xAC, 0xC6, 0x47, 0xE8, 0x10, 0xBB, 0xC3, 0x64,
2522         0x2E, 0x87, 0x28, 0x7F, 0x8D, 0x2E, 0x57, 0xE3,
2523         0x6C, 0x0A, 0x24, 0xFB, 0xC1, 0x2A, 0x20, 0x2E
2524 };
2525 static const uint8_t ciphertext_aes256xts_32bytes[] = {
2526         0xCB, 0xAA, 0xD0, 0xE2, 0xF6, 0xCE, 0xA3, 0xF5,
2527         0x0B, 0x37, 0xF9, 0x34, 0xD4, 0x6A, 0x9B, 0x13,
2528         0x0B, 0x9D, 0x54, 0xF0, 0x7E, 0x34, 0xF3, 0x6A,
2529         0xF7, 0x93, 0xE8, 0x6F, 0x73, 0xC6, 0xD7, 0xDB
2530 };
2531 static const struct
2532 blockcipher_test_data aes_test_data_xts_key_64_pt_32 = {
2533         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
2534         .cipher_key = {
2535                 .data = {
2536                         0x1E, 0xA6, 0x61, 0xC5, 0x8D, 0x94, 0x3A, 0x0E,
2537                         0x48, 0x01, 0xE4, 0x2F, 0x4B, 0x09, 0x47, 0x14,
2538                         0x9E, 0x7F, 0x9F, 0x8E, 0x3E, 0x68, 0xD0, 0xC7,
2539                         0x50, 0x52, 0x10, 0xBD, 0x31, 0x1A, 0x0E, 0x7C,
2540                         0xD6, 0xE1, 0x3F, 0xFD, 0xF2, 0x41, 0x8D, 0x8D,
2541                         0x19, 0x11, 0xC0, 0x04, 0xCD, 0xA5, 0x8D, 0xA3,
2542                         0xD6, 0x19, 0xB7, 0xE2, 0xB9, 0x14, 0x1E, 0x58,
2543                         0x31, 0x8E, 0xEA, 0x39, 0x2C, 0xF4, 0x1B, 0x08
2544                 },
2545                 .len = 64
2546         },
2547         .iv = {
2548                 .data = {
2549                         0xAD, 0xF8, 0xD9, 0x26, 0x27, 0x46, 0x4A, 0xD2,
2550                         0xF0, 0x42, 0x8E, 0x84, 0xA9, 0xF8, 0x75, 0x64
2551                 },
2552                 .len = 16
2553         },
2554         .plaintext = {
2555                 .data = plaintext_aes256xts_32bytes,
2556                 .len = 32
2557         },
2558         .ciphertext = {
2559                 .data = ciphertext_aes256xts_32bytes,
2560                 .len = 32
2561         }
2562 };
2563 static const uint8_t plaintext_aes256xts_48bytes[] = {
2564         0xBB, 0xB2, 0x34, 0xDB, 0x01, 0xBE, 0x79, 0xD3,
2565         0xDC, 0x7D, 0xCF, 0x49, 0xBC, 0x53, 0xB8, 0xEF,
2566         0xC6, 0x2F, 0xE7, 0x17, 0x94, 0x39, 0x06, 0x1D,
2567         0x73, 0xA6, 0xB2, 0x0E, 0xDB, 0x9B, 0x7D, 0xA0,
2568         0x45, 0x0B, 0x19, 0xF0, 0x20, 0x82, 0x02, 0x09,
2569         0xAF, 0xE0, 0x81, 0x12, 0xAE, 0x4A, 0xFD, 0xD3
2570 };
2571 static const uint8_t ciphertext_aes256xts_48bytes[] = {
2572         0xCB, 0xF6, 0x88, 0x48, 0xC4, 0x20, 0x49, 0xEF,
2573         0xB1, 0x46, 0xE2, 0xD1, 0xE4, 0x11, 0x5F, 0x62,
2574         0xE4, 0xFA, 0xA4, 0xEF, 0xFF, 0x19, 0x8F, 0x1A,
2575         0x0A, 0xA0, 0xC9, 0x8B, 0xA0, 0x2C, 0xC4, 0x4D,
2576         0xA3, 0x76, 0xD7, 0x62, 0xD6, 0x15, 0x1F, 0x23,
2577         0x45, 0x87, 0xBF, 0x12, 0x8B, 0x6A, 0x7F, 0xFA
2578 };
2579 static const struct
2580 blockcipher_test_data aes_test_data_xts_key_64_pt_48 = {
2581         .crypto_algo = RTE_CRYPTO_CIPHER_AES_XTS,
2582         .cipher_key = {
2583                 .data = {
2584                         0x7F, 0xB0, 0x92, 0x2F, 0xCE, 0x09, 0xED, 0xDD,
2585                         0x36, 0x65, 0xA1, 0x1F, 0x52, 0x35, 0xD5, 0x1E,
2586                         0xF7, 0x72, 0x06, 0xA7, 0xDE, 0x45, 0x47, 0x75,
2587                         0xB6, 0x9D, 0xCC, 0x54, 0x59, 0xAC, 0xDB, 0x24,
2588                         0xCC, 0xF0, 0x5C, 0x41, 0x5A, 0xF5, 0xAB, 0x8A,
2589                         0x06, 0x62, 0x3D, 0x19, 0x8D, 0x5B, 0x91, 0x85,
2590                         0x95, 0xA9, 0xDC, 0xAA, 0xF5, 0x39, 0x2E, 0xE7,
2591                         0x17, 0xC1, 0x04, 0x7F, 0x2F, 0x08, 0xF6, 0x2B
2592                 },
2593                 .len = 64
2594         },
2595         .iv = {
2596                 .data = {
2597                         0x8E, 0xA3, 0x63, 0x8B, 0x9D, 0x40, 0x62, 0xF1,
2598                         0x69, 0x19, 0x6F, 0xF4, 0x55, 0x5A, 0xD0, 0xAF
2599                 },
2600                 .len = 16
2601         },
2602         .plaintext = {
2603                 .data = plaintext_aes256xts_48bytes,
2604                 .len = 48
2605         },
2606         .ciphertext = {
2607                 .data = ciphertext_aes256xts_48bytes,
2608                 .len = 48
2609         }
2610 };
2611
2612 /* AES-DOCSIS-BPI test vectors */
2613
2614 /* Multiple of AES block size */
2615 static const struct blockcipher_test_data aes_test_data_docsis_1 = {
2616         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
2617         .cipher_key = {
2618                 .data = {
2619                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
2620                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
2621                 },
2622                 .len = 16
2623         },
2624         .iv = {
2625                 .data = {
2626                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2627                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
2628                 },
2629                 .len = 16
2630         },
2631         .plaintext = {
2632                 .data = plaintext_aes_common,
2633                 .len = 512
2634         },
2635         .ciphertext = {
2636                 .data = ciphertext512_aes128cbc,
2637                 .len = 512
2638         }
2639 };
2640
2641 /* Less than AES block size */
2642 static const struct blockcipher_test_data aes_test_data_docsis_2 = {
2643         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
2644         .cipher_key = {
2645                 .data = {
2646                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
2647                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
2648                 },
2649                 .len = 16
2650         },
2651         .iv = {
2652                 .data = {
2653                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
2654                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
2655                 },
2656                 .len = 16
2657         },
2658         .plaintext = {
2659                 .data = plaintext_aes_docsis_bpi_cfb,
2660                 .len = 7
2661         },
2662         .ciphertext = {
2663                 .data = ciphertext_aes_docsis_bpi_cfb,
2664                 .len = 7
2665         }
2666 };
2667
2668 /* Not multiple of AES block size */
2669 static const struct blockcipher_test_data aes_test_data_docsis_3 = {
2670         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
2671         .cipher_key = {
2672                 .data = {
2673                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
2674                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
2675                 },
2676                 .len = 16
2677         },
2678         .iv = {
2679                 .data = {
2680                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
2681                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
2682                 },
2683                 .len = 16
2684         },
2685         .plaintext = {
2686                 .data = plaintext_aes_docsis_bpi_cbc_cfb,
2687                 .len = 19
2688         },
2689         .ciphertext = {
2690                 .data = ciphertext_aes_docsis_bpi_cbc_cfb,
2691                 .len = 19
2692         }
2693 };
2694
2695 /* Multiple of AES 256 block size */
2696 static const struct blockcipher_test_data aes_test_data_docsis_4 = {
2697         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
2698         .cipher_key = {
2699                 .data = {
2700                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
2701                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
2702                         0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0,
2703                         0x37, 0x07, 0xB8, 0x23, 0xA2, 0xA3, 0xB5, 0x8D
2704                 },
2705                 .len = 32
2706         },
2707         .iv = {
2708                 .data = {
2709                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2710                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
2711                 },
2712                 .len = 16
2713         },
2714         .plaintext = {
2715                 .data = plaintext_aes_common,
2716                 .len = 512
2717         },
2718         .ciphertext = {
2719                 .data = ciphertext512_aes256cbc,
2720                 .len = 512
2721         }
2722 };
2723
2724 /* Less than AES 256 block size */
2725 static const struct blockcipher_test_data aes_test_data_docsis_5 = {
2726         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
2727         .cipher_key = {
2728                 .data = {
2729                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
2730                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
2731                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
2732                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
2733                 },
2734                 .len = 32
2735         },
2736         .iv = {
2737                 .data = {
2738                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
2739                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
2740                 },
2741                 .len = 16
2742         },
2743         .plaintext = {
2744                 .data = plaintext_aes_docsis_bpi_cfb,
2745                 .len = 7
2746         },
2747         .ciphertext = {
2748                 .data = ciphertext_aes256_docsis_bpi_cfb,
2749                 .len = 7
2750         }
2751 };
2752
2753 /* Not multiple of AES 256 block size */
2754 static const struct blockcipher_test_data aes_test_data_docsis_6 = {
2755         .crypto_algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,
2756         .cipher_key = {
2757                 .data = {
2758                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
2759                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
2760                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB,
2761                         0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
2762                 },
2763                 .len = 32
2764         },
2765         .iv = {
2766                 .data = {
2767                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A,
2768                         0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
2769                 },
2770                 .len = 16
2771         },
2772         .plaintext = {
2773                 .data = plaintext_aes_docsis_bpi_cbc_cfb,
2774                 .len = 19
2775         },
2776         .ciphertext = {
2777                 .data = ciphertext_aes256_docsis_bpi_cbc_cfb,
2778                 .len = 19
2779         }
2780 };
2781
2782 static const uint8_t
2783 cipher_aescbc_offset_16[] = {
2784         0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C,
2785         0x6F, 0x75, 0x73, 0x79, 0x20, 0x65, 0x61, 0x72,
2786         0x68, 0x2A, 0x6A, 0x82, 0xE0, 0x73, 0xC7, 0x51,
2787         0x81, 0xF4, 0x47, 0x27, 0x1A, 0xEF, 0x76, 0x15,
2788         0x1C, 0xE1, 0x38, 0x5F, 0xE1, 0x81, 0x77, 0xC7,
2789         0x8B, 0xF0, 0x69, 0xC3, 0x3C, 0x45, 0x1C, 0x0A,
2790         0xA3, 0x93, 0xBF, 0x60, 0x57, 0x88, 0xD2, 0xFF,
2791         0xE1, 0x8F, 0xC0, 0x64, 0x2C, 0x42, 0xC5, 0x22,
2792         0xE3, 0x5F, 0x71, 0x1F, 0xF7, 0x62, 0xA2, 0x7E,
2793         0x0D, 0x42, 0xD9, 0xE7, 0xF3, 0x10, 0xB0, 0xEE,
2794 };
2795
2796 /** AES-128-CBC SHA1 OOP test vector for swapping src/dst */
2797 static const struct blockcipher_test_data aes_test_data_14 = {
2798         .crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,
2799         .cipher_key = {
2800                 .data = {
2801                         0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
2802                         0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
2803                 },
2804                 .len = 16
2805         },
2806         .iv = {
2807                 .data = {
2808                         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2809                         0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
2810                 },
2811                 .len = 16
2812         },
2813         .plaintext = {
2814                 .data = plaintext_aes_common,
2815                 .len = 80
2816         },
2817         .cipher_offset = 16,
2818         .auth_offset = 0,
2819         .ciphertext = {
2820                 .data = cipher_aescbc_offset_16,
2821                 .len = 80
2822         },
2823         .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
2824         .auth_key = {
2825                 .data = {
2826                         0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
2827                         0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
2828                         0xDE, 0xF4, 0xDE, 0xAD
2829                 },
2830                 .len = 20
2831         },
2832         .digest = {
2833                 .data = {
2834                         0xCC, 0x15, 0x83, 0xF7, 0x23, 0x87, 0x96, 0xA7,
2835                         0x29, 0x34, 0x32, 0xE4, 0x4C, 0x06, 0xE8, 0xEB,
2836                         0x70, 0x72, 0x4B, 0xAD
2837                 },
2838                 .len = 20,
2839                 .truncated_len = 12
2840         }
2841 };
2842
2843 static const struct blockcipher_test_case aes_chain_test_cases[] = {
2844         {
2845                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
2846                         "Verify OOP Offset",
2847                 .test_data = &aes_test_data_14,
2848                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2849                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
2850         },
2851                 {
2852                 .test_descr = "AES-128-CTR HMAC-SHA1 Encryption Digest",
2853                 .test_data = &aes_test_data_1,
2854                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2855         },
2856         {
2857                 .test_descr = "AES-128-CTR HMAC-SHA1 Decryption Digest "
2858                         "Verify",
2859                 .test_data = &aes_test_data_1,
2860                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2861         },
2862         {
2863                 .test_descr = "AES-192-CTR XCBC Encryption Digest",
2864                 .test_data = &aes_test_data_2,
2865                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2866         },
2867         {
2868                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify",
2869                 .test_data = &aes_test_data_2,
2870                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2871         },
2872         {
2873                 .test_descr = "AES-192-CTR XCBC Decryption Digest Verify "
2874                                 "Scatter Gather",
2875                 .test_data = &aes_test_data_2,
2876                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2877                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
2878                         BLOCKCIPHER_TEST_FEATURE_OOP,
2879         },
2880         {
2881                 .test_descr = "AES-256-CTR HMAC-SHA1 Encryption Digest",
2882                 .test_data = &aes_test_data_3,
2883                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2884         },
2885         {
2886                 .test_descr = "AES-256-CTR HMAC-SHA1 Decryption Digest "
2887                         "Verify",
2888                 .test_data = &aes_test_data_3,
2889                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2890         },
2891         {
2892                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest",
2893                 .test_data = &aes_test_data_4,
2894                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2895         },
2896         {
2897                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
2898                         "(short buffers)",
2899                 .test_data = &aes_test_data_13,
2900                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2901         },
2902         {
2903                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
2904                                 "Scatter Gather",
2905                 .test_data = &aes_test_data_4,
2906                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2907                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
2908                         BLOCKCIPHER_TEST_FEATURE_OOP,
2909         },
2910         {
2911                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
2912                         "Verify",
2913                 .test_data = &aes_test_data_4,
2914                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2915         },
2916         {
2917                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
2918                         "Verify Scatter Gather",
2919                 .test_data = &aes_test_data_4,
2920                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2921                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
2922         },
2923         {
2924                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
2925                         "Verify (short buffers)",
2926                 .test_data = &aes_test_data_13,
2927                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2928         },
2929         {
2930                 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest",
2931                 .test_data = &aes_test_data_5,
2932                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2933         },
2934         {
2935                 .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest "
2936                         "(short buffers)",
2937                 .test_data = &aes_test_data_12,
2938                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2939         },
2940         {
2941                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
2942                         "Verify",
2943                 .test_data = &aes_test_data_5,
2944                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2945         },
2946         {
2947                 .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
2948                         "Verify (short buffers)",
2949                 .test_data = &aes_test_data_12,
2950                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2951         },
2952         {
2953                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest",
2954                 .test_data = &aes_test_data_6,
2955                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2956         },
2957         {
2958                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
2959                         "Sessionless",
2960                 .test_data = &aes_test_data_6,
2961                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2962                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
2963         },
2964         {
2965                 .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest "
2966                                 "Scatter Gather Sessionless",
2967                 .test_data = &aes_test_data_6,
2968                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2969                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
2970                         BLOCKCIPHER_TEST_FEATURE_SG |
2971                         BLOCKCIPHER_TEST_FEATURE_OOP,
2972         },
2973         {
2974                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
2975                         "Verify",
2976                 .test_data = &aes_test_data_6,
2977                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2978         },
2979         {
2980                 .test_descr = "AES-128-CBC HMAC-SHA512 Decryption Digest "
2981                         "Verify Scatter Gather",
2982                 .test_data = &aes_test_data_6,
2983                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2984                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
2985                         BLOCKCIPHER_TEST_FEATURE_OOP,
2986         },
2987         {
2988                 .test_descr = "AES-128-CBC XCBC Encryption Digest",
2989                 .test_data = &aes_test_data_7,
2990                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
2991         },
2992         {
2993                 .test_descr = "AES-128-CBC XCBC Decryption Digest Verify",
2994                 .test_data = &aes_test_data_7,
2995                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
2996         },
2997         {
2998                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
2999                         "OOP",
3000                 .test_data = &aes_test_data_4,
3001                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
3002                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3003         },
3004         {
3005                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
3006                         "OOP Offset",
3007                 .test_data = &aes_test_data_14,
3008                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
3009                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3010         },
3011         {
3012                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
3013                         "Verify OOP",
3014                 .test_data = &aes_test_data_4,
3015                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
3016                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3017         },
3018         {
3019                 .test_descr = "AES-128-CBC HMAC-SHA224 Encryption Digest",
3020                 .test_data = &aes_test_data_8,
3021                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
3022         },
3023         {
3024                 .test_descr = "AES-128-CBC HMAC-SHA224 Decryption Digest "
3025                         "Verify",
3026                 .test_data = &aes_test_data_8,
3027                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
3028         },
3029         {
3030                 .test_descr = "AES-128-CBC HMAC-SHA384 Encryption Digest",
3031                 .test_data = &aes_test_data_9,
3032                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
3033         },
3034         {
3035                 .test_descr = "AES-128-CBC HMAC-SHA384 Decryption Digest "
3036                         "Verify",
3037                 .test_data = &aes_test_data_9,
3038                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
3039         },
3040         {
3041                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
3042                                 "Sessionless",
3043                 .test_data = &aes_test_data_4,
3044                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
3045                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
3046         },
3047         {
3048                 .test_descr =
3049                                 "AES-128-CBC HMAC-SHA1 Decryption Digest "
3050                                 "Verify Sessionless",
3051                 .test_data = &aes_test_data_4,
3052                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
3053                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
3054         },
3055         {
3056                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest"
3057                         "(Encrypted Digest mode)",
3058                 .test_data = &aes_test_data_4_digest_enc,
3059                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN_ENC,
3060                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_DIGEST_ENCRYPTED,
3061         },
3062         {
3063                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
3064                         "Scatter Gather (Encrypted Digest mode)",
3065                 .test_data = &aes_test_data_4_digest_enc,
3066                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN_ENC,
3067                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
3068                                 BLOCKCIPHER_TEST_FEATURE_DIGEST_ENCRYPTED,
3069         },
3070         {
3071                 .test_descr = "AES-128-CBC HMAC-SHA1 Encryption Digest "
3072                         "(short buffers) (Encrypted Digest mode)",
3073                 .test_data = &aes_test_data_13_digest_enc,
3074                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN_ENC,
3075                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_DIGEST_ENCRYPTED,
3076         },
3077         {
3078                 .test_descr = "AES-192-CBC HMAC-SHA1 Encryption Digest "
3079                         "Sessionless (Encrypted Digest mode)",
3080                 .test_data = &aes_test_data_10_digest_enc,
3081                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN_ENC,
3082                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
3083                                 BLOCKCIPHER_TEST_FEATURE_DIGEST_ENCRYPTED,
3084         },
3085         {
3086                 .test_descr = "AES-256-CBC HMAC-SHA1 Encryption Digest "
3087                         "Scatter Gather Sessionless (Encrypted Digest mode)",
3088                 .test_data = &aes_test_data_11_digest_enc,
3089                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN_ENC,
3090                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
3091                         BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
3092                         BLOCKCIPHER_TEST_FEATURE_DIGEST_ENCRYPTED,
3093         },
3094         {
3095                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
3096                         "Verify (Encrypted Digest mode)",
3097                 .test_data = &aes_test_data_4_digest_enc,
3098                 .op_mask = BLOCKCIPHER_TEST_OP_DEC_AUTH_VERIFY,
3099                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_DIGEST_ENCRYPTED,
3100         },
3101         {
3102                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
3103                         "Verify Scatter Gather (Encrypted Digest mode)",
3104                 .test_data = &aes_test_data_4_digest_enc,
3105                 .op_mask = BLOCKCIPHER_TEST_OP_DEC_AUTH_VERIFY,
3106                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
3107                                 BLOCKCIPHER_TEST_FEATURE_DIGEST_ENCRYPTED,
3108         },
3109         {
3110                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
3111                         "Verify (short buffers) (Encrypted Digest mode)",
3112                 .test_data = &aes_test_data_13_digest_enc,
3113                 .op_mask = BLOCKCIPHER_TEST_OP_DEC_AUTH_VERIFY,
3114                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_DIGEST_ENCRYPTED,
3115         },
3116         {
3117                 .test_descr = "AES-256-CBC HMAC-SHA1 Decryption Digest "
3118                         "Verify Sessionless (Encrypted Digest mode)",
3119                 .test_data = &aes_test_data_11_digest_enc,
3120                 .op_mask = BLOCKCIPHER_TEST_OP_DEC_AUTH_VERIFY,
3121                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
3122                                 BLOCKCIPHER_TEST_FEATURE_DIGEST_ENCRYPTED,
3123         },
3124         {
3125                 .test_descr = "AES-192-CBC HMAC-SHA1 Decryption Digest "
3126                         "Verify Scatter Gather Sessionless (Encrypted Digest mode)",
3127                 .test_data = &aes_test_data_10_digest_enc,
3128                 .op_mask = BLOCKCIPHER_TEST_OP_DEC_AUTH_VERIFY,
3129                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
3130                                 BLOCKCIPHER_TEST_FEATURE_SG |
3131                                 BLOCKCIPHER_TEST_FEATURE_DIGEST_ENCRYPTED,
3132         },
3133         {
3134                 .test_descr = "AES-128-CBC HMAC-SHA1 Decryption Digest "
3135                         "Verify Sessionless (Encrypted Digest mode)",
3136                 .test_data = &aes_test_data_4_digest_enc,
3137                 .op_mask = BLOCKCIPHER_TEST_OP_DEC_AUTH_VERIFY,
3138                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS |
3139                                 BLOCKCIPHER_TEST_FEATURE_DIGEST_ENCRYPTED,
3140         },
3141         {
3142                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x8byte",
3143                 .test_data = &null_test_data_chain_x8_multiple,
3144                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
3145         },
3146         {
3147                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x8byte",
3148                 .test_data = &null_test_data_chain_x8_multiple,
3149                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
3150         },
3151         {
3152                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x8byte - OOP",
3153                 .test_data = &null_test_data_chain_x8_multiple,
3154                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
3155                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3156         },
3157         {
3158                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x8byte - OOP",
3159                 .test_data = &null_test_data_chain_x8_multiple,
3160                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
3161                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3162         },
3163         {
3164                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x4byte",
3165                 .test_data = &null_test_data_chain_x4_multiple,
3166                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
3167         },
3168         {
3169                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x4byte",
3170                 .test_data = &null_test_data_chain_x4_multiple,
3171                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
3172         },
3173         {
3174                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x4byte - OOP",
3175                 .test_data = &null_test_data_chain_x4_multiple,
3176                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
3177                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3178         },
3179         {
3180                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x4byte - OOP",
3181                 .test_data = &null_test_data_chain_x4_multiple,
3182                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
3183                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3184         },
3185         {
3186                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x1byte",
3187                 .test_data = &null_test_data_chain_x1_multiple,
3188                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
3189         },
3190         {
3191                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x1byte",
3192                 .test_data = &null_test_data_chain_x1_multiple,
3193                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
3194         },
3195         {
3196                 .test_descr = "NULL-CIPHER-NULL-AUTH encrypt & gen x1byte - OOP",
3197                 .test_data = &null_test_data_chain_x1_multiple,
3198                 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
3199                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3200         },
3201         {
3202                 .test_descr = "NULL-AUTH-NULL-CIPHER verify & decrypt x1byte - OOP",
3203                 .test_data = &null_test_data_chain_x1_multiple,
3204                 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
3205                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3206         },
3207 };
3208
3209 static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
3210         {
3211                 .test_descr = "AES-128-CBC Encryption",
3212                 .test_data = &aes_test_data_4,
3213                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3214         },
3215         {
3216                 .test_descr = "AES-128-CBC Decryption",
3217                 .test_data = &aes_test_data_4,
3218                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3219         },
3220         {
3221                 .test_descr = "AES-192-CBC Encryption",
3222                 .test_data = &aes_test_data_10,
3223                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3224         },
3225         {
3226                 .test_descr = "AES-192-CBC Encryption Scatter gather",
3227                 .test_data = &aes_test_data_10,
3228                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3229                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG |
3230                         BLOCKCIPHER_TEST_FEATURE_OOP,
3231         },
3232         {
3233                 .test_descr = "AES-192-CBC Decryption",
3234                 .test_data = &aes_test_data_10,
3235                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3236         },
3237         {
3238                 .test_descr = "AES-192-CBC Decryption Scatter Gather",
3239                 .test_data = &aes_test_data_10,
3240                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3241                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
3242         },
3243         {
3244                 .test_descr = "AES-256-CBC Encryption",
3245                 .test_data = &aes_test_data_11,
3246                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3247         },
3248         {
3249                 .test_descr = "AES-256-CBC Decryption",
3250                 .test_data = &aes_test_data_11,
3251                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3252         },
3253         {
3254                 .test_descr = "AES-256-CBC OOP Encryption",
3255                 .test_data = &aes_test_data_11,
3256                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3257                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3258         },
3259         {
3260                 .test_descr = "AES-256-CBC OOP Decryption",
3261                 .test_data = &aes_test_data_11,
3262                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3263                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3264         },
3265         {
3266                 .test_descr = "AES-128-CTR Encryption",
3267                 .test_data = &aes_test_data_1,
3268                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3269         },
3270         {
3271                 .test_descr = "AES-128-CTR Decryption",
3272                 .test_data = &aes_test_data_1,
3273                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3274         },
3275         {
3276                 .test_descr = "AES-192-CTR Encryption",
3277                 .test_data = &aes_test_data_2,
3278                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3279         },
3280         {
3281                 .test_descr = "AES-192-CTR Decryption",
3282                 .test_data = &aes_test_data_2,
3283                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3284         },
3285         {
3286                 .test_descr = "AES-256-CTR Encryption",
3287                 .test_data = &aes_test_data_3,
3288                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3289         },
3290         {
3291                 .test_descr = "AES-256-CTR Decryption",
3292                 .test_data = &aes_test_data_3,
3293                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3294         },
3295         {
3296                 .test_descr = "AES-128-CTR Encryption (12-byte IV)",
3297                 .test_data = &aes_test_data_1_IV_12_bytes,
3298                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3299         },
3300         {
3301                 .test_descr = "AES-192-CTR Encryption (12-byte IV)",
3302                 .test_data = &aes_test_data_2_IV_12_bytes,
3303                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3304         },
3305         {
3306                 .test_descr = "AES-256-CTR Encryption (12-byte IV)",
3307                 .test_data = &aes_test_data_3_IV_12_bytes,
3308                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3309         },
3310         {
3311                 .test_descr = "AES-128-XTS Encryption (16-byte plaintext)",
3312                 .test_data = &aes_test_data_xts_key_32_pt_16,
3313                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3314         },
3315         {
3316                 .test_descr = "AES-128-XTS Decryption (16-byte plaintext)",
3317                 .test_data = &aes_test_data_xts_key_32_pt_16,
3318                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3319         },
3320         {
3321                 .test_descr = "AES-128-XTS Encryption (32-byte plaintext)",
3322                 .test_data = &aes_test_data_xts_key_32_pt_32,
3323                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3324         },
3325         {
3326                 .test_descr = "AES-128-XTS Decryption (32-byte plaintext)",
3327                 .test_data = &aes_test_data_xts_key_32_pt_32,
3328                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3329         },
3330         {
3331                 .test_descr = "AES-256-XTS Encryption (32-byte plaintext)",
3332                 .test_data = &aes_test_data_xts_key_64_pt_32,
3333                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3334         },
3335         {
3336                 .test_descr = "AES-256-XTS Decryption (32-byte plaintext)",
3337                 .test_data = &aes_test_data_xts_key_64_pt_32,
3338                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3339         },
3340         {
3341                 .test_descr = "AES-256-XTS Encryption (48-byte plaintext)",
3342                 .test_data = &aes_test_data_xts_key_64_pt_48,
3343                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3344         },
3345         {
3346                 .test_descr = "AES-256-XTS Decryption (48-byte plaintext)",
3347                 .test_data = &aes_test_data_xts_key_64_pt_48,
3348                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3349         },
3350         {
3351                 .test_descr = "cipher-only - NULL algo - x8 - encryption",
3352                 .test_data = &null_test_data_chain_x8_multiple,
3353                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3354         },
3355         {
3356                 .test_descr = "cipher-only - NULL algo - x8 - decryption",
3357                 .test_data = &null_test_data_chain_x8_multiple,
3358                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3359         },
3360         {
3361                 .test_descr = "cipher-only - NULL algo - x4 - encryption",
3362                 .test_data = &null_test_data_chain_x4_multiple,
3363                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3364         },
3365         {
3366                 .test_descr = "cipher-only - NULL algo - x4 - decryption",
3367                 .test_data = &null_test_data_chain_x4_multiple,
3368                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3369         },
3370         {
3371                 .test_descr = "cipher-only - NULL algo - x4 - encryption - OOP",
3372                 .test_data = &null_test_data_chain_x4_multiple,
3373                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3374                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3375         },
3376         {
3377                 .test_descr = "cipher-only - NULL algo - x4 - decryption - OOP",
3378                 .test_data = &null_test_data_chain_x4_multiple,
3379                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3380                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3381                 },
3382         {
3383                 .test_descr = "cipher-only - NULL algo - x1 - encryption",
3384                 .test_data = &null_test_data_chain_x1_multiple,
3385                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3386         },
3387         {
3388                 .test_descr = "cipher-only - NULL algo - x1 - decryption",
3389                 .test_data = &null_test_data_chain_x1_multiple,
3390                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3391         },
3392         {
3393                 .test_descr = "AES-128-ECB Encryption",
3394                 .test_data = &aes_test_data_15,
3395                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3396         },
3397         {
3398                 .test_descr = "AES-128-ECB Decryption",
3399                 .test_data = &aes_test_data_15,
3400                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3401         },
3402         {
3403                 .test_descr = "AES-192-ECB Encryption",
3404                 .test_data = &aes_test_data_16,
3405                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3406         },
3407         {
3408                 .test_descr = "AES-192-ECB Decryption",
3409                 .test_data = &aes_test_data_16,
3410                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3411         },
3412         {
3413                 .test_descr = "AES-256-ECB Encryption",
3414                 .test_data = &aes_test_data_17,
3415                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3416         },
3417         {
3418                 .test_descr = "AES-256-ECB Decryption",
3419                 .test_data = &aes_test_data_17,
3420                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3421         },
3422         {
3423                 .test_descr = "AES-128-ECB Encryption (128-byte plaintext)",
3424                 .test_data = &aes_test_data_18,
3425                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3426         },
3427         {
3428                 .test_descr = "AES-128-ECB Decryption (128-byte plaintext)",
3429                 .test_data = &aes_test_data_18,
3430                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3431         },
3432         {
3433                 .test_descr = "AES-192-ECB Encryption (192-byte plaintext)",
3434                 .test_data = &aes_test_data_19,
3435                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3436         },
3437         {
3438                 .test_descr = "AES-192-ECB Decryption (192-byte plaintext)",
3439                 .test_data = &aes_test_data_19,
3440                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3441         },
3442         {
3443                 .test_descr = "AES-256-ECB Encryption (256-byte plaintext)",
3444                 .test_data = &aes_test_data_20,
3445                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3446         },
3447         {
3448                 .test_descr = "AES-256-ECB Decryption (192-byte plaintext)",
3449                 .test_data = &aes_test_data_20,
3450                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3451         },
3452         {
3453                 .test_descr = "AES-128-ECB Encryption (1008-byte plaintext)",
3454                 .test_data = &aes_test_data_21,
3455                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3456         },
3457         {
3458                 .test_descr = "AES-128-ECB Decryption (1008-byte plaintext)",
3459                 .test_data = &aes_test_data_21,
3460                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3461         },
3462 };
3463
3464 static const struct blockcipher_test_case aes_docsis_test_cases[] = {
3465
3466         {
3467                 .test_descr = "AES-DOCSIS-BPI Full Block Encryption",
3468                 .test_data = &aes_test_data_docsis_1,
3469                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3470         },
3471         {
3472                 .test_descr = "AES-DOCSIS-BPI Runt Block Encryption",
3473                 .test_data = &aes_test_data_docsis_2,
3474                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3475         },
3476         {
3477                 .test_descr = "AES-DOCSIS-BPI Uneven Encryption",
3478                 .test_data = &aes_test_data_docsis_3,
3479                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3480         },
3481         {
3482                 .test_descr = "AES-DOCSIS-BPI Full Block Decryption",
3483                 .test_data = &aes_test_data_docsis_1,
3484                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3485         },
3486         {
3487                 .test_descr = "AES-DOCSIS-BPI Runt Block Decryption",
3488                 .test_data = &aes_test_data_docsis_2,
3489                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3490         },
3491         {
3492                 .test_descr = "AES-DOCSIS-BPI Uneven Decryption",
3493                 .test_data = &aes_test_data_docsis_3,
3494                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3495         },
3496         {
3497                 .test_descr = "AES-DOCSIS-BPI OOP Full Block Encryption",
3498                 .test_data = &aes_test_data_docsis_1,
3499                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3500                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3501         },
3502         {
3503                 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Encryption",
3504                 .test_data = &aes_test_data_docsis_2,
3505                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3506                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3507         },
3508
3509         {
3510                 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Encryption",
3511                 .test_data = &aes_test_data_docsis_3,
3512                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3513                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3514         },
3515         {
3516                 .test_descr = "AES-DOCSIS-BPI OOP Full Block Decryption",
3517                 .test_data = &aes_test_data_docsis_1,
3518                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3519                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3520         },
3521         {
3522                 .test_descr = "AES-DOCSIS-BPI OOP Runt Block Decryption",
3523                 .test_data = &aes_test_data_docsis_2,
3524                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3525                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3526         },
3527         {
3528                 .test_descr = "AES-DOCSIS-BPI OOP Uneven Block Decryption",
3529                 .test_data = &aes_test_data_docsis_3,
3530                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3531                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3532         },
3533         /* AES 256 */
3534         {
3535                 .test_descr = "AES-256-DOCSIS-BPI Full Block Encryption",
3536                 .test_data = &aes_test_data_docsis_4,
3537                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3538         },
3539         {
3540                 .test_descr = "AES-256-DOCSIS-BPI Runt Block Encryption",
3541                 .test_data = &aes_test_data_docsis_5,
3542                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3543         },
3544         {
3545                 .test_descr = "AES-256-DOCSIS-BPI Uneven Encryption",
3546                 .test_data = &aes_test_data_docsis_6,
3547                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3548         },
3549         {
3550                 .test_descr = "AES-256-DOCSIS-BPI Full Block Decryption",
3551                 .test_data = &aes_test_data_docsis_4,
3552                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3553         },
3554         {
3555                 .test_descr = "AES-256-DOCSIS-BPI Runt Block Decryption",
3556                 .test_data = &aes_test_data_docsis_5,
3557                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3558         },
3559         {
3560                 .test_descr = "AES-256-DOCSIS-BPI Uneven Decryption",
3561                 .test_data = &aes_test_data_docsis_6,
3562                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3563         },
3564         {
3565                 .test_descr = "AES-256-DOCSIS-BPI OOP Full Block Encryption",
3566                 .test_data = &aes_test_data_docsis_4,
3567                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3568                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3569         },
3570         {
3571                 .test_descr = "AES-256-DOCSIS-BPI OOP Runt Block Encryption",
3572                 .test_data = &aes_test_data_docsis_5,
3573                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3574                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3575         },
3576         {
3577                 .test_descr = "AES-256-DOCSIS-BPI OOP Uneven Block Encryption",
3578                 .test_data = &aes_test_data_docsis_6,
3579                 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
3580                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3581         },
3582         {
3583                 .test_descr = "AES-256-DOCSIS-BPI OOP Full Block Decryption",
3584                 .test_data = &aes_test_data_docsis_4,
3585                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3586                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3587         },
3588         {
3589                 .test_descr = "AES-256-DOCSIS-BPI OOP Runt Block Decryption",
3590                 .test_data = &aes_test_data_docsis_5,
3591                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3592                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3593         },
3594         {
3595                 .test_descr = "AES-256-DOCSIS-BPI OOP Uneven Block Decryption",
3596                 .test_data = &aes_test_data_docsis_6,
3597                 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
3598                 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
3599         },
3600 };
3601 #endif /* TEST_CRYPTODEV_AES_TEST_VECTORS_H_ */