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