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