1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2016 Intel Corporation
5 #ifndef TEST_CRYPTODEV_DES_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_DES_TEST_VECTORS_H_
8 static const uint8_t plaintext_des[] = {
9 "What a lousy earth! He wondered how many people "
10 "were destitute that same night even in his own "
11 "prosperous country, how many homes were "
12 "shanties, how many husbands were drunk and "
13 "wives socked, and how many children were "
14 "bullied, abused, or abandoned. How many "
15 "families hungered for food they could not "
16 "afford to buy? How many hearts were broken? How "
17 "many suicides would take place that same night, "
18 "how many people would go insane? How many "
19 "cockroaches and landlords would triumph? How "
20 "many winners were losers, successes failures, "
21 "and rich men poor men? How many wise guys were "
22 "stupid? How many happy endings were unhappy "
23 "endings? How many honest men were liars, brave "
24 "men cowards, loyal men traitors, how many "
25 "sainted men were corrupt, how many people in "
26 "positions of trust had sold their souls to "
27 "bodyguards, how many had never had souls? How "
28 "many straight-and-narrow paths were crooked "
29 "paths? How many best families were worst "
30 "families and how many good people were bad "
31 "people? When you added them all up and then "
32 "subtracted, you might be left with only the "
33 "children, and perhaps with Albert Einstein and "
34 "an old violinist or sculptor somewhere."
37 static const uint8_t ciphertext512_des128ctr[] = {
38 0x13, 0x39, 0x3B, 0xBC, 0x1D, 0xE3, 0x23, 0x09,
39 0x9B, 0x08, 0xD1, 0x09, 0x52, 0x93, 0x78, 0x29,
40 0x11, 0x21, 0xBA, 0x01, 0x15, 0xCD, 0xEC, 0xAA,
41 0x79, 0x77, 0x58, 0xAE, 0xAE, 0xBC, 0x97, 0x33,
42 0x94, 0xA9, 0x2D, 0xC0, 0x0A, 0xA9, 0xA4, 0x4B,
43 0x19, 0x07, 0x88, 0x06, 0x7E, 0x81, 0x0F, 0xB5,
44 0x60, 0xCF, 0xA7, 0xC3, 0x2A, 0x43, 0xFF, 0x16,
45 0x3A, 0x5F, 0x11, 0x2D, 0x11, 0x38, 0x37, 0x94,
46 0x2A, 0xC8, 0x3D, 0x20, 0xBB, 0x93, 0x95, 0x54,
47 0x12, 0xFF, 0x0C, 0x47, 0x89, 0x7D, 0x73, 0xD1,
48 0x2E, 0x3A, 0x80, 0x52, 0xA8, 0x92, 0x93, 0x99,
49 0x16, 0xB8, 0x12, 0x1B, 0x8B, 0xA8, 0xC1, 0x81,
50 0x95, 0x18, 0x82, 0xD6, 0x5A, 0xA7, 0xFE, 0xCF,
51 0xC4, 0xAC, 0x85, 0x91, 0x0C, 0x2F, 0x1D, 0x10,
52 0x9A, 0x65, 0x07, 0xB0, 0x2E, 0x5A, 0x2D, 0x48,
53 0x26, 0xF8, 0x17, 0x7A, 0x53, 0xD6, 0xB8, 0xDF,
54 0xB1, 0x10, 0x48, 0x7E, 0x8F, 0xBE, 0x2E, 0xA1,
55 0x0D, 0x9E, 0xA9, 0xF1, 0x3B, 0x3B, 0x33, 0xCD,
56 0xDC, 0x52, 0x7E, 0xC0, 0x0E, 0xA0, 0xD8, 0xA7,
57 0xC6, 0x34, 0x5A, 0xAA, 0x29, 0x8B, 0xA9, 0xAC,
58 0x1F, 0x78, 0xAD, 0xEE, 0x34, 0x59, 0x30, 0xFB,
59 0x2A, 0x20, 0x3D, 0x4D, 0x30, 0xA7, 0x7D, 0xD8,
60 0xA0, 0xC6, 0xA2, 0xD3, 0x9A, 0xFB, 0x50, 0x97,
61 0x4D, 0x25, 0xA2, 0x37, 0x51, 0x54, 0xB7, 0xEB,
62 0xED, 0x77, 0xDB, 0x94, 0x35, 0x8B, 0x70, 0x95,
63 0x4A, 0x00, 0xA7, 0xF1, 0x8A, 0x66, 0x0E, 0xC6,
64 0x05, 0x7B, 0x69, 0x05, 0x42, 0x03, 0x96, 0x2C,
65 0x55, 0x00, 0x1B, 0xC0, 0x19, 0x4D, 0x0D, 0x2E,
66 0xF5, 0x81, 0x11, 0x64, 0xCA, 0xBB, 0xF2, 0x0F,
67 0x9C, 0x60, 0xE2, 0xCC, 0x02, 0x6E, 0x83, 0xD5,
68 0x24, 0xF4, 0x12, 0x0E, 0x6A, 0xEA, 0x4F, 0x6C,
69 0x79, 0x69, 0x65, 0x67, 0xDB, 0xF7, 0xEA, 0x98,
70 0x5D, 0x56, 0x98, 0xB7, 0x88, 0xE7, 0x23, 0xC9,
71 0x17, 0x32, 0x92, 0x33, 0x5A, 0x0C, 0x15, 0x20,
72 0x3B, 0x1C, 0xF9, 0x0F, 0x4D, 0xD1, 0xE8, 0xE6,
73 0x9E, 0x5E, 0x24, 0x1B, 0xA4, 0xB8, 0xB9, 0xE9,
74 0x2F, 0xFC, 0x89, 0xB4, 0xB9, 0xF4, 0xA6, 0xAD,
75 0x55, 0xF4, 0xDF, 0x58, 0x63, 0x25, 0xE3, 0x41,
76 0x70, 0xDF, 0x10, 0xE7, 0x13, 0x87, 0x8D, 0xB3,
77 0x62, 0x4F, 0xF5, 0x86, 0x85, 0x8F, 0x59, 0xF0,
78 0x21, 0x0E, 0x8F, 0x11, 0xAD, 0xBF, 0xDD, 0x61,
79 0x68, 0x3F, 0x54, 0x57, 0x49, 0x38, 0xC8, 0x24,
80 0x8E, 0x0A, 0xAC, 0xCA, 0x2C, 0x36, 0x3E, 0x5F,
81 0x0A, 0xCE, 0xFD, 0x1A, 0x60, 0x63, 0x5A, 0xE6,
82 0x06, 0x64, 0xB5, 0x94, 0x3C, 0xC9, 0xAF, 0x7C,
83 0xCD, 0x49, 0x10, 0xCF, 0xAF, 0x0E, 0x2E, 0x79,
84 0x27, 0xB2, 0x67, 0x02, 0xED, 0xEE, 0x80, 0x77,
85 0x7C, 0x6D, 0x4B, 0xDB, 0xCF, 0x8D, 0x68, 0x00,
86 0x2E, 0xD9, 0xF0, 0x8E, 0x08, 0xBF, 0xA6, 0x9B,
87 0xFE, 0xA4, 0xFB, 0x19, 0x46, 0xAF, 0x1B, 0xA9,
88 0xF8, 0x22, 0x81, 0x21, 0x97, 0xFC, 0xC0, 0x8A,
89 0x26, 0x58, 0x13, 0x29, 0xB6, 0x69, 0x94, 0x4B,
90 0xAB, 0xB3, 0x88, 0x0D, 0xA9, 0x48, 0x0E, 0xE8,
91 0x70, 0xFC, 0xA1, 0x21, 0xC4, 0x2C, 0xE5, 0x99,
92 0xB4, 0xF1, 0x6F, 0xB2, 0x4B, 0x4B, 0xCD, 0x48,
93 0x15, 0x47, 0x2D, 0x72, 0x39, 0x99, 0x9D, 0x24,
94 0x0C, 0x8B, 0xDC, 0xA1, 0xEE, 0xF6, 0xF4, 0x73,
95 0xC3, 0xB8, 0x0C, 0x23, 0x0D, 0xA7, 0xC4, 0x7D,
96 0x27, 0xE2, 0x14, 0x11, 0x53, 0x19, 0xE7, 0xCA,
97 0x94, 0x4E, 0x0D, 0x2C, 0xF7, 0x36, 0x47, 0xDB,
98 0x77, 0x3C, 0x22, 0xAC, 0xBE, 0xE1, 0x06, 0x55,
99 0xE5, 0xDD, 0x8B, 0x65, 0xE8, 0xE9, 0x91, 0x52,
100 0x59, 0x97, 0xFC, 0x8C, 0xEE, 0x96, 0x22, 0x60,
101 0xEE, 0xBF, 0x82, 0xF0, 0xCA, 0x14, 0xF9, 0xD3
104 static const struct blockcipher_test_data
105 triple_des128ctr_test_vector = {
106 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CTR,
109 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
110 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
116 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
121 .data = plaintext_des,
125 .data = ciphertext512_des128ctr,
130 static const struct blockcipher_test_data
131 triple_des128ctr_sha1_test_vector = {
132 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CTR,
135 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
136 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
142 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
147 .data = plaintext_des,
151 .data = ciphertext512_des128ctr,
154 .auth_algo = RTE_CRYPTO_AUTH_SHA1,
157 0xC3, 0x40, 0xD5, 0xD9, 0x8F, 0x8A, 0xC0, 0xF0,
158 0x46, 0x28, 0x02, 0x01, 0xB5, 0xC1, 0x87, 0x4D,
159 0xAC, 0xFE, 0x48, 0x76
165 static const struct blockcipher_test_data
166 triple_des128ctr_hmac_sha1_test_vector = {
167 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CTR,
170 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
171 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
177 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
182 .data = plaintext_des,
186 .data = ciphertext512_des128ctr,
189 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
192 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
193 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
194 0xDE, 0xF4, 0xDE, 0xAD
200 0xF1, 0xC1, 0xDB, 0x4D, 0xFA, 0x7F, 0x2F, 0xE5,
201 0xF8, 0x49, 0xEA, 0x1D, 0x7F, 0xCB, 0x42, 0x59,
202 0xC4, 0x1E, 0xB1, 0x18
208 static const uint8_t ciphertext512_des192ctr[] = {
209 0xFF, 0x32, 0x52, 0x97, 0x10, 0xBF, 0x0B, 0x10,
210 0x68, 0x0F, 0x4F, 0x56, 0x8B, 0x2C, 0x7B, 0x8E,
211 0x39, 0x1E, 0x1A, 0x2F, 0x83, 0xDE, 0x5E, 0x35,
212 0xC8, 0x4B, 0xDF, 0xD5, 0xBC, 0x84, 0x50, 0x1A,
213 0x02, 0xDF, 0xB3, 0x11, 0xE4, 0xDA, 0xB8, 0x0E,
214 0x47, 0xC6, 0x0C, 0x51, 0x09, 0x62, 0x9C, 0x5D,
215 0x71, 0x40, 0x49, 0xD8, 0x55, 0xBD, 0x7D, 0x90,
216 0x71, 0xC5, 0xF7, 0x07, 0x6F, 0x08, 0x71, 0x2A,
217 0xB1, 0x77, 0x9B, 0x0F, 0xA1, 0xB0, 0xD6, 0x10,
218 0xB2, 0xE5, 0x31, 0xEC, 0x21, 0x13, 0x89, 0x2A,
219 0x09, 0x7E, 0x30, 0xDB, 0xA0, 0xF0, 0xDC, 0xE4,
220 0x74, 0x64, 0x39, 0xA3, 0xB0, 0xB1, 0x80, 0x66,
221 0x52, 0xD4, 0x4E, 0xC9, 0x5A, 0x52, 0x6A, 0xC7,
222 0xB5, 0x2B, 0x61, 0xD5, 0x17, 0xD5, 0xF3, 0xCC,
223 0x41, 0x61, 0xD2, 0xA6, 0xF4, 0x51, 0x24, 0x3A,
224 0x63, 0x5D, 0x23, 0xB1, 0xF0, 0x22, 0xE7, 0x45,
225 0xFA, 0x5F, 0x7E, 0x99, 0x00, 0x11, 0x28, 0x35,
226 0xA3, 0xF4, 0x61, 0x94, 0x0E, 0x98, 0xCE, 0x35,
227 0xDD, 0x91, 0x1B, 0x0B, 0x4D, 0xEE, 0xFF, 0xFF,
228 0x0B, 0xD4, 0xDC, 0x56, 0xFC, 0x71, 0xE9, 0xEC,
229 0xE8, 0x36, 0x51, 0xF8, 0x8B, 0x6A, 0xE1, 0x8C,
230 0x2B, 0x25, 0x91, 0x91, 0x9B, 0x92, 0x76, 0xB5,
231 0x3D, 0x26, 0xA8, 0x53, 0xEA, 0x30, 0x5B, 0x4D,
232 0xDA, 0x16, 0xDA, 0x7D, 0x04, 0x88, 0xF5, 0x22,
233 0xA8, 0x0C, 0xB9, 0x41, 0xC7, 0x91, 0x64, 0x86,
234 0x99, 0x7D, 0x18, 0xB9, 0x67, 0xA2, 0x6E, 0x05,
235 0x1A, 0x82, 0x8F, 0xA2, 0xEB, 0x4D, 0x0B, 0x8C,
236 0x88, 0x2D, 0xBA, 0x77, 0x87, 0x32, 0x50, 0x3C,
237 0x4C, 0xD8, 0xD3, 0x50, 0x39, 0xFA, 0xDF, 0x48,
238 0x3E, 0x30, 0xF5, 0x76, 0x06, 0xB0, 0x1A, 0x05,
239 0x60, 0x2C, 0xD3, 0xA0, 0x63, 0x1A, 0x19, 0x2D,
240 0x6B, 0x76, 0xF2, 0x31, 0x4C, 0xA7, 0xE6, 0x5C,
241 0x1B, 0x23, 0x20, 0x41, 0x32, 0xE5, 0x83, 0x47,
242 0x04, 0xB6, 0x3E, 0xE0, 0xFD, 0x49, 0x1E, 0x1B,
243 0x75, 0x10, 0x11, 0x46, 0xE9, 0xF9, 0x96, 0x9A,
244 0xD7, 0x59, 0xFE, 0x38, 0x31, 0xFE, 0x79, 0xC4,
245 0xC8, 0x46, 0x88, 0xDE, 0x2E, 0xAE, 0x20, 0xED,
246 0x77, 0x50, 0x40, 0x38, 0x26, 0xD3, 0x35, 0xF6,
247 0x29, 0x55, 0x6A, 0x6B, 0x38, 0x69, 0xFE, 0x90,
248 0x5B, 0xA7, 0xFA, 0x6B, 0x73, 0x4F, 0xB9, 0x5D,
249 0xDC, 0x6F, 0x98, 0xC3, 0x6A, 0xC4, 0xB5, 0x09,
250 0xC5, 0x84, 0xA5, 0x6A, 0x84, 0xA4, 0xB3, 0x8A,
251 0x5F, 0xCA, 0x92, 0x64, 0x9E, 0xC3, 0x0F, 0x84,
252 0x8B, 0x2D, 0x48, 0xC6, 0x67, 0xAE, 0x07, 0xE0,
253 0x28, 0x38, 0x6D, 0xC4, 0x4D, 0x13, 0x87, 0xE0,
254 0xB2, 0x2F, 0xAA, 0xC0, 0xCF, 0x68, 0xD7, 0x9C,
255 0xB8, 0x07, 0xE4, 0x51, 0xD7, 0x75, 0x86, 0xFA,
256 0x0C, 0x50, 0x74, 0x68, 0x00, 0x64, 0x2A, 0x27,
257 0x59, 0xE9, 0x80, 0xEB, 0xC2, 0xA3, 0xFA, 0x58,
258 0xCC, 0x03, 0xE7, 0x7B, 0x66, 0x53, 0xFF, 0x90,
259 0xA0, 0x85, 0xE2, 0xF8, 0x82, 0xFE, 0xC6, 0x2B,
260 0xFF, 0x5E, 0x70, 0x85, 0x34, 0xB7, 0x22, 0x38,
261 0xDB, 0xBC, 0x15, 0x30, 0x59, 0xC1, 0x48, 0x42,
262 0xE5, 0x38, 0x8D, 0x37, 0x59, 0xDB, 0xA3, 0x20,
263 0x17, 0x36, 0x1D, 0x4B, 0xBF, 0x4E, 0xA4, 0x35,
264 0xCC, 0xFE, 0xF5, 0x7A, 0x73, 0xB4, 0x6D, 0x20,
265 0x1D, 0xC0, 0xE5, 0x21, 0x5C, 0xD2, 0x8A, 0x65,
266 0x08, 0xB6, 0x63, 0xAC, 0x9A, 0x1E, 0x3F, 0x3C,
267 0xAB, 0xB6, 0x6D, 0x34, 0xB2, 0x3A, 0x08, 0xDA,
268 0x29, 0x63, 0xD1, 0xA4, 0x83, 0x52, 0xB0, 0x63,
269 0x1B, 0x89, 0x35, 0x57, 0x59, 0x2C, 0x0F, 0x72,
270 0x72, 0xFD, 0xA0, 0xAC, 0xDB, 0xB4, 0xA3, 0xA1,
271 0x18, 0x10, 0x12, 0x97, 0x99, 0x63, 0x38, 0x98,
272 0x96, 0xB5, 0x16, 0x07, 0x4E, 0xE9, 0x2C, 0x97
275 static const struct blockcipher_test_data
276 triple_des192ctr_test_vector = {
277 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CTR,
280 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
281 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
282 0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
288 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
293 .data = plaintext_des,
297 .data = ciphertext512_des192ctr,
302 static const struct blockcipher_test_data
303 triple_des192ctr_sha1_test_vector = {
304 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CTR,
307 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
308 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
309 0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
315 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
320 .data = plaintext_des,
324 .data = ciphertext512_des192ctr,
327 .auth_algo = RTE_CRYPTO_AUTH_SHA1,
330 0xEA, 0x62, 0xB9, 0xB2, 0x78, 0x6C, 0x8E, 0xDB,
331 0xA3, 0xB6, 0xFF, 0x23, 0x3A, 0x47, 0xD8, 0xC8,
332 0xED, 0x5E, 0x20, 0x1D
338 static const struct blockcipher_test_data
339 triple_des192ctr_hmac_sha1_test_vector = {
340 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CTR,
343 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
344 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
345 0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
351 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
356 .data = plaintext_des,
360 .data = ciphertext512_des192ctr,
363 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
366 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
367 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
368 0xDE, 0xF4, 0xDE, 0xAD
374 0x32, 0xD5, 0x19, 0x8F, 0x79, 0x3A, 0xAA, 0x7B,
375 0x70, 0x67, 0x4E, 0x63, 0x88, 0xA3, 0x9A, 0x82,
376 0x07, 0x33, 0x12, 0x94
382 static const uint8_t ciphertext512_des128cbc[] = {
383 0x28, 0x2a, 0xff, 0x15, 0x5c, 0xdf, 0xd9, 0x6b,
384 0x54, 0xbc, 0x7b, 0xfb, 0xc5, 0x64, 0x4d, 0xdd,
385 0x3e, 0xf2, 0x9e, 0xb7, 0x53, 0x65, 0x37, 0x05,
386 0xe0, 0xdf, 0xae, 0xf7, 0xc9, 0x27, 0xe4, 0xec,
387 0x11, 0x27, 0xc2, 0x9e, 0x02, 0x4e, 0x03, 0x3b,
388 0x33, 0xf2, 0x66, 0x08, 0x24, 0x5f, 0xab, 0xc2,
389 0x7e, 0x21, 0x19, 0x5d, 0x51, 0xc3, 0xe2, 0x97,
390 0x6f, 0x2e, 0xb4, 0xaa, 0x34, 0x70, 0x88, 0x78,
391 0x4e, 0xe7, 0x3d, 0xe1, 0x9f, 0x87, 0x1c, 0x8b,
392 0xac, 0x8d, 0xa1, 0x1a, 0xcd, 0xb0, 0xf8, 0xb6,
393 0x24, 0x36, 0xe3, 0x8c, 0x07, 0xe7, 0xe4, 0x92,
394 0x13, 0x86, 0x6f, 0x13, 0xec, 0x04, 0x5c, 0xe9,
395 0xb9, 0xca, 0x45, 0x8a, 0x2c, 0x46, 0xda, 0x54,
396 0x1d, 0xb5, 0x81, 0xb1, 0xcd, 0xf3, 0x7d, 0x11,
397 0x6b, 0xb3, 0x0a, 0x45, 0xe5, 0x6e, 0x51, 0x3e,
398 0x2c, 0xac, 0x7c, 0xbc, 0xa7, 0x7e, 0x22, 0x4d,
399 0xe6, 0x02, 0xe3, 0x3f, 0x77, 0xd7, 0x73, 0x72,
400 0x0e, 0xfb, 0x42, 0x85, 0x80, 0xdf, 0xa8, 0x91,
401 0x60, 0x40, 0x48, 0xcd, 0x1b, 0xd9, 0xbf, 0x2f,
402 0xf2, 0xdf, 0xd0, 0xbd, 0x3f, 0x82, 0xce, 0x15,
403 0x9d, 0x6e, 0xc6, 0x59, 0x6f, 0x27, 0x0d, 0xf9,
404 0x26, 0xe2, 0x11, 0x29, 0x50, 0xc3, 0x0a, 0xb7,
405 0xde, 0x9d, 0xe9, 0x55, 0xa1, 0xe9, 0x01, 0x33,
406 0x56, 0x51, 0xa7, 0x3a, 0x9e, 0x63, 0xc5, 0x08,
407 0x01, 0x3b, 0x03, 0x4b, 0xc6, 0xc4, 0xa1, 0xc0,
408 0xc0, 0xd0, 0x0e, 0x48, 0xe5, 0x4c, 0x55, 0x6b,
409 0x4a, 0xc1, 0x0a, 0x24, 0x4b, 0xd0, 0x02, 0xf4,
410 0x31, 0x63, 0x11, 0xbd, 0xa6, 0x1f, 0xf4, 0xae,
411 0x23, 0x5a, 0x40, 0x7e, 0x0e, 0x4e, 0x63, 0x8b,
412 0x66, 0x3d, 0x55, 0x46, 0x6e, 0x5c, 0x76, 0xa7,
413 0x68, 0x31, 0xce, 0x5d, 0xca, 0xe2, 0xb4, 0xb0,
414 0xc1, 0x1f, 0x66, 0x18, 0x75, 0x64, 0x73, 0xa9,
415 0x9e, 0xd5, 0x0e, 0x0e, 0xf7, 0x77, 0x61, 0xf8,
416 0x89, 0xc6, 0xcf, 0x0c, 0x41, 0xd3, 0x8f, 0xfd,
417 0x22, 0x52, 0x4f, 0x94, 0x5c, 0x19, 0x11, 0x3a,
418 0xb5, 0x63, 0xe8, 0x81, 0x33, 0x13, 0x54, 0x3c,
419 0x93, 0x36, 0xb5, 0x5b, 0x51, 0xaf, 0x51, 0xa2,
420 0x08, 0xae, 0x83, 0x15, 0x77, 0x07, 0x28, 0x0d,
421 0x98, 0xe1, 0x2f, 0x69, 0x0e, 0xfb, 0x9a, 0x2e,
422 0x27, 0x27, 0xb0, 0xd5, 0xce, 0xf8, 0x16, 0x55,
423 0xfd, 0xaa, 0xd7, 0x1a, 0x1b, 0x2e, 0x4c, 0x86,
424 0x7a, 0x6a, 0x90, 0xf7, 0x0a, 0x07, 0xd3, 0x81,
425 0x4b, 0x75, 0x6a, 0x79, 0xdb, 0x63, 0x45, 0x0f,
426 0x31, 0x7e, 0xd0, 0x2a, 0x14, 0xff, 0xee, 0xcc,
427 0x97, 0x8a, 0x7d, 0x74, 0xbd, 0x9d, 0xaf, 0x00,
428 0xdb, 0x7e, 0xf3, 0xe6, 0x22, 0x76, 0x77, 0x58,
429 0xba, 0x1c, 0x06, 0x96, 0xfb, 0x6f, 0x41, 0x71,
430 0x66, 0x98, 0xae, 0x31, 0x7d, 0x29, 0x18, 0x71,
431 0x0e, 0xe4, 0x98, 0x7e, 0x59, 0x5a, 0xc9, 0x78,
432 0x9c, 0xfb, 0x6c, 0x81, 0x44, 0xb4, 0x0f, 0x5e,
433 0x18, 0x53, 0xb8, 0x6f, 0xbc, 0x3b, 0x15, 0xf0,
434 0x10, 0xdd, 0x0d, 0x4b, 0x0a, 0x36, 0x0e, 0xb4,
435 0x76, 0x0f, 0x16, 0xa7, 0x5c, 0x9d, 0xcf, 0xb0,
436 0x6d, 0x38, 0x02, 0x07, 0x05, 0xe9, 0xe9, 0x46,
437 0x08, 0xb8, 0x52, 0xd6, 0xd9, 0x4c, 0x81, 0x63,
438 0x1d, 0xe2, 0x5b, 0xd0, 0xf6, 0x5e, 0x1e, 0x81,
439 0x48, 0x08, 0x66, 0x3a, 0x85, 0xed, 0x65, 0xfe,
440 0xe8, 0x05, 0x7a, 0xe1, 0xe6, 0x12, 0xf2, 0x52,
441 0x83, 0xdd, 0x82, 0xbe, 0xf6, 0x34, 0x8a, 0x6f,
442 0xc5, 0x83, 0xcd, 0x3f, 0xbe, 0x58, 0x8b, 0x11,
443 0x78, 0xdc, 0x0c, 0x83, 0x72, 0x5d, 0x05, 0x2a,
444 0x01, 0x29, 0xee, 0x48, 0x9a, 0x67, 0x00, 0x6e,
445 0x14, 0x60, 0x2d, 0x00, 0x52, 0x87, 0x98, 0x5e,
446 0x43, 0xfe, 0xf1, 0x10, 0x14, 0xf1, 0x91, 0xcc
450 static const uint8_t ciphertext512_des[] = {
451 0x1A, 0x46, 0xDB, 0x69, 0x43, 0x45, 0x0F, 0x2F,
452 0xDC, 0x27, 0xF9, 0x41, 0x0E, 0x01, 0x58, 0xB4,
453 0x5E, 0xCC, 0x13, 0xF5, 0x92, 0x99, 0xE4, 0xF2,
454 0xD5, 0xF9, 0x16, 0xFE, 0x0F, 0x7E, 0xDE, 0xA0,
455 0xF5, 0x32, 0xFE, 0x20, 0x67, 0x93, 0xCA, 0xE1,
456 0x8E, 0x4D, 0x72, 0xA3, 0x50, 0x72, 0x14, 0x15,
457 0x70, 0xE7, 0xAB, 0x49, 0x25, 0x88, 0x0E, 0x01,
458 0x5C, 0x52, 0x87, 0xE2, 0x27, 0xDC, 0xD4, 0xD1,
459 0x14, 0x1B, 0x08, 0x9F, 0x42, 0x48, 0x93, 0xA9,
460 0xD1, 0x2F, 0x2C, 0x69, 0x48, 0x16, 0x59, 0xCF,
461 0x8B, 0xF6, 0x8B, 0xD9, 0x34, 0xD4, 0xD7, 0xE4,
462 0xAE, 0x35, 0xFD, 0xDA, 0x73, 0xBE, 0xDC, 0x6B,
463 0x10, 0x90, 0x75, 0x2D, 0x4C, 0x14, 0x37, 0x8B,
464 0xC8, 0xC7, 0xDF, 0x6E, 0x6F, 0xED, 0xF3, 0xE3,
465 0xD3, 0x21, 0x29, 0xCD, 0x06, 0xB6, 0x5B, 0xF4,
466 0xB9, 0xBD, 0x77, 0xA2, 0xF7, 0x91, 0xF4, 0x95,
467 0xF0, 0xE0, 0x62, 0x03, 0x46, 0xAE, 0x1B, 0xEB,
468 0xE2, 0xA9, 0xCF, 0xB9, 0x0E, 0x3B, 0xB9, 0xDA,
469 0x5C, 0x1B, 0x45, 0x3F, 0xDD, 0xCC, 0xCC, 0xB3,
470 0xF0, 0xDD, 0x36, 0x26, 0x11, 0x57, 0x97, 0xA7,
471 0xF6, 0xF4, 0xE1, 0x4F, 0xBB, 0x31, 0xBB, 0x07,
472 0x4B, 0xA3, 0xB4, 0x83, 0xF9, 0x23, 0xA1, 0xCD,
473 0x8C, 0x1C, 0x76, 0x92, 0x45, 0xA5, 0xEB, 0x7D,
474 0xEB, 0x22, 0x88, 0xB1, 0x9F, 0xFB, 0xE9, 0x06,
475 0x8F, 0x67, 0xA6, 0x8A, 0xB7, 0x0B, 0xCD, 0x8F,
476 0x34, 0x40, 0x4F, 0x4F, 0xAD, 0xA0, 0xF2, 0xDC,
477 0x2C, 0x53, 0xE1, 0xCA, 0xA5, 0x7A, 0x03, 0xEF,
478 0x08, 0x00, 0xCC, 0x52, 0xA6, 0xAB, 0x56, 0xD2,
479 0xF1, 0xCD, 0xC7, 0xED, 0xBE, 0xCB, 0x78, 0x37,
480 0x4B, 0x61, 0xA9, 0xD2, 0x3C, 0x8D, 0xCC, 0xFD,
481 0x21, 0xFD, 0x0F, 0xE4, 0x4E, 0x3D, 0x6F, 0x8F,
482 0x2A, 0xEC, 0x69, 0xFA, 0x20, 0x50, 0x99, 0x35,
483 0xA1, 0xCC, 0x3B, 0xFD, 0xD6, 0xAC, 0xE9, 0xBE,
484 0x14, 0xF1, 0xBC, 0x71, 0x70, 0xFE, 0x13, 0xD1,
485 0x48, 0xCC, 0xBE, 0x7B, 0xCB, 0xC0, 0x20, 0xD9,
486 0x28, 0xD7, 0xD4, 0x0F, 0x66, 0x7A, 0x60, 0xAB,
487 0x20, 0xA9, 0x23, 0x41, 0x03, 0x34, 0xC3, 0x63,
488 0x91, 0x69, 0x02, 0xD5, 0xBC, 0x41, 0xDA, 0xA8,
489 0xD1, 0x48, 0xC9, 0x8E, 0x4F, 0xCD, 0x0F, 0x21,
490 0x5B, 0x4D, 0x5F, 0xF5, 0x1B, 0x2A, 0x44, 0x10,
491 0x16, 0xA7, 0xFD, 0xC0, 0x55, 0xE1, 0x98, 0xBB,
492 0x76, 0xB5, 0xAB, 0x39, 0x6B, 0x9B, 0xAB, 0x85,
493 0x45, 0x4B, 0x9C, 0x64, 0x7D, 0x78, 0x3F, 0x61,
494 0x22, 0xB1, 0xDE, 0x0E, 0x39, 0x2B, 0x21, 0x26,
495 0xE2, 0x1D, 0x5A, 0xD7, 0xAC, 0xDF, 0xD4, 0x12,
496 0x69, 0xD1, 0xE8, 0x9B, 0x1A, 0xCE, 0x6C, 0xA0,
497 0x3B, 0x23, 0xDC, 0x03, 0x2B, 0x97, 0x16, 0xD0,
498 0xD0, 0x46, 0x98, 0x36, 0x53, 0xCE, 0x88, 0x6E,
499 0xCA, 0x2C, 0x15, 0x0E, 0x49, 0xED, 0xBE, 0xE5,
500 0xBF, 0xBD, 0x7B, 0xC2, 0x21, 0xE1, 0x09, 0xFF,
501 0x71, 0xA8, 0xBE, 0x8F, 0xB4, 0x1D, 0x25, 0x5C,
502 0x37, 0xCA, 0x26, 0xD2, 0x1E, 0x63, 0xE1, 0x7F,
503 0x0D, 0x89, 0x10, 0xEF, 0x78, 0xB0, 0xDB, 0xD0,
504 0x72, 0x44, 0x60, 0x1D, 0xCF, 0x7C, 0x25, 0x1A,
505 0xBB, 0xC3, 0x92, 0x53, 0x8E, 0x9F, 0x27, 0xC7,
506 0xE8, 0x08, 0xFC, 0x5D, 0x50, 0x3E, 0xFC, 0xB0,
507 0x00, 0xE2, 0x48, 0xB2, 0x4B, 0xF8, 0xF2, 0xE3,
508 0xD3, 0x8B, 0x71, 0x64, 0xB8, 0xF0, 0x6E, 0x4A,
509 0x23, 0xA0, 0xA4, 0x88, 0xA4, 0x36, 0x45, 0x6B,
510 0x5A, 0xE7, 0x57, 0x65, 0xEA, 0xC9, 0xF8, 0xE8,
511 0x7A, 0x80, 0x22, 0x67, 0x1A, 0x05, 0xF2, 0x78,
512 0x81, 0x17, 0xCD, 0x87, 0xFB, 0x0D, 0x25, 0x84,
513 0x49, 0x06, 0x25, 0xCE, 0xFC, 0x38, 0x06, 0x18,
514 0x2E, 0x1D, 0xE1, 0x33, 0x97, 0xB6, 0x7E, 0xAB,
518 static const struct blockcipher_test_data
519 triple_des128cbc_test_vector = {
520 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CBC,
523 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
524 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
530 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
535 .data = plaintext_des,
539 .data = ciphertext512_des128cbc,
544 static const struct blockcipher_test_data
545 triple_des128cbc_sha1_test_vector = {
546 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CBC,
549 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
550 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
556 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
561 .data = plaintext_des,
565 .data = ciphertext512_des128cbc,
568 .auth_algo = RTE_CRYPTO_AUTH_SHA1,
571 0x94, 0x45, 0x7B, 0xDF, 0xFE, 0x80, 0xB9, 0xA6,
572 0xA0, 0x7A, 0xE8, 0x93, 0x40, 0x7B, 0x85, 0x02,
573 0x1C, 0xD7, 0xE8, 0x87
579 static const struct blockcipher_test_data
580 triple_des128cbc_hmac_sha1_test_vector = {
581 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CBC,
584 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
585 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A
591 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
596 .data = plaintext_des,
600 .data = ciphertext512_des128cbc,
603 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
606 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
607 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
608 0xDE, 0xF4, 0xDE, 0xAD
614 0x7E, 0xBA, 0xFF, 0x86, 0x8D, 0x65, 0xCD, 0x08,
615 0x76, 0x34, 0x94, 0xE9, 0x9A, 0xCD, 0xB2, 0xBB,
616 0xBF, 0x65, 0xF5, 0x42
622 static const uint8_t ciphertext512_des192cbc[] = {
623 0xd0, 0xc9, 0xdc, 0x51, 0x29, 0x97, 0x03, 0x64,
624 0xcd, 0x22, 0xba, 0x3d, 0x2b, 0xbc, 0x21, 0x37,
625 0x7b, 0x1e, 0x29, 0x23, 0xeb, 0x51, 0x6e, 0xac,
626 0xbe, 0x5b, 0xd3, 0x67, 0xe0, 0x3f, 0xc3, 0xb5,
627 0xe3, 0x04, 0x17, 0x42, 0x2b, 0xaa, 0xdd, 0xd6,
628 0x0e, 0x69, 0xd0, 0x8f, 0x8a, 0xfc, 0xb4, 0x55,
629 0x67, 0x06, 0x51, 0xbb, 0x00, 0x57, 0xee, 0x95,
630 0x28, 0x79, 0x3f, 0xd9, 0x97, 0x2b, 0xb0, 0x02,
631 0x35, 0x08, 0xce, 0x7a, 0xc3, 0x43, 0x2c, 0x87,
632 0xaa, 0x97, 0x6a, 0xad, 0xf0, 0x26, 0xea, 0x1d,
633 0xbb, 0x08, 0xe9, 0x52, 0x11, 0xd3, 0xaf, 0x36,
634 0x17, 0x14, 0x21, 0xb2, 0xbc, 0x42, 0x51, 0x33,
635 0x27, 0x8c, 0xd8, 0x45, 0xb9, 0x76, 0xa0, 0x11,
636 0x24, 0x34, 0xde, 0x4d, 0x13, 0x67, 0x1b, 0xc3,
637 0x31, 0x12, 0x66, 0x56, 0x59, 0xd2, 0xb1, 0x8f,
638 0xec, 0x1e, 0xc0, 0x10, 0x7a, 0x86, 0xb1, 0x60,
639 0xc3, 0x01, 0xd6, 0xa8, 0x55, 0xad, 0x58, 0x63,
640 0xca, 0x68, 0xa9, 0x33, 0xe3, 0x93, 0x90, 0x7d,
641 0x8f, 0xca, 0xf8, 0x1c, 0xc2, 0x9e, 0xfb, 0xde,
642 0x9c, 0xc7, 0xf2, 0x6c, 0xff, 0xcc, 0x39, 0x17,
643 0x49, 0x33, 0x0d, 0x7c, 0xed, 0x07, 0x99, 0x91,
644 0x91, 0x6c, 0x5f, 0x3f, 0x02, 0x09, 0xdc, 0x70,
645 0xf9, 0x3b, 0x8d, 0xaa, 0xf4, 0xbc, 0x0e, 0xec,
646 0xf2, 0x26, 0xfb, 0xb2, 0x1c, 0x31, 0xae, 0xc6,
647 0x72, 0xe8, 0x0b, 0x75, 0x05, 0x57, 0x58, 0x98,
648 0x92, 0x37, 0x27, 0x8e, 0x3b, 0x0c, 0x25, 0xfb,
649 0xcf, 0x82, 0x02, 0xd5, 0x0b, 0x1f, 0x89, 0x49,
650 0xcd, 0x0f, 0xa1, 0xa7, 0x08, 0x63, 0x56, 0xa7,
651 0x1f, 0x80, 0x3a, 0xef, 0x24, 0x89, 0x57, 0x1a,
652 0x02, 0xdc, 0x2e, 0x51, 0xbd, 0x4a, 0x10, 0x23,
653 0xfc, 0x02, 0x1a, 0x3f, 0x34, 0xbf, 0x1c, 0x98,
654 0x1a, 0x40, 0x0a, 0x96, 0x8e, 0x41, 0xd5, 0x09,
655 0x55, 0x37, 0xe9, 0x25, 0x11, 0x83, 0xf8, 0xf3,
656 0xd4, 0xb0, 0xdb, 0x16, 0xd7, 0x51, 0x7e, 0x94,
657 0xf7, 0xb4, 0x26, 0xe0, 0xf4, 0x80, 0x01, 0x65,
658 0x51, 0xeb, 0xbc, 0xb0, 0x65, 0x8f, 0xdd, 0xb5,
659 0xf7, 0x00, 0xec, 0x40, 0xab, 0x7d, 0x96, 0xcc,
660 0x8d, 0xec, 0x89, 0x80, 0x31, 0x39, 0xa2, 0x5c,
661 0xb0, 0x55, 0x4c, 0xee, 0xdd, 0x15, 0x2b, 0xa9,
662 0x86, 0x4e, 0x23, 0x14, 0x36, 0xc5, 0x57, 0xf5,
663 0xe3, 0xe8, 0x89, 0xc9, 0xb7, 0xf8, 0xeb, 0x08,
664 0xe5, 0x93, 0x12, 0x5c, 0x0f, 0x79, 0xa1, 0x86,
665 0xe4, 0xc2, 0xeb, 0xa6, 0xa0, 0x50, 0x6a, 0xec,
666 0xd3, 0xce, 0x50, 0x78, 0x4e, 0x4f, 0x93, 0xd8,
667 0xdc, 0xb4, 0xec, 0x02, 0xe9, 0xbd, 0x17, 0x99,
668 0x1e, 0x16, 0x4e, 0xd7, 0xb0, 0x07, 0x02, 0x55,
669 0x63, 0x24, 0x4f, 0x7b, 0x8f, 0xc5, 0x7a, 0x12,
670 0x29, 0xff, 0x5d, 0xc1, 0xe7, 0xae, 0x48, 0xc8,
671 0x57, 0x53, 0xe7, 0xcd, 0x10, 0x6c, 0x19, 0xfc,
672 0xcc, 0xb9, 0xb1, 0xbe, 0x48, 0x9f, 0x2d, 0x3f,
673 0x39, 0x2e, 0xdd, 0x71, 0xde, 0x1b, 0x54, 0xee,
674 0x7d, 0x94, 0x8f, 0x27, 0x23, 0xe9, 0x74, 0x92,
675 0x14, 0x93, 0x84, 0x65, 0xc9, 0x22, 0x7c, 0xa8,
676 0x1b, 0x72, 0x73, 0xb1, 0x23, 0xa0, 0x6b, 0xcc,
677 0xb5, 0x22, 0x06, 0x15, 0xe5, 0x96, 0x03, 0x4a,
678 0x52, 0x8d, 0x1d, 0xbf, 0x3e, 0x82, 0x45, 0x9c,
679 0x75, 0x9e, 0xa9, 0x3a, 0x97, 0xb6, 0x5d, 0xc4,
680 0x75, 0x67, 0xa1, 0xf3, 0x0f, 0x7a, 0xfd, 0x71,
681 0x58, 0x04, 0xf9, 0xa7, 0xc2, 0x56, 0x74, 0x04,
682 0x74, 0x68, 0x6d, 0x8a, 0xf6, 0x6c, 0x5d, 0xd8,
683 0xb5, 0xed, 0x70, 0x23, 0x32, 0x4d, 0x75, 0x92,
684 0x88, 0x7b, 0x39, 0x37, 0x02, 0x4b, 0xb2, 0x1c,
685 0x1f, 0x7e, 0x5b, 0x1b, 0x10, 0xfc, 0x17, 0x21,
686 0x66, 0x62, 0x63, 0xc2, 0xcd, 0x16, 0x96, 0x3e
689 static const struct blockcipher_test_data
690 triple_des192cbc_test_vector = {
691 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CBC,
694 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
695 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
696 0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
702 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
707 .data = plaintext_des,
711 .data = ciphertext512_des192cbc,
716 static const struct blockcipher_test_data
717 triple_des192cbc_sha1_test_vector = {
718 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CBC,
721 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
722 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
723 0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
729 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
734 .data = plaintext_des,
738 .data = ciphertext512_des192cbc,
741 .auth_algo = RTE_CRYPTO_AUTH_SHA1,
744 0x53, 0x27, 0xC0, 0xE6, 0xD6, 0x1B, 0xD6, 0x45,
745 0x94, 0x2D, 0xCE, 0x8B, 0x29, 0xA3, 0x52, 0x14,
746 0xC1, 0x6B, 0x87, 0x99
752 static const struct blockcipher_test_data
753 triple_des192cbc_hmac_sha1_test_vector = {
754 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CBC,
757 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,
758 0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A,
759 0xD4, 0xC3, 0xA3, 0xAA, 0x33, 0x62, 0x61, 0xE0
765 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
770 .data = plaintext_des,
774 .data = ciphertext512_des192cbc,
777 .auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
780 0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
781 0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
782 0xDE, 0xF4, 0xDE, 0xAD
788 0xBA, 0xAC, 0x74, 0x19, 0x43, 0xB0, 0x72, 0xB8,
789 0x08, 0xF5, 0x24, 0xC4, 0x09, 0xBD, 0x48, 0xC1,
790 0x3C, 0x50, 0x1C, 0xDD
795 static const struct blockcipher_test_data
796 triple_des64cbc_test_vector = {
797 .crypto_algo = RTE_CRYPTO_CIPHER_3DES_CBC,
800 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2
806 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
811 .data = plaintext_des,
815 .data = ciphertext512_des,
820 static const struct blockcipher_test_data
821 des_cbc_test_vector = {
822 .crypto_algo = RTE_CRYPTO_CIPHER_DES_CBC,
825 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2
831 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
836 .data = plaintext_des,
840 .data = ciphertext512_des,
845 static const struct blockcipher_test_case des_cipheronly_test_cases[] = {
847 .test_descr = "DES-CBC Encryption",
848 .test_data = &des_cbc_test_vector,
849 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
852 .test_descr = "DES-CBC Decryption",
853 .test_data = &des_cbc_test_vector,
854 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
859 /* DES-DOCSIS-BPI test vectors */
861 static const uint8_t plaintext_des_docsis_bpi_cfb[] = {
862 0x00, 0x01, 0x02, 0x88, 0xEE, 0x59, 0x7E
865 static const uint8_t ciphertext_des_docsis_bpi_cfb[] = {
866 0x17, 0x86, 0xA8, 0x03, 0xA0, 0x85, 0x75
869 static const uint8_t plaintext_des_docsis_bpi_cbc_cfb[] = {
870 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
871 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x91,
875 static const uint8_t ciphertext_des_docsis_bpi_cbc_cfb[] = {
876 0x0D, 0xDA, 0x5A, 0xCB, 0xD0, 0x5E, 0x55, 0x67,
877 0x51, 0x47, 0x46, 0x86, 0x8A, 0x71, 0xE5, 0x77,
881 /* Multiple of DES block size */
882 static const struct blockcipher_test_data des_test_data_1 = {
883 .crypto_algo = RTE_CRYPTO_CIPHER_DES_DOCSISBPI,
886 0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2
892 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
897 .data = plaintext_des,
901 .data = ciphertext512_des,
906 /* Less than DES block size */
907 static const struct blockcipher_test_data des_test_data_2 = {
908 .crypto_algo = RTE_CRYPTO_CIPHER_DES_DOCSISBPI,
912 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
918 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
923 .data = plaintext_des_docsis_bpi_cfb,
927 .data = ciphertext_des_docsis_bpi_cfb,
932 /* Not multiple of DES block size */
933 static const struct blockcipher_test_data des_test_data_3 = {
934 .crypto_algo = RTE_CRYPTO_CIPHER_DES_DOCSISBPI,
937 0xE6, 0x60, 0x0F, 0xD8, 0x85, 0x2E, 0xF5, 0xAB
943 0x81, 0x0E, 0x52, 0x8E, 0x1C, 0x5F, 0xDA, 0x1A
948 .data = plaintext_des_docsis_bpi_cbc_cfb,
952 .data = ciphertext_des_docsis_bpi_cbc_cfb,
956 static const struct blockcipher_test_case des_docsis_test_cases[] = {
958 .test_descr = "DES-DOCSIS-BPI Full Block Encryption",
959 .test_data = &des_test_data_1,
960 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
963 .test_descr = "DES-DOCSIS-BPI Runt Block Encryption",
964 .test_data = &des_test_data_2,
965 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
968 .test_descr = "DES-DOCSIS-BPI Uneven Encryption",
969 .test_data = &des_test_data_3,
970 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
973 .test_descr = "DES-DOCSIS-BPI Full Block Decryption",
974 .test_data = &des_test_data_1,
975 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
978 .test_descr = "DES-DOCSIS-BPI Runt Block Decryption",
979 .test_data = &des_test_data_2,
980 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
983 .test_descr = "DES-DOCSIS-BPI Uneven Decryption",
984 .test_data = &des_test_data_3,
985 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
988 .test_descr = "DES-DOCSIS-BPI OOP Full Block Encryption",
989 .test_data = &des_test_data_1,
990 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
991 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
994 .test_descr = "DES-DOCSIS-BPI OOP Runt Block Encryption",
995 .test_data = &des_test_data_2,
996 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
997 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1000 .test_descr = "DES-DOCSIS-BPI OOP Uneven Encryption",
1001 .test_data = &des_test_data_3,
1002 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1003 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1006 .test_descr = "DES-DOCSIS-BPI OOP Full Block Decryption",
1007 .test_data = &des_test_data_1,
1008 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1009 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1012 .test_descr = "DES-DOCSIS-BPI OOP Runt Block Decryption",
1013 .test_data = &des_test_data_2,
1014 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1015 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1018 .test_descr = "DES-DOCSIS-BPI OOP Uneven Decryption",
1019 .test_data = &des_test_data_3,
1020 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1021 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1025 static const struct blockcipher_test_case triple_des_chain_test_cases[] = {
1027 .test_descr = "3DES-128-CBC HMAC-SHA1 Encryption Digest",
1028 .test_data = &triple_des128cbc_hmac_sha1_test_vector,
1029 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1032 .test_descr = "3DES-128-CBC HMAC-SHA1 Decryption Digest Verify",
1033 .test_data = &triple_des128cbc_hmac_sha1_test_vector,
1034 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1037 .test_descr = "3DES-128-CBC SHA1 Encryption Digest",
1038 .test_data = &triple_des128cbc_sha1_test_vector,
1039 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1042 .test_descr = "3DES-128-CBC SHA1 Decryption Digest Verify",
1043 .test_data = &triple_des128cbc_sha1_test_vector,
1044 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1047 .test_descr = "3DES-192-CBC HMAC-SHA1 Encryption Digest",
1048 .test_data = &triple_des192cbc_hmac_sha1_test_vector,
1049 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1052 .test_descr = "3DES-192-CBC HMAC-SHA1 Decryption Digest Verify",
1053 .test_data = &triple_des192cbc_hmac_sha1_test_vector,
1054 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1057 .test_descr = "3DES-192-CBC SHA1 Encryption Digest",
1058 .test_data = &triple_des192cbc_sha1_test_vector,
1059 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1062 .test_descr = "3DES-192-CBC SHA1 Decryption Digest Verify",
1063 .test_data = &triple_des192cbc_sha1_test_vector,
1064 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1067 .test_descr = "3DES-128-CTR HMAC-SHA1 Encryption Digest",
1068 .test_data = &triple_des128ctr_hmac_sha1_test_vector,
1069 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1072 .test_descr = "3DES-128-CTR HMAC-SHA1 Decryption Digest Verify",
1073 .test_data = &triple_des128ctr_hmac_sha1_test_vector,
1074 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1077 .test_descr = "3DES-128-CTR SHA1 Encryption Digest",
1078 .test_data = &triple_des128ctr_sha1_test_vector,
1079 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1082 .test_descr = "3DES-128-CTR SHA1 Decryption Digest Verify",
1083 .test_data = &triple_des128ctr_sha1_test_vector,
1084 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1087 .test_descr = "3DES-192-CTR HMAC-SHA1 Encryption Digest",
1088 .test_data = &triple_des192ctr_hmac_sha1_test_vector,
1089 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1092 .test_descr = "3DES-192-CTR HMAC-SHA1 Decryption Digest Verify",
1093 .test_data = &triple_des192ctr_hmac_sha1_test_vector,
1094 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1097 .test_descr = "3DES-192-CTR SHA1 Encryption Digest",
1098 .test_data = &triple_des192ctr_sha1_test_vector,
1099 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1102 .test_descr = "3DES-192-CTR SHA1 Decryption Digest Verify",
1103 .test_data = &triple_des192ctr_sha1_test_vector,
1104 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1107 .test_descr = "3DES-128-CBC HMAC-SHA1 Encryption Digest OOP",
1108 .test_data = &triple_des128cbc_hmac_sha1_test_vector,
1109 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1110 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1113 .test_descr = "3DES-128-CBC HMAC-SHA1 Decryption Digest"
1115 .test_data = &triple_des128cbc_hmac_sha1_test_vector,
1116 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1117 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
1120 .test_descr = "3DES-128-CBC HMAC-SHA1 Encryption Digest"
1122 .test_data = &triple_des128cbc_hmac_sha1_test_vector,
1123 .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
1124 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1128 "3DES-128-CBC HMAC-SHA1 Decryption Digest"
1129 " Verify Sessionless",
1130 .test_data = &triple_des128cbc_hmac_sha1_test_vector,
1131 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
1132 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SESSIONLESS,
1136 static const struct blockcipher_test_case triple_des_cipheronly_test_cases[] = {
1138 .test_descr = "3DES-64-CBC Encryption",
1139 .test_data = &triple_des64cbc_test_vector,
1140 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1143 .test_descr = "3DES-64-CBC Decryption",
1144 .test_data = &triple_des64cbc_test_vector,
1145 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1148 .test_descr = "3DES-128-CBC Encryption",
1149 .test_data = &triple_des128cbc_test_vector,
1150 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1153 .test_descr = "3DES-128-CBC Decryption",
1154 .test_data = &triple_des128cbc_test_vector,
1155 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1158 .test_descr = "3DES-192-CBC Encryption",
1159 .test_data = &triple_des192cbc_test_vector,
1160 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1163 .test_descr = "3DES-192-CBC Decryption",
1164 .test_data = &triple_des192cbc_test_vector,
1165 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1168 .test_descr = "3DES-128-CTR Encryption",
1169 .test_data = &triple_des128ctr_test_vector,
1170 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1173 .test_descr = "3DES-128-CTR Decryption",
1174 .test_data = &triple_des128ctr_test_vector,
1175 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1178 .test_descr = "3DES-192-CTR Encryption",
1179 .test_data = &triple_des192ctr_test_vector,
1180 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
1183 .test_descr = "3DES-192-CTR Decryption",
1184 .test_data = &triple_des192ctr_test_vector,
1185 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
1189 #endif /* TEST_CRYPTODEV_DES_TEST_VECTORS_H_ */