14418919fSjohnjiang /* SPDX-License-Identifier: BSD-3-Clause
24418919fSjohnjiang  * Copyright(c) 2016-2017 Intel Corporation
34418919fSjohnjiang  */
44418919fSjohnjiang 
54418919fSjohnjiang #ifndef TEST_CRYPTODEV_HASH_TEST_VECTORS_H_
64418919fSjohnjiang #define TEST_CRYPTODEV_HASH_TEST_VECTORS_H_
74418919fSjohnjiang 
8*2d9fd380Sjfb8856606 #ifdef RTE_CRYPTO_AESNI_MB
94418919fSjohnjiang #include <intel-ipsec-mb.h>
104418919fSjohnjiang #endif
114418919fSjohnjiang 
124418919fSjohnjiang static const uint8_t plaintext_hash[] = {
134418919fSjohnjiang 	"What a lousy earth! He wondered how many people "
144418919fSjohnjiang 	"were destitute that same night even in his own "
154418919fSjohnjiang 	"prosperous country, how many homes were "
164418919fSjohnjiang 	"shanties, how many husbands were drunk and "
174418919fSjohnjiang 	"wives socked, and how many children were "
184418919fSjohnjiang 	"bullied, abused, or abandoned. How many "
194418919fSjohnjiang 	"families hungered for food they could not "
204418919fSjohnjiang 	"afford to buy? How many hearts were broken? How "
214418919fSjohnjiang 	"many suicides would take place that same night, "
224418919fSjohnjiang 	"how many people would go insane? How many "
234418919fSjohnjiang 	"cockroaches and landlords would triumph? How "
244418919fSjohnjiang 	"many winners were losers, successes failures, "
254418919fSjohnjiang 	"and rich men poor men? How many wise guys were "
264418919fSjohnjiang 	"stupid? How many happy endings were unhappy "
274418919fSjohnjiang 	"endings? How many honest men were liars, brave "
284418919fSjohnjiang 	"men cowards, loyal men traitors, how many "
294418919fSjohnjiang 	"sainted men were corrupt, how many people in "
304418919fSjohnjiang 	"positions of trust had sold their souls to "
314418919fSjohnjiang 	"bodyguards, how many had never had souls? How "
324418919fSjohnjiang 	"many straight-and-narrow paths were crooked "
334418919fSjohnjiang 	"paths? How many best families were worst "
344418919fSjohnjiang 	"families and how many good people were bad "
354418919fSjohnjiang 	"people? When you added them all up and then "
364418919fSjohnjiang 	"subtracted, you might be left with only the "
374418919fSjohnjiang 	"children, and perhaps with Albert Einstein and "
384418919fSjohnjiang 	"an old violinist or sculptor somewhere."
394418919fSjohnjiang };
404418919fSjohnjiang 
414418919fSjohnjiang static const struct blockcipher_test_data
424418919fSjohnjiang md5_test_vector = {
434418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_MD5,
444418919fSjohnjiang 	.ciphertext = {
454418919fSjohnjiang 		.data = plaintext_hash,
464418919fSjohnjiang 		.len = 512
474418919fSjohnjiang 	},
484418919fSjohnjiang 	.digest = {
494418919fSjohnjiang 		.data = {
504418919fSjohnjiang 			0xB3, 0xE6, 0xBB, 0x50, 0x41, 0x35, 0x3C, 0x6B,
514418919fSjohnjiang 			0x7A, 0xFF, 0xD2, 0x64, 0xAF, 0xD5, 0x1C, 0xB2
524418919fSjohnjiang 		},
534418919fSjohnjiang 		.len = 16
544418919fSjohnjiang 	}
554418919fSjohnjiang };
564418919fSjohnjiang 
574418919fSjohnjiang static const struct blockcipher_test_data
584418919fSjohnjiang hmac_md5_test_vector = {
594418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_MD5_HMAC,
604418919fSjohnjiang 	.ciphertext = {
614418919fSjohnjiang 		.data = plaintext_hash,
624418919fSjohnjiang 		.len = 512
634418919fSjohnjiang 	},
644418919fSjohnjiang 	.auth_key = {
654418919fSjohnjiang 		.data = {
664418919fSjohnjiang 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
674418919fSjohnjiang 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD
684418919fSjohnjiang 		},
694418919fSjohnjiang 		.len = 16
704418919fSjohnjiang 	},
714418919fSjohnjiang 	.digest = {
724418919fSjohnjiang 		.data = {
734418919fSjohnjiang 			0x50, 0xE8, 0xDE, 0xC5, 0xC1, 0x76, 0xAC, 0xAE,
744418919fSjohnjiang 			0x15, 0x4A, 0xF1, 0x7F, 0x7E, 0x04, 0x42, 0x9B
754418919fSjohnjiang 		},
764418919fSjohnjiang 		.len = 16,
774418919fSjohnjiang 		.truncated_len = 12
784418919fSjohnjiang 	}
794418919fSjohnjiang };
804418919fSjohnjiang 
814418919fSjohnjiang static const struct blockcipher_test_data
824418919fSjohnjiang sha1_test_vector = {
834418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_SHA1,
844418919fSjohnjiang 	.ciphertext = {
854418919fSjohnjiang 		.data = plaintext_hash,
864418919fSjohnjiang 		.len = 512
874418919fSjohnjiang 	},
884418919fSjohnjiang 	.digest = {
894418919fSjohnjiang 		.data = {
904418919fSjohnjiang 			0xA2, 0x8D, 0x40, 0x78, 0xDD, 0x9F, 0xBB, 0xD5,
914418919fSjohnjiang 			0x35, 0x62, 0xFB, 0xFA, 0x93, 0xFD, 0x7D, 0x70,
924418919fSjohnjiang 			0xA6, 0x7D, 0x45, 0xCA
934418919fSjohnjiang 		},
944418919fSjohnjiang 		.len = 20,
954418919fSjohnjiang 		.truncated_len = 20
964418919fSjohnjiang 	}
974418919fSjohnjiang };
984418919fSjohnjiang 
994418919fSjohnjiang static const struct blockcipher_test_data
1004418919fSjohnjiang hmac_sha1_test_vector = {
1014418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
1024418919fSjohnjiang 	.ciphertext = {
1034418919fSjohnjiang 		.data = plaintext_hash,
1044418919fSjohnjiang 		.len = 512
1054418919fSjohnjiang 	},
1064418919fSjohnjiang 	.auth_key = {
1074418919fSjohnjiang 		.data = {
1084418919fSjohnjiang 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1094418919fSjohnjiang 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1104418919fSjohnjiang 			0xDE, 0xF4, 0xDE, 0xAD
1114418919fSjohnjiang 		},
1124418919fSjohnjiang 		.len = 20
1134418919fSjohnjiang 	},
1144418919fSjohnjiang 	.digest = {
1154418919fSjohnjiang 		.data = {
1164418919fSjohnjiang 			0xC4, 0xB7, 0x0E, 0x6B, 0xDE, 0xD1, 0xE7, 0x77,
1174418919fSjohnjiang 			0x7E, 0x2E, 0x8F, 0xFC, 0x48, 0x39, 0x46, 0x17,
1184418919fSjohnjiang 			0x3F, 0x91, 0x64, 0x59
1194418919fSjohnjiang 		},
1204418919fSjohnjiang 		.len = 20,
1214418919fSjohnjiang 		.truncated_len = 12
1224418919fSjohnjiang 	}
1234418919fSjohnjiang };
1244418919fSjohnjiang 
1254418919fSjohnjiang static const struct blockcipher_test_data
1264418919fSjohnjiang sha224_test_vector = {
1274418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_SHA224,
1284418919fSjohnjiang 	.ciphertext = {
1294418919fSjohnjiang 		.data = plaintext_hash,
1304418919fSjohnjiang 		.len = 512
1314418919fSjohnjiang 	},
1324418919fSjohnjiang 	.digest = {
1334418919fSjohnjiang 		.data = {
1344418919fSjohnjiang 			0x91, 0xE7, 0xCD, 0x75, 0x14, 0x9C, 0xA9, 0xE9,
1354418919fSjohnjiang 			0x2E, 0x46, 0x12, 0x20, 0x22, 0xF9, 0x68, 0x28,
1364418919fSjohnjiang 			0x39, 0x26, 0xDF, 0xB5, 0x78, 0x62, 0xB2, 0x6E,
1374418919fSjohnjiang 			0x5E, 0x8F, 0x25, 0x84
1384418919fSjohnjiang 		},
1394418919fSjohnjiang 		.len = 28,
1404418919fSjohnjiang 		.truncated_len = 28
1414418919fSjohnjiang 	}
1424418919fSjohnjiang };
1434418919fSjohnjiang 
1444418919fSjohnjiang static const struct blockcipher_test_data
1454418919fSjohnjiang hmac_sha224_test_vector = {
1464418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
1474418919fSjohnjiang 	.ciphertext = {
1484418919fSjohnjiang 		.data = plaintext_hash,
1494418919fSjohnjiang 		.len = 512
1504418919fSjohnjiang 	},
1514418919fSjohnjiang 	.auth_key = {
1524418919fSjohnjiang 		.data = {
1534418919fSjohnjiang 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
1544418919fSjohnjiang 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
1554418919fSjohnjiang 			0xDE, 0xF4, 0xDE, 0xAD, 0x26, 0xEB, 0xAB, 0x92,
1564418919fSjohnjiang 			0xFB, 0xBF, 0xB0, 0x8C
1574418919fSjohnjiang 		},
1584418919fSjohnjiang 		.len = 28
1594418919fSjohnjiang 	},
1604418919fSjohnjiang 	.digest = {
1614418919fSjohnjiang 		.data = {
1624418919fSjohnjiang 			0x70, 0x0F, 0x04, 0x4D, 0x22, 0x02, 0x7D, 0x31,
1634418919fSjohnjiang 			0x36, 0xDA, 0x77, 0x19, 0xB9, 0x66, 0x37, 0x7B,
1644418919fSjohnjiang 			0xF1, 0x8A, 0x63, 0xBB, 0x5D, 0x1D, 0xE3, 0x9F,
1654418919fSjohnjiang 			0x92, 0xF6, 0xAA, 0x19
1664418919fSjohnjiang 		},
1674418919fSjohnjiang 		.len = 28,
1684418919fSjohnjiang 		.truncated_len = 14
1694418919fSjohnjiang 	}
1704418919fSjohnjiang };
1714418919fSjohnjiang 
1724418919fSjohnjiang static const struct blockcipher_test_data
1734418919fSjohnjiang sha256_test_vector = {
1744418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_SHA256,
1754418919fSjohnjiang 	.ciphertext = {
1764418919fSjohnjiang 		.data = plaintext_hash,
1774418919fSjohnjiang 		.len = 512
1784418919fSjohnjiang 	},
1794418919fSjohnjiang 	.digest = {
1804418919fSjohnjiang 		.data = {
1814418919fSjohnjiang 			0x7F, 0xF1, 0x0C, 0xF5, 0x90, 0x97, 0x19, 0x0F,
1824418919fSjohnjiang 			0x00, 0xE4, 0x83, 0x01, 0xCA, 0x59, 0x00, 0x2E,
1834418919fSjohnjiang 			0x1F, 0xC7, 0x84, 0xEE, 0x76, 0xA6, 0x39, 0x15,
1844418919fSjohnjiang 			0x76, 0x2F, 0x87, 0xF9, 0x01, 0x06, 0xF3, 0xB7
1854418919fSjohnjiang 		},
1864418919fSjohnjiang 		.len = 32,
1874418919fSjohnjiang 		.truncated_len = 32
1884418919fSjohnjiang 	}
1894418919fSjohnjiang };
1904418919fSjohnjiang 
1914418919fSjohnjiang static const struct blockcipher_test_data
1924418919fSjohnjiang hmac_sha256_test_vector = {
1934418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
1944418919fSjohnjiang 	.ciphertext = {
1954418919fSjohnjiang 		.data = plaintext_hash,
1964418919fSjohnjiang 		.len = 512
1974418919fSjohnjiang 	},
1984418919fSjohnjiang 	.auth_key = {
1994418919fSjohnjiang 		.data = {
2004418919fSjohnjiang 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
2014418919fSjohnjiang 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
2024418919fSjohnjiang 			0xDE, 0xF4, 0xDE, 0xAD, 0x26, 0xEB, 0xAB, 0x92,
2034418919fSjohnjiang 			0xFB, 0xBF, 0xB0, 0x8C, 0x29, 0x87, 0x90, 0xAC
2044418919fSjohnjiang 		},
2054418919fSjohnjiang 		.len = 32
2064418919fSjohnjiang 	},
2074418919fSjohnjiang 	.digest = {
2084418919fSjohnjiang 		.data = {
2094418919fSjohnjiang 			0xAF, 0x8F, 0x70, 0x1B, 0x4B, 0xAF, 0x34, 0xCB,
2104418919fSjohnjiang 			0x02, 0x24, 0x48, 0x45, 0x83, 0x52, 0x8F, 0x22,
2114418919fSjohnjiang 			0x06, 0x4D, 0x64, 0x09, 0x0A, 0xCC, 0x02, 0x77,
2124418919fSjohnjiang 			0x71, 0x83, 0x48, 0x71, 0x07, 0x02, 0x25, 0x17
2134418919fSjohnjiang 		},
2144418919fSjohnjiang 		.len = 32,
2154418919fSjohnjiang 		.truncated_len = 16
2164418919fSjohnjiang 	}
2174418919fSjohnjiang };
2184418919fSjohnjiang 
2194418919fSjohnjiang static const struct blockcipher_test_data
2204418919fSjohnjiang sha384_test_vector = {
2214418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_SHA384,
2224418919fSjohnjiang 	.ciphertext = {
2234418919fSjohnjiang 		.data = plaintext_hash,
2244418919fSjohnjiang 		.len = 512
2254418919fSjohnjiang 	},
2264418919fSjohnjiang 	.digest = {
2274418919fSjohnjiang 		.data = {
2284418919fSjohnjiang 			0x1D, 0xE7, 0x3F, 0x55, 0x86, 0xFE, 0x48, 0x9F,
2294418919fSjohnjiang 			0xAC, 0xC6, 0x85, 0x32, 0xFA, 0x8E, 0xA6, 0x77,
2304418919fSjohnjiang 			0x25, 0x84, 0xA5, 0x98, 0x8D, 0x0B, 0x80, 0xF4,
2314418919fSjohnjiang 			0xEB, 0x2C, 0xFB, 0x6C, 0xEA, 0x7B, 0xFD, 0xD5,
2324418919fSjohnjiang 			0xAD, 0x41, 0xAB, 0x15, 0xB0, 0x03, 0x15, 0xEC,
2334418919fSjohnjiang 			0x9E, 0x3D, 0xED, 0xCB, 0x80, 0x7B, 0xF4, 0xB6
2344418919fSjohnjiang 		},
2354418919fSjohnjiang 		.len = 48,
2364418919fSjohnjiang 		.truncated_len = 48
2374418919fSjohnjiang 	}
2384418919fSjohnjiang };
2394418919fSjohnjiang 
2404418919fSjohnjiang static const struct blockcipher_test_data
2414418919fSjohnjiang hmac_sha384_test_vector = {
2424418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
2434418919fSjohnjiang 	.ciphertext = {
2444418919fSjohnjiang 		.data = plaintext_hash,
2454418919fSjohnjiang 		.len = 512
2464418919fSjohnjiang 	},
2474418919fSjohnjiang 	.auth_key = {
2484418919fSjohnjiang 		.data = {
2494418919fSjohnjiang 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
2504418919fSjohnjiang 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
2514418919fSjohnjiang 			0xDE, 0xF4, 0xDE, 0xAD, 0x26, 0xEB, 0xAB, 0x92,
2524418919fSjohnjiang 			0xFB, 0xBF, 0xB0, 0x8C, 0x29, 0x87, 0x90, 0xAC,
2534418919fSjohnjiang 			0x39, 0x8B, 0x5C, 0x49, 0x68, 0x1E, 0x3A, 0x05,
2544418919fSjohnjiang 			0xCC, 0x68, 0x5C, 0x76, 0xCB, 0x3C, 0x71, 0x89
2554418919fSjohnjiang 		},
2564418919fSjohnjiang 		.len = 48
2574418919fSjohnjiang 	},
2584418919fSjohnjiang 	.digest = {
2594418919fSjohnjiang 		.data = {
2604418919fSjohnjiang 			0xE2, 0x83, 0x18, 0x55, 0xB5, 0x8D, 0x94, 0x9B,
2614418919fSjohnjiang 			0x01, 0xB6, 0xE2, 0x57, 0x7A, 0x62, 0xF5, 0xF4,
2624418919fSjohnjiang 			0xAB, 0x39, 0xF3, 0x3C, 0x28, 0xA0, 0x0F, 0xCC,
2634418919fSjohnjiang 			0xEE, 0x1C, 0xF1, 0xF8, 0x69, 0xF1, 0x24, 0x3B,
2644418919fSjohnjiang 			0x10, 0x90, 0x0A, 0xE3, 0xF0, 0x59, 0xDD, 0xC0,
2654418919fSjohnjiang 			0x6F, 0xE6, 0x8C, 0x84, 0xD5, 0x03, 0xF8, 0x9E
2664418919fSjohnjiang 		},
2674418919fSjohnjiang 		.len = 48,
2684418919fSjohnjiang 		.truncated_len = 24
2694418919fSjohnjiang 	}
2704418919fSjohnjiang };
2714418919fSjohnjiang 
2724418919fSjohnjiang static const struct blockcipher_test_data
2734418919fSjohnjiang sha512_test_vector = {
2744418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_SHA512,
2754418919fSjohnjiang 	.ciphertext = {
2764418919fSjohnjiang 		.data = plaintext_hash,
2774418919fSjohnjiang 		.len = 512
2784418919fSjohnjiang 	},
2794418919fSjohnjiang 	.digest = {
2804418919fSjohnjiang 		.data = {
2814418919fSjohnjiang 			0xB9, 0xBA, 0x28, 0x48, 0x3C, 0xC2, 0xD3, 0x65,
2824418919fSjohnjiang 			0x4A, 0xD6, 0x00, 0x1D, 0xCE, 0x61, 0x64, 0x54,
2834418919fSjohnjiang 			0x45, 0x8C, 0x64, 0x0E, 0xED, 0x0E, 0xD8, 0x1C,
2844418919fSjohnjiang 			0x72, 0xCE, 0xD2, 0x44, 0x91, 0xC8, 0xEB, 0xC7,
2854418919fSjohnjiang 			0x99, 0xC5, 0xCA, 0x89, 0x72, 0x64, 0x96, 0x41,
2864418919fSjohnjiang 			0xC8, 0xEA, 0xB2, 0x4E, 0xD1, 0x21, 0x13, 0x49,
2874418919fSjohnjiang 			0x64, 0x4E, 0x15, 0x68, 0x12, 0x67, 0x26, 0x0F,
2884418919fSjohnjiang 			0x2C, 0x3C, 0x83, 0x25, 0x27, 0x86, 0xF0, 0xDB
2894418919fSjohnjiang 		},
2904418919fSjohnjiang 		.len = 64,
2914418919fSjohnjiang 		.truncated_len = 64
2924418919fSjohnjiang 	}
2934418919fSjohnjiang };
2944418919fSjohnjiang 
2954418919fSjohnjiang static const struct blockcipher_test_data
2964418919fSjohnjiang hmac_sha512_test_vector = {
2974418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
2984418919fSjohnjiang 	.ciphertext = {
2994418919fSjohnjiang 		.data = plaintext_hash,
3004418919fSjohnjiang 		.len = 512
3014418919fSjohnjiang 	},
3024418919fSjohnjiang 	.auth_key = {
3034418919fSjohnjiang 		.data = {
3044418919fSjohnjiang 			0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,
3054418919fSjohnjiang 			0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,
3064418919fSjohnjiang 			0xDE, 0xF4, 0xDE, 0xAD, 0x26, 0xEB, 0xAB, 0x92,
3074418919fSjohnjiang 			0xFB, 0xBF, 0xB0, 0x8C, 0x29, 0x87, 0x90, 0xAC,
3084418919fSjohnjiang 			0x39, 0x8B, 0x5C, 0x49, 0x68, 0x1E, 0x3A, 0x05,
3094418919fSjohnjiang 			0xCC, 0x68, 0x5C, 0x76, 0xCB, 0x3C, 0x71, 0x89,
3104418919fSjohnjiang 			0xDE, 0xAA, 0x36, 0x44, 0x98, 0x93, 0x97, 0x1E,
3114418919fSjohnjiang 			0x6D, 0x53, 0x83, 0x87, 0xB3, 0xB7, 0x56, 0x41
3124418919fSjohnjiang 		},
3134418919fSjohnjiang 		.len = 64
3144418919fSjohnjiang 	},
3154418919fSjohnjiang 	.digest = {
3164418919fSjohnjiang 		.data = {
3174418919fSjohnjiang 			0xB8, 0x0B, 0x35, 0x97, 0x3F, 0x24, 0x3F, 0x05,
3184418919fSjohnjiang 			0x2A, 0x7F, 0x2F, 0xD8, 0xD7, 0x56, 0x58, 0xAD,
3194418919fSjohnjiang 			0x6F, 0x8D, 0x1F, 0x4C, 0x30, 0xF9, 0xA8, 0x29,
3204418919fSjohnjiang 			0x7A, 0xE0, 0x8D, 0x88, 0xF5, 0x2E, 0x94, 0xF5,
3214418919fSjohnjiang 			0x06, 0xF7, 0x5D, 0x57, 0x32, 0xA8, 0x49, 0x29,
3224418919fSjohnjiang 			0xEA, 0x6B, 0x6D, 0x95, 0xBD, 0x76, 0xF5, 0x79,
3234418919fSjohnjiang 			0x97, 0x37, 0x0F, 0xBE, 0xC2, 0x45, 0xA0, 0x87,
3244418919fSjohnjiang 			0xAF, 0x24, 0x27, 0x0C, 0x78, 0xBA, 0xBE, 0x20
3254418919fSjohnjiang 		},
3264418919fSjohnjiang 		.len = 64,
3274418919fSjohnjiang 		.truncated_len = 32
3284418919fSjohnjiang 	}
3294418919fSjohnjiang };
3304418919fSjohnjiang 
3314418919fSjohnjiang static const struct blockcipher_test_data
3324418919fSjohnjiang cmac_test_vector = {
3334418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_AES_CMAC,
3344418919fSjohnjiang 	.ciphertext = {
3354418919fSjohnjiang 		.data = plaintext_hash,
3364418919fSjohnjiang 		.len = 512
3374418919fSjohnjiang 	},
3384418919fSjohnjiang 	.auth_key = {
3394418919fSjohnjiang 		.data = {
3404418919fSjohnjiang 			0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
3414418919fSjohnjiang 			0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
3424418919fSjohnjiang 		},
3434418919fSjohnjiang 		.len = 16
3444418919fSjohnjiang 	},
3454418919fSjohnjiang 	.digest = {
3464418919fSjohnjiang 		.data = {
3474418919fSjohnjiang 			0x4C, 0x77, 0x87, 0xA0, 0x78, 0x8E, 0xEA, 0x96,
3484418919fSjohnjiang 			0xC1, 0xEB, 0x1E, 0x4E, 0x95, 0x8F, 0xED, 0x27
3494418919fSjohnjiang 		},
3504418919fSjohnjiang 		.len = 16,
3514418919fSjohnjiang 		.truncated_len = 16
3524418919fSjohnjiang 	}
3534418919fSjohnjiang };
3544418919fSjohnjiang 
3554418919fSjohnjiang static const struct blockcipher_test_data
3564418919fSjohnjiang null_auth_test_vector = {
3574418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_NULL,
3584418919fSjohnjiang 	.ciphertext = {		/* arbitrary data - shouldn't be used */
3594418919fSjohnjiang 		.data = plaintext_hash,
3604418919fSjohnjiang 		.len = 512
3614418919fSjohnjiang 	},
3624418919fSjohnjiang 	.auth_key = {		/* arbitrary data - shouldn't be used */
3634418919fSjohnjiang 		.data = {
3644418919fSjohnjiang 			0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
3654418919fSjohnjiang 			0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
3664418919fSjohnjiang 		},
3674418919fSjohnjiang 		.len = 16
3684418919fSjohnjiang 	},
3694418919fSjohnjiang 	.digest = {
3704418919fSjohnjiang 		.data = {
3714418919fSjohnjiang 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3724418919fSjohnjiang 			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3734418919fSjohnjiang 			0x00, 0x00, 0x00, 0x00
3744418919fSjohnjiang 		},
3754418919fSjohnjiang 		.len = 20,
3764418919fSjohnjiang 		.truncated_len = 12
3774418919fSjohnjiang 	}
3784418919fSjohnjiang };
3794418919fSjohnjiang 
3804418919fSjohnjiang static const struct blockcipher_test_data
3814418919fSjohnjiang cmac_test_vector_12 = {
3824418919fSjohnjiang 	.auth_algo = RTE_CRYPTO_AUTH_AES_CMAC,
3834418919fSjohnjiang 	.ciphertext = {
3844418919fSjohnjiang 		.data = plaintext_hash,
3854418919fSjohnjiang 		.len = 512
3864418919fSjohnjiang 	},
3874418919fSjohnjiang 	.auth_key = {
3884418919fSjohnjiang 		.data = {
3894418919fSjohnjiang 			0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
3904418919fSjohnjiang 			0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
3914418919fSjohnjiang 		},
3924418919fSjohnjiang 		.len = 16
3934418919fSjohnjiang 	},
3944418919fSjohnjiang 	.digest = {
3954418919fSjohnjiang 		.data = {
3964418919fSjohnjiang 			0x4C, 0x77, 0x87, 0xA0, 0x78, 0x8E, 0xEA, 0x96,
3974418919fSjohnjiang 			0xC1, 0xEB, 0x1E, 0x4E, 0x95, 0x8F, 0xED, 0x27
3984418919fSjohnjiang 		},
3994418919fSjohnjiang 		.len = 12,
4004418919fSjohnjiang 		.truncated_len = 12
4014418919fSjohnjiang 	}
4024418919fSjohnjiang };
4034418919fSjohnjiang 
4044418919fSjohnjiang static const struct blockcipher_test_case hash_test_cases[] = {
4054418919fSjohnjiang 	{
4064418919fSjohnjiang 		.test_descr = "MD5 Digest",
4074418919fSjohnjiang 		.test_data = &md5_test_vector,
4084418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
4094418919fSjohnjiang 	},
4104418919fSjohnjiang 	{
4114418919fSjohnjiang 		.test_descr = "MD5 Digest Verify",
4124418919fSjohnjiang 		.test_data = &md5_test_vector,
4134418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
4144418919fSjohnjiang 	},
4154418919fSjohnjiang 	{
4164418919fSjohnjiang 		.test_descr = "HMAC-MD5 Digest",
4174418919fSjohnjiang 		.test_data = &hmac_md5_test_vector,
4184418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
4194418919fSjohnjiang 	},
4204418919fSjohnjiang 	{
4214418919fSjohnjiang 		.test_descr = "HMAC-MD5 Digest Verify",
4224418919fSjohnjiang 		.test_data = &hmac_md5_test_vector,
4234418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
4244418919fSjohnjiang 	},
4254418919fSjohnjiang 	{
4264418919fSjohnjiang 		.test_descr = "SHA1 Digest",
4274418919fSjohnjiang 		.test_data = &sha1_test_vector,
4284418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
4294418919fSjohnjiang 	},
4304418919fSjohnjiang 	{
4314418919fSjohnjiang 		.test_descr = "SHA1 Digest Verify",
4324418919fSjohnjiang 		.test_data = &sha1_test_vector,
4334418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
4344418919fSjohnjiang 	},
4354418919fSjohnjiang 	{
4364418919fSjohnjiang 		.test_descr = "HMAC-SHA1 Digest",
4374418919fSjohnjiang 		.test_data = &hmac_sha1_test_vector,
4384418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
4394418919fSjohnjiang 	},
4404418919fSjohnjiang 	{
4414418919fSjohnjiang 		.test_descr = "HMAC-SHA1 Digest Scatter Gather",
4424418919fSjohnjiang 		.test_data = &hmac_sha1_test_vector,
4434418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
4444418919fSjohnjiang 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
4454418919fSjohnjiang 	},
4464418919fSjohnjiang 	{
4474418919fSjohnjiang 		.test_descr = "HMAC-SHA1 Digest Verify",
4484418919fSjohnjiang 		.test_data = &hmac_sha1_test_vector,
4494418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
4504418919fSjohnjiang 	},
4514418919fSjohnjiang 	{
4524418919fSjohnjiang 		.test_descr = "HMAC-SHA1 Digest Verify Scatter Gather",
4534418919fSjohnjiang 		.test_data = &hmac_sha1_test_vector,
4544418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
4554418919fSjohnjiang 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_SG,
4564418919fSjohnjiang 	},
4574418919fSjohnjiang 	{
4584418919fSjohnjiang 		.test_descr = "SHA224 Digest",
4594418919fSjohnjiang 		.test_data = &sha224_test_vector,
4604418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
4614418919fSjohnjiang 	},
4624418919fSjohnjiang 	{
4634418919fSjohnjiang 		.test_descr = "SHA224 Digest Verify",
4644418919fSjohnjiang 		.test_data = &sha224_test_vector,
4654418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
4664418919fSjohnjiang 	},
4674418919fSjohnjiang 	{
4684418919fSjohnjiang 		.test_descr = "HMAC-SHA224 Digest",
4694418919fSjohnjiang 		.test_data = &hmac_sha224_test_vector,
4704418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
4714418919fSjohnjiang 	},
4724418919fSjohnjiang 	{
4734418919fSjohnjiang 		.test_descr = "HMAC-SHA224 Digest Verify",
4744418919fSjohnjiang 		.test_data = &hmac_sha224_test_vector,
4754418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
4764418919fSjohnjiang 	},
4774418919fSjohnjiang 	{
4784418919fSjohnjiang 		.test_descr = "SHA256 Digest",
4794418919fSjohnjiang 		.test_data = &sha256_test_vector,
4804418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
4814418919fSjohnjiang 	},
4824418919fSjohnjiang 	{
4834418919fSjohnjiang 		.test_descr = "SHA256 Digest Verify",
4844418919fSjohnjiang 		.test_data = &sha256_test_vector,
4854418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
4864418919fSjohnjiang 	},
4874418919fSjohnjiang 	{
4884418919fSjohnjiang 		.test_descr = "HMAC-SHA256 Digest",
4894418919fSjohnjiang 		.test_data = &hmac_sha256_test_vector,
4904418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
4914418919fSjohnjiang 	},
4924418919fSjohnjiang 	{
4934418919fSjohnjiang 		.test_descr = "HMAC-SHA256 Digest Verify",
4944418919fSjohnjiang 		.test_data = &hmac_sha256_test_vector,
4954418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
4964418919fSjohnjiang 	},
4974418919fSjohnjiang 	{
4984418919fSjohnjiang 		.test_descr = "SHA384 Digest",
4994418919fSjohnjiang 		.test_data = &sha384_test_vector,
5004418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
5014418919fSjohnjiang 	},
5024418919fSjohnjiang 	{
5034418919fSjohnjiang 		.test_descr = "SHA384 Digest Verify",
5044418919fSjohnjiang 		.test_data = &sha384_test_vector,
5054418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
5064418919fSjohnjiang 	},
5074418919fSjohnjiang 	{
5084418919fSjohnjiang 		.test_descr = "HMAC-SHA384 Digest",
5094418919fSjohnjiang 		.test_data = &hmac_sha384_test_vector,
5104418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
5114418919fSjohnjiang 	},
5124418919fSjohnjiang 	{
5134418919fSjohnjiang 		.test_descr = "HMAC-SHA384 Digest Verify",
5144418919fSjohnjiang 		.test_data = &hmac_sha384_test_vector,
5154418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
5164418919fSjohnjiang 	},
5174418919fSjohnjiang 	{
5184418919fSjohnjiang 		.test_descr = "SHA512 Digest",
5194418919fSjohnjiang 		.test_data = &sha512_test_vector,
5204418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
5214418919fSjohnjiang 	},
5224418919fSjohnjiang 	{
5234418919fSjohnjiang 		.test_descr = "SHA512 Digest Verify",
5244418919fSjohnjiang 		.test_data = &sha512_test_vector,
5254418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
5264418919fSjohnjiang 	},
5274418919fSjohnjiang 	{
5284418919fSjohnjiang 		.test_descr = "HMAC-SHA512 Digest",
5294418919fSjohnjiang 		.test_data = &hmac_sha512_test_vector,
5304418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
5314418919fSjohnjiang 	},
5324418919fSjohnjiang 	{
5334418919fSjohnjiang 		.test_descr = "HMAC-SHA512 Digest Verify",
5344418919fSjohnjiang 		.test_data = &hmac_sha512_test_vector,
5354418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
5364418919fSjohnjiang 	},
5374418919fSjohnjiang 	{
5384418919fSjohnjiang 		.test_descr = "CMAC Digest 12B",
5394418919fSjohnjiang 		.test_data = &cmac_test_vector_12,
5404418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
5414418919fSjohnjiang 	},
5424418919fSjohnjiang 	{
5434418919fSjohnjiang 		.test_descr = "CMAC Digest Verify 12B",
5444418919fSjohnjiang 		.test_data = &cmac_test_vector_12,
5454418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
5464418919fSjohnjiang 	},
5474418919fSjohnjiang 	{
5484418919fSjohnjiang 		.test_descr = "CMAC Digest 16B",
5494418919fSjohnjiang 		.test_data = &cmac_test_vector,
5504418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
5514418919fSjohnjiang 	},
5524418919fSjohnjiang 	{
5534418919fSjohnjiang 		.test_descr = "CMAC Digest Verify 16B",
5544418919fSjohnjiang 		.test_data = &cmac_test_vector,
5554418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
5564418919fSjohnjiang 	},
5574418919fSjohnjiang 	{
5584418919fSjohnjiang 		.test_descr = "NULL algo - auth generate",
5594418919fSjohnjiang 		.test_data = &null_auth_test_vector,
5604418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
5614418919fSjohnjiang 	},
5624418919fSjohnjiang 	{
5634418919fSjohnjiang 		.test_descr = "NULL algo - auth verify",
5644418919fSjohnjiang 		.test_data = &null_auth_test_vector,
5654418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
5664418919fSjohnjiang 	},
5674418919fSjohnjiang 	{
5684418919fSjohnjiang 		.test_descr = "NULL algo - auth generate - OOP",
5694418919fSjohnjiang 		.test_data = &null_auth_test_vector,
5704418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN,
5714418919fSjohnjiang 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
5724418919fSjohnjiang 	},
5734418919fSjohnjiang 	{
5744418919fSjohnjiang 		.test_descr = "NULL algo - auth verify - OOP",
5754418919fSjohnjiang 		.test_data = &null_auth_test_vector,
5764418919fSjohnjiang 		.op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY,
5774418919fSjohnjiang 		.feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP,
5784418919fSjohnjiang 	},
5794418919fSjohnjiang 
5804418919fSjohnjiang };
5814418919fSjohnjiang 
5824418919fSjohnjiang #endif /* TEST_CRYPTODEV_HASH_TEST_VECTORS_H_ */
583