1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2016-2017 Intel Corporation
3  */
4 
5 #ifndef TEST_CRYPTODEV_HASH_TEST_VECTORS_H_
6 #define TEST_CRYPTODEV_HASH_TEST_VECTORS_H_
7 
8 #ifdef RTE_LIBRTE_PMD_AESNI_MB
9 #include <intel-ipsec-mb.h>
10 #endif
11 
12 #if !defined(IMB_VERSION_NUM)
13 #define IMB_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c))
14 #define IMB_VERSION_NUM IMB_VERSION(0, 49, 0)
15 #endif
16 
17 static const uint8_t plaintext_hash[] = {
18 	"What a lousy earth! He wondered how many people "
19 	"were destitute that same night even in his own "
20 	"prosperous country, how many homes were "
21 	"shanties, how many husbands were drunk and "
22 	"wives socked, and how many children were "
23 	"bullied, abused, or abandoned. How many "
24 	"families hungered for food they could not "
25 	"afford to buy? How many hearts were broken? How "
26 	"many suicides would take place that same night, "
27 	"how many people would go insane? How many "
28 	"cockroaches and landlords would triumph? How "
29 	"many winners were losers, successes failures, "
30 	"and rich men poor men? How many wise guys were "
31 	"stupid? How many happy endings were unhappy "
32 	"endings? How many honest men were liars, brave "
33 	"men cowards, loyal men traitors, how many "
34 	"sainted men were corrupt, how many people in "
35 	"positions of trust had sold their souls to "
36 	"bodyguards, how many had never had souls? How "
37 	"many straight-and-narrow paths were crooked "
38 	"paths? How many best families were worst "
39 	"families and how many good people were bad "
40 	"people? When you added them all up and then "
41 	"subtracted, you might be left with only the "
42 	"children, and perhaps with Albert Einstein and "
43 	"an old violinist or sculptor somewhere."
44 };
45 
46 static const struct blockcipher_test_data
47 md5_test_vector = {
48 	.auth_algo = RTE_CRYPTO_AUTH_MD5,
49 	.ciphertext = {
50 		.data = plaintext_hash,
51 		.len = 512
52 	},
53 	.digest = {
54 		.data = {
55 			0xB3, 0xE6, 0xBB, 0x50, 0x41, 0x35, 0x3C, 0x6B,
56 			0x7A, 0xFF, 0xD2, 0x64, 0xAF, 0xD5, 0x1C, 0xB2
57 		},
58 		.len = 16
59 	}
60 };
61 
62 static const struct blockcipher_test_data
63 hmac_md5_test_vector = {
64 	.auth_algo = RTE_CRYPTO_AUTH_MD5_HMAC,
65 	.ciphertext = {
66 		.data = plaintext_hash,
67 		.len = 512
68 	},
69 	.auth_key = {
70 		.data = {
71 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
72 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD
73 		},
74 		.len = 16
75 	},
76 	.digest = {
77 		.data = {
78 			0x50, 0xE8, 0xDE, 0xC5, 0xC1, 0x76, 0xAC, 0xAE,
79 			0x15, 0x4A, 0xF1, 0x7F, 0x7E, 0x04, 0x42, 0x9B
80 		},
81 		.len = 16,
82 		.truncated_len = 12
83 	}
84 };
85 
86 static const struct blockcipher_test_data
87 sha1_test_vector = {
88 	.auth_algo = RTE_CRYPTO_AUTH_SHA1,
89 	.ciphertext = {
90 		.data = plaintext_hash,
91 		.len = 512
92 	},
93 	.digest = {
94 		.data = {
95 			0xA2, 0x8D, 0x40, 0x78, 0xDD, 0x9F, 0xBB, 0xD5,
96 			0x35, 0x62, 0xFB, 0xFA, 0x93, 0xFD, 0x7D, 0x70,
97 			0xA6, 0x7D, 0x45, 0xCA
98 		},
99 		.len = 20,
100 		.truncated_len = 20
101 	}
102 };
103 
104 static const struct blockcipher_test_data
105 hmac_sha1_test_vector = {
106 	.auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
107 	.ciphertext = {
108 		.data = plaintext_hash,
109 		.len = 512
110 	},
111 	.auth_key = {
112 		.data = {
113 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
114 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
115 			0xDE, 0xF4, 0xDE, 0xAD
116 		},
117 		.len = 20
118 	},
119 	.digest = {
120 		.data = {
121 			0xC4, 0xB7, 0x0E, 0x6B, 0xDE, 0xD1, 0xE7, 0x77,
122 			0x7E, 0x2E, 0x8F, 0xFC, 0x48, 0x39, 0x46, 0x17,
123 			0x3F, 0x91, 0x64, 0x59
124 		},
125 		.len = 20,
126 		.truncated_len = 12
127 	}
128 };
129 
130 static const struct blockcipher_test_data
131 sha224_test_vector = {
132 	.auth_algo = RTE_CRYPTO_AUTH_SHA224,
133 	.ciphertext = {
134 		.data = plaintext_hash,
135 		.len = 512
136 	},
137 	.digest = {
138 		.data = {
139 			0x91, 0xE7, 0xCD, 0x75, 0x14, 0x9C, 0xA9, 0xE9,
140 			0x2E, 0x46, 0x12, 0x20, 0x22, 0xF9, 0x68, 0x28,
141 			0x39, 0x26, 0xDF, 0xB5, 0x78, 0x62, 0xB2, 0x6E,
142 			0x5E, 0x8F, 0x25, 0x84
143 		},
144 		.len = 28,
145 		.truncated_len = 28
146 	}
147 };
148 
149 static const struct blockcipher_test_data
150 hmac_sha224_test_vector = {
151 	.auth_algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
152 	.ciphertext = {
153 		.data = plaintext_hash,
154 		.len = 512
155 	},
156 	.auth_key = {
157 		.data = {
158 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
159 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
160 			0xDE, 0xF4, 0xDE, 0xAD, 0x26, 0xEB, 0xAB, 0x92,
161 			0xFB, 0xBF, 0xB0, 0x8C
162 		},
163 		.len = 28
164 	},
165 	.digest = {
166 		.data = {
167 			0x70, 0x0F, 0x04, 0x4D, 0x22, 0x02, 0x7D, 0x31,
168 			0x36, 0xDA, 0x77, 0x19, 0xB9, 0x66, 0x37, 0x7B,
169 			0xF1, 0x8A, 0x63, 0xBB, 0x5D, 0x1D, 0xE3, 0x9F,
170 			0x92, 0xF6, 0xAA, 0x19
171 		},
172 		.len = 28,
173 		.truncated_len = 14
174 	}
175 };
176 
177 static const struct blockcipher_test_data
178 sha256_test_vector = {
179 	.auth_algo = RTE_CRYPTO_AUTH_SHA256,
180 	.ciphertext = {
181 		.data = plaintext_hash,
182 		.len = 512
183 	},
184 	.digest = {
185 		.data = {
186 			0x7F, 0xF1, 0x0C, 0xF5, 0x90, 0x97, 0x19, 0x0F,
187 			0x00, 0xE4, 0x83, 0x01, 0xCA, 0x59, 0x00, 0x2E,
188 			0x1F, 0xC7, 0x84, 0xEE, 0x76, 0xA6, 0x39, 0x15,
189 			0x76, 0x2F, 0x87, 0xF9, 0x01, 0x06, 0xF3, 0xB7
190 		},
191 		.len = 32,
192 		.truncated_len = 32
193 	}
194 };
195 
196 static const struct blockcipher_test_data
197 hmac_sha256_test_vector = {
198 	.auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
199 	.ciphertext = {
200 		.data = plaintext_hash,
201 		.len = 512
202 	},
203 	.auth_key = {
204 		.data = {
205 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
206 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
207 			0xDE, 0xF4, 0xDE, 0xAD, 0x26, 0xEB, 0xAB, 0x92,
208 			0xFB, 0xBF, 0xB0, 0x8C, 0x29, 0x87, 0x90, 0xAC
209 		},
210 		.len = 32
211 	},
212 	.digest = {
213 		.data = {
214 			0xAF, 0x8F, 0x70, 0x1B, 0x4B, 0xAF, 0x34, 0xCB,
215 			0x02, 0x24, 0x48, 0x45, 0x83, 0x52, 0x8F, 0x22,
216 			0x06, 0x4D, 0x64, 0x09, 0x0A, 0xCC, 0x02, 0x77,
217 			0x71, 0x83, 0x48, 0x71, 0x07, 0x02, 0x25, 0x17
218 		},
219 		.len = 32,
220 		.truncated_len = 16
221 	}
222 };
223 
224 static const struct blockcipher_test_data
225 sha384_test_vector = {
226 	.auth_algo = RTE_CRYPTO_AUTH_SHA384,
227 	.ciphertext = {
228 		.data = plaintext_hash,
229 		.len = 512
230 	},
231 	.digest = {
232 		.data = {
233 			0x1D, 0xE7, 0x3F, 0x55, 0x86, 0xFE, 0x48, 0x9F,
234 			0xAC, 0xC6, 0x85, 0x32, 0xFA, 0x8E, 0xA6, 0x77,
235 			0x25, 0x84, 0xA5, 0x98, 0x8D, 0x0B, 0x80, 0xF4,
236 			0xEB, 0x2C, 0xFB, 0x6C, 0xEA, 0x7B, 0xFD, 0xD5,
237 			0xAD, 0x41, 0xAB, 0x15, 0xB0, 0x03, 0x15, 0xEC,
238 			0x9E, 0x3D, 0xED, 0xCB, 0x80, 0x7B, 0xF4, 0xB6
239 		},
240 		.len = 48,
241 		.truncated_len = 48
242 	}
243 };
244 
245 static const struct blockcipher_test_data
246 hmac_sha384_test_vector = {
247 	.auth_algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
248 	.ciphertext = {
249 		.data = plaintext_hash,
250 		.len = 512
251 	},
252 	.auth_key = {
253 		.data = {
254 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
255 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
256 			0xDE, 0xF4, 0xDE, 0xAD, 0x26, 0xEB, 0xAB, 0x92,
257 			0xFB, 0xBF, 0xB0, 0x8C, 0x29, 0x87, 0x90, 0xAC,
258 			0x39, 0x8B, 0x5C, 0x49, 0x68, 0x1E, 0x3A, 0x05,
259 			0xCC, 0x68, 0x5C, 0x76, 0xCB, 0x3C, 0x71, 0x89
260 		},
261 		.len = 48
262 	},
263 	.digest = {
264 		.data = {
265 			0xE2, 0x83, 0x18, 0x55, 0xB5, 0x8D, 0x94, 0x9B,
266 			0x01, 0xB6, 0xE2, 0x57, 0x7A, 0x62, 0xF5, 0xF4,
267 			0xAB, 0x39, 0xF3, 0x3C, 0x28, 0xA0, 0x0F, 0xCC,
268 			0xEE, 0x1C, 0xF1, 0xF8, 0x69, 0xF1, 0x24, 0x3B,
269 			0x10, 0x90, 0x0A, 0xE3, 0xF0, 0x59, 0xDD, 0xC0,
270 			0x6F, 0xE6, 0x8C, 0x84, 0xD5, 0x03, 0xF8, 0x9E
271 		},
272 		.len = 48,
273 		.truncated_len = 24
274 	}
275 };
276 
277 static const struct blockcipher_test_data
278 sha512_test_vector = {
279 	.auth_algo = RTE_CRYPTO_AUTH_SHA512,
280 	.ciphertext = {
281 		.data = plaintext_hash,
282 		.len = 512
283 	},
284 	.digest = {
285 		.data = {
286 			0xB9, 0xBA, 0x28, 0x48, 0x3C, 0xC2, 0xD3, 0x65,
287 			0x4A, 0xD6, 0x00, 0x1D, 0xCE, 0x61, 0x64, 0x54,
288 			0x45, 0x8C, 0x64, 0x0E, 0xED, 0x0E, 0xD8, 0x1C,
289 			0x72, 0xCE, 0xD2, 0x44, 0x91, 0xC8, 0xEB, 0xC7,
290 			0x99, 0xC5, 0xCA, 0x89, 0x72, 0x64, 0x96, 0x41,
291 			0xC8, 0xEA, 0xB2, 0x4E, 0xD1, 0x21, 0x13, 0x49,
292 			0x64, 0x4E, 0x15, 0x68, 0x12, 0x67, 0x26, 0x0F,
293 			0x2C, 0x3C, 0x83, 0x25, 0x27, 0x86, 0xF0, 0xDB
294 		},
295 		.len = 64,
296 		.truncated_len = 64
297 	}
298 };
299 
300 static const struct blockcipher_test_data
301 hmac_sha512_test_vector = {
302 	.auth_algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
303 	.ciphertext = {
304 		.data = plaintext_hash,
305 		.len = 512
306 	},
307 	.auth_key = {
308 		.data = {
309 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
310 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
311 			0xDE, 0xF4, 0xDE, 0xAD, 0x26, 0xEB, 0xAB, 0x92,
312 			0xFB, 0xBF, 0xB0, 0x8C, 0x29, 0x87, 0x90, 0xAC,
313 			0x39, 0x8B, 0x5C, 0x49, 0x68, 0x1E, 0x3A, 0x05,
314 			0xCC, 0x68, 0x5C, 0x76, 0xCB, 0x3C, 0x71, 0x89,
315 			0xDE, 0xAA, 0x36, 0x44, 0x98, 0x93, 0x97, 0x1E,
316 			0x6D, 0x53, 0x83, 0x87, 0xB3, 0xB7, 0x56, 0x41
317 		},
318 		.len = 64
319 	},
320 	.digest = {
321 		.data = {
322 			0xB8, 0x0B, 0x35, 0x97, 0x3F, 0x24, 0x3F, 0x05,
323 			0x2A, 0x7F, 0x2F, 0xD8, 0xD7, 0x56, 0x58, 0xAD,
324 			0x6F, 0x8D, 0x1F, 0x4C, 0x30, 0xF9, 0xA8, 0x29,
325 			0x7A, 0xE0, 0x8D, 0x88, 0xF5, 0x2E, 0x94, 0xF5,
326 			0x06, 0xF7, 0x5D, 0x57, 0x32, 0xA8, 0x49, 0x29,
327 			0xEA, 0x6B, 0x6D, 0x95, 0xBD, 0x76, 0xF5, 0x79,
328 			0x97, 0x37, 0x0F, 0xBE, 0xC2, 0x45, 0xA0, 0x87,
329 			0xAF, 0x24, 0x27, 0x0C, 0x78, 0xBA, 0xBE, 0x20
330 		},
331 		.len = 64,
332 		.truncated_len = 32
333 	}
334 };
335 
336 static const struct blockcipher_test_data
337 cmac_test_vector = {
338 	.auth_algo = RTE_CRYPTO_AUTH_AES_CMAC,
339 	.ciphertext = {
340 		.data = plaintext_hash,
341 		.len = 512
342 	},
343 	.auth_key = {
344 		.data = {
345 			0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
346 			0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
347 		},
348 		.len = 16
349 	},
350 	.digest = {
351 		.data = {
352 			0x4C, 0x77, 0x87, 0xA0, 0x78, 0x8E, 0xEA, 0x96,
353 			0xC1, 0xEB, 0x1E, 0x4E, 0x95, 0x8F, 0xED, 0x27
354 		},
355 		.len = 16,
356 		.truncated_len = 16
357 	}
358 };
359 
360 static const struct blockcipher_test_data
361 cmac_test_vector_12 = {
362 	.auth_algo = RTE_CRYPTO_AUTH_AES_CMAC,
363 	.ciphertext = {
364 		.data = plaintext_hash,
365 		.len = 512
366 	},
367 	.auth_key = {
368 		.data = {
369 			0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
370 			0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
371 		},
372 		.len = 16
373 	},
374 	.digest = {
375 		.data = {
376 			0x4C, 0x77, 0x87, 0xA0, 0x78, 0x8E, 0xEA, 0x96,
377 			0xC1, 0xEB, 0x1E, 0x4E, 0x95, 0x8F, 0xED, 0x27
378 		},
379 		.len = 12,
380 		.truncated_len = 12
381 	}
382 };
383 
384 static const struct blockcipher_test_case hash_test_cases[] = {
385 	{
386 		.test_descr = "MD5 Digest",
387 		.test_data = &md5_test_vector,
388 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
389 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
390 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
391 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
392 	},
393 	{
394 		.test_descr = "MD5 Digest Verify",
395 		.test_data = &md5_test_vector,
396 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
397 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
398 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
399 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
400 	},
401 	{
402 		.test_descr = "HMAC-MD5 Digest",
403 		.test_data = &hmac_md5_test_vector,
404 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
405 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
406 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
407 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
408 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
409 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
410 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
411 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
412 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
413 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
414 	},
415 	{
416 		.test_descr = "HMAC-MD5 Digest Verify",
417 		.test_data = &hmac_md5_test_vector,
418 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
419 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
420 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
421 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
422 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
423 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
424 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
425 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
426 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
427 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
428 	},
429 	{
430 		.test_descr = "SHA1 Digest",
431 		.test_data = &sha1_test_vector,
432 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
433 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
434 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
435 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
436 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
437 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
438 #endif
439 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
440 	},
441 	{
442 		.test_descr = "SHA1 Digest Verify",
443 		.test_data = &sha1_test_vector,
444 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
445 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
446 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
447 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
448 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
449 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
450 #endif
451 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
452 	},
453 	{
454 		.test_descr = "HMAC-SHA1 Digest",
455 		.test_data = &hmac_sha1_test_vector,
456 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
457 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
458 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
459 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
460 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
461 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
462 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
463 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
464 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
465 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
466 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
467 	},
468 	{
469 		.test_descr = "HMAC-SHA1 Digest Scatter Gather",
470 		.test_data = &hmac_sha1_test_vector,
471 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
472 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
473 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
474 			    BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
475 			    BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
476 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
477 	},
478 	{
479 		.test_descr = "HMAC-SHA1 Digest Verify",
480 		.test_data = &hmac_sha1_test_vector,
481 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
482 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
483 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
484 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
485 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
486 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
487 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
488 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
489 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
490 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
491 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
492 	},
493 	{
494 		.test_descr = "HMAC-SHA1 Digest Verify Scatter Gather",
495 		.test_data = &hmac_sha1_test_vector,
496 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
497 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
498 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
499 			    BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
500 			    BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
501 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
502 	},
503 	{
504 		.test_descr = "SHA224 Digest",
505 		.test_data = &sha224_test_vector,
506 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
507 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
508 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
509 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
510 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
511 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
512 #endif
513 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
514 	},
515 	{
516 		.test_descr = "SHA224 Digest Verify",
517 		.test_data = &sha224_test_vector,
518 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
519 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
520 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
521 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
522 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
523 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
524 #endif
525 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
526 	},
527 	{
528 		.test_descr = "HMAC-SHA224 Digest",
529 		.test_data = &hmac_sha224_test_vector,
530 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
531 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
532 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
533 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
534 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
535 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
536 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
537 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
538 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
539 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
540 	},
541 	{
542 		.test_descr = "HMAC-SHA224 Digest Verify",
543 		.test_data = &hmac_sha224_test_vector,
544 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
545 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
546 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
547 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
548 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
549 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
550 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
551 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
552 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
553 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
554 	},
555 	{
556 		.test_descr = "SHA256 Digest",
557 		.test_data = &sha256_test_vector,
558 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
559 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
560 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
561 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
562 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
563 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
564 #endif
565 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
566 	},
567 	{
568 		.test_descr = "SHA256 Digest Verify",
569 		.test_data = &sha256_test_vector,
570 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
571 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
572 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
573 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
574 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
575 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
576 #endif
577 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
578 	},
579 	{
580 		.test_descr = "HMAC-SHA256 Digest",
581 		.test_data = &hmac_sha256_test_vector,
582 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
583 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
584 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
585 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
586 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
587 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
588 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
589 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
590 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
591 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
592 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
593 	},
594 	{
595 		.test_descr = "HMAC-SHA256 Digest Verify",
596 		.test_data = &hmac_sha256_test_vector,
597 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
598 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
599 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
600 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
601 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
602 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
603 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
604 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
605 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
606 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
607 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
608 	},
609 	{
610 		.test_descr = "SHA384 Digest",
611 		.test_data = &sha384_test_vector,
612 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
613 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
614 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
615 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
616 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
617 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
618 #endif
619 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
620 	},
621 	{
622 		.test_descr = "SHA384 Digest Verify",
623 		.test_data = &sha384_test_vector,
624 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
625 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
626 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
627 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
628 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
629 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
630 #endif
631 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
632 	},
633 	{
634 		.test_descr = "HMAC-SHA384 Digest",
635 		.test_data = &hmac_sha384_test_vector,
636 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
637 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
638 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
639 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
640 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
641 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
642 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
643 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
644 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
645 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
646 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
647 	},
648 	{
649 		.test_descr = "HMAC-SHA384 Digest Verify",
650 		.test_data = &hmac_sha384_test_vector,
651 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
652 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
653 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
654 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
655 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
656 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
657 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
658 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
659 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
660 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
661 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
662 	},
663 	{
664 		.test_descr = "SHA512 Digest",
665 		.test_data = &sha512_test_vector,
666 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
667 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
668 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
669 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
670 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
671 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
672 #endif
673 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
674 	},
675 	{
676 		.test_descr = "SHA512 Digest Verify",
677 		.test_data = &sha512_test_vector,
678 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
679 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
680 			    BLOCKCIPHER_TEST_TARGET_PMD_CCP |
681 			    BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
682 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0)
683 			    BLOCKCIPHER_TEST_TARGET_PMD_MB |
684 #endif
685 			    BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
686 	},
687 	{
688 		.test_descr = "HMAC-SHA512 Digest",
689 		.test_data = &hmac_sha512_test_vector,
690 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
691 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
692 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
693 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
694 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
695 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
696 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
697 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
698 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
699 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
700 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
701 	},
702 	{
703 		.test_descr = "HMAC-SHA512 Digest Verify",
704 		.test_data = &hmac_sha512_test_vector,
705 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
706 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL |
707 			BLOCKCIPHER_TEST_TARGET_PMD_MB |
708 			BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER |
709 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC |
710 			BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
711 			BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
712 			BLOCKCIPHER_TEST_TARGET_PMD_QAT |
713 			BLOCKCIPHER_TEST_TARGET_PMD_CCP |
714 			BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
715 			BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
716 	},
717 	{
718 		.test_descr = "CMAC Digest 12B",
719 		.test_data = &cmac_test_vector_12,
720 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
721 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
722 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
723 	},
724 	{
725 		.test_descr = "CMAC Digest Verify 12B",
726 		.test_data = &cmac_test_vector_12,
727 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
728 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
729 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
730 	},
731 	{
732 		.test_descr = "CMAC Digest 16B",
733 		.test_data = &cmac_test_vector,
734 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
735 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
736 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
737 	},
738 	{
739 		.test_descr = "CMAC Digest Verify 16B",
740 		.test_data = &cmac_test_vector,
741 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
742 		.pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB |
743 			BLOCKCIPHER_TEST_TARGET_PMD_QAT
744 	}
745 };
746 
747 #endif /* TEST_CRYPTODEV_HASH_TEST_VECTORS_H_ */
748