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