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 null_auth_test_vector = { 362 .auth_algo = RTE_CRYPTO_AUTH_NULL, 363 .ciphertext = { /* arbitrary data - shouldn't be used */ 364 .data = plaintext_hash, 365 .len = 512 366 }, 367 .auth_key = { /* arbitrary data - shouldn't be used */ 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 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 377 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 378 0x00, 0x00, 0x00, 0x00 379 }, 380 .len = 20, 381 .truncated_len = 12 382 } 383 }; 384 385 static const struct blockcipher_test_data 386 cmac_test_vector_12 = { 387 .auth_algo = RTE_CRYPTO_AUTH_AES_CMAC, 388 .ciphertext = { 389 .data = plaintext_hash, 390 .len = 512 391 }, 392 .auth_key = { 393 .data = { 394 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 395 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C 396 }, 397 .len = 16 398 }, 399 .digest = { 400 .data = { 401 0x4C, 0x77, 0x87, 0xA0, 0x78, 0x8E, 0xEA, 0x96, 402 0xC1, 0xEB, 0x1E, 0x4E, 0x95, 0x8F, 0xED, 0x27 403 }, 404 .len = 12, 405 .truncated_len = 12 406 } 407 }; 408 409 static const struct blockcipher_test_case hash_test_cases[] = { 410 { 411 .test_descr = "MD5 Digest", 412 .test_data = &md5_test_vector, 413 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 414 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 415 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 416 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 417 }, 418 { 419 .test_descr = "MD5 Digest Verify", 420 .test_data = &md5_test_vector, 421 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 422 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 423 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 424 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 425 }, 426 { 427 .test_descr = "HMAC-MD5 Digest", 428 .test_data = &hmac_md5_test_vector, 429 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 430 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 431 BLOCKCIPHER_TEST_TARGET_PMD_MB | 432 BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER | 433 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 434 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 435 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 436 BLOCKCIPHER_TEST_TARGET_PMD_QAT | 437 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 438 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 439 }, 440 { 441 .test_descr = "HMAC-MD5 Digest Verify", 442 .test_data = &hmac_md5_test_vector, 443 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 444 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 445 BLOCKCIPHER_TEST_TARGET_PMD_MB | 446 BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER | 447 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 448 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 449 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 450 BLOCKCIPHER_TEST_TARGET_PMD_QAT | 451 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 452 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 453 }, 454 { 455 .test_descr = "SHA1 Digest", 456 .test_data = &sha1_test_vector, 457 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 458 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 459 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 460 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 461 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0) 462 BLOCKCIPHER_TEST_TARGET_PMD_MB | 463 #endif 464 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 465 }, 466 { 467 .test_descr = "SHA1 Digest Verify", 468 .test_data = &sha1_test_vector, 469 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 470 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 471 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 472 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 473 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0) 474 BLOCKCIPHER_TEST_TARGET_PMD_MB | 475 #endif 476 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 477 }, 478 { 479 .test_descr = "HMAC-SHA1 Digest", 480 .test_data = &hmac_sha1_test_vector, 481 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 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 Scatter Gather", 495 .test_data = &hmac_sha1_test_vector, 496 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 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 = "HMAC-SHA1 Digest Verify", 505 .test_data = &hmac_sha1_test_vector, 506 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 507 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 508 BLOCKCIPHER_TEST_TARGET_PMD_MB | 509 BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER | 510 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 511 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 512 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 513 BLOCKCIPHER_TEST_TARGET_PMD_QAT | 514 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 515 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 516 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 517 }, 518 { 519 .test_descr = "HMAC-SHA1 Digest Verify Scatter Gather", 520 .test_data = &hmac_sha1_test_vector, 521 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 522 .feature_mask = BLOCKCIPHER_TEST_FEATURE_SG, 523 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 524 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 525 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 526 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 527 }, 528 { 529 .test_descr = "SHA224 Digest", 530 .test_data = &sha224_test_vector, 531 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 532 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 533 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 534 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 535 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0) 536 BLOCKCIPHER_TEST_TARGET_PMD_MB | 537 #endif 538 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 539 }, 540 { 541 .test_descr = "SHA224 Digest Verify", 542 .test_data = &sha224_test_vector, 543 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 544 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 545 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 546 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 547 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0) 548 BLOCKCIPHER_TEST_TARGET_PMD_MB | 549 #endif 550 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 551 }, 552 { 553 .test_descr = "HMAC-SHA224 Digest", 554 .test_data = &hmac_sha224_test_vector, 555 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 556 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 557 BLOCKCIPHER_TEST_TARGET_PMD_MB | 558 BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER | 559 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 560 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 561 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 562 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 563 BLOCKCIPHER_TEST_TARGET_PMD_QAT | 564 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 565 }, 566 { 567 .test_descr = "HMAC-SHA224 Digest Verify", 568 .test_data = &hmac_sha224_test_vector, 569 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 570 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 571 BLOCKCIPHER_TEST_TARGET_PMD_MB | 572 BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER | 573 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 574 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 575 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 576 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 577 BLOCKCIPHER_TEST_TARGET_PMD_QAT | 578 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 579 }, 580 { 581 .test_descr = "SHA256 Digest", 582 .test_data = &sha256_test_vector, 583 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 584 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 585 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 586 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 587 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0) 588 BLOCKCIPHER_TEST_TARGET_PMD_MB | 589 #endif 590 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 591 }, 592 { 593 .test_descr = "SHA256 Digest Verify", 594 .test_data = &sha256_test_vector, 595 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 596 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 597 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 598 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 599 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0) 600 BLOCKCIPHER_TEST_TARGET_PMD_MB | 601 #endif 602 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 603 }, 604 { 605 .test_descr = "HMAC-SHA256 Digest", 606 .test_data = &hmac_sha256_test_vector, 607 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 608 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 609 BLOCKCIPHER_TEST_TARGET_PMD_MB | 610 BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER | 611 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 612 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 613 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 614 BLOCKCIPHER_TEST_TARGET_PMD_QAT | 615 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 616 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 617 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 618 }, 619 { 620 .test_descr = "HMAC-SHA256 Digest Verify", 621 .test_data = &hmac_sha256_test_vector, 622 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 623 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 624 BLOCKCIPHER_TEST_TARGET_PMD_MB | 625 BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER | 626 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 627 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 628 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 629 BLOCKCIPHER_TEST_TARGET_PMD_QAT | 630 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 631 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 632 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 633 }, 634 { 635 .test_descr = "SHA384 Digest", 636 .test_data = &sha384_test_vector, 637 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 638 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 639 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 640 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 641 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0) 642 BLOCKCIPHER_TEST_TARGET_PMD_MB | 643 #endif 644 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 645 }, 646 { 647 .test_descr = "SHA384 Digest Verify", 648 .test_data = &sha384_test_vector, 649 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 650 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 651 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 652 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 653 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0) 654 BLOCKCIPHER_TEST_TARGET_PMD_MB | 655 #endif 656 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 657 }, 658 { 659 .test_descr = "HMAC-SHA384 Digest", 660 .test_data = &hmac_sha384_test_vector, 661 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 662 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 663 BLOCKCIPHER_TEST_TARGET_PMD_MB | 664 BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER | 665 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 666 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 667 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 668 BLOCKCIPHER_TEST_TARGET_PMD_QAT | 669 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 670 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 671 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 672 }, 673 { 674 .test_descr = "HMAC-SHA384 Digest Verify", 675 .test_data = &hmac_sha384_test_vector, 676 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 677 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 678 BLOCKCIPHER_TEST_TARGET_PMD_MB | 679 BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER | 680 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 681 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 682 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 683 BLOCKCIPHER_TEST_TARGET_PMD_QAT | 684 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 685 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 686 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 687 }, 688 { 689 .test_descr = "SHA512 Digest", 690 .test_data = &sha512_test_vector, 691 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 692 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 693 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 694 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 695 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0) 696 BLOCKCIPHER_TEST_TARGET_PMD_MB | 697 #endif 698 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 699 }, 700 { 701 .test_descr = "SHA512 Digest Verify", 702 .test_data = &sha512_test_vector, 703 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 704 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 705 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 706 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 707 #if IMB_VERSION_NUM >= IMB_VERSION(0, 52, 0) 708 BLOCKCIPHER_TEST_TARGET_PMD_MB | 709 #endif 710 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 711 }, 712 { 713 .test_descr = "HMAC-SHA512 Digest", 714 .test_data = &hmac_sha512_test_vector, 715 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 716 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 717 BLOCKCIPHER_TEST_TARGET_PMD_MB | 718 BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER | 719 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 720 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 721 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 722 BLOCKCIPHER_TEST_TARGET_PMD_QAT | 723 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 724 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 725 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 726 }, 727 { 728 .test_descr = "HMAC-SHA512 Digest Verify", 729 .test_data = &hmac_sha512_test_vector, 730 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 731 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_OPENSSL | 732 BLOCKCIPHER_TEST_TARGET_PMD_MB | 733 BLOCKCIPHER_TEST_TARGET_PMD_SCHEDULER | 734 BLOCKCIPHER_TEST_TARGET_PMD_DPAA2_SEC | 735 BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC | 736 BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR | 737 BLOCKCIPHER_TEST_TARGET_PMD_QAT | 738 BLOCKCIPHER_TEST_TARGET_PMD_CCP | 739 BLOCKCIPHER_TEST_TARGET_PMD_MVSAM | 740 BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX 741 }, 742 { 743 .test_descr = "CMAC Digest 12B", 744 .test_data = &cmac_test_vector_12, 745 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 746 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB | 747 BLOCKCIPHER_TEST_TARGET_PMD_QAT 748 }, 749 { 750 .test_descr = "CMAC Digest Verify 12B", 751 .test_data = &cmac_test_vector_12, 752 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 753 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB | 754 BLOCKCIPHER_TEST_TARGET_PMD_QAT 755 }, 756 { 757 .test_descr = "CMAC Digest 16B", 758 .test_data = &cmac_test_vector, 759 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 760 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB | 761 BLOCKCIPHER_TEST_TARGET_PMD_QAT 762 }, 763 { 764 .test_descr = "CMAC Digest Verify 16B", 765 .test_data = &cmac_test_vector, 766 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 767 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_MB | 768 BLOCKCIPHER_TEST_TARGET_PMD_QAT 769 }, 770 { 771 .test_descr = "NULL algo - auth generate", 772 .test_data = &null_auth_test_vector, 773 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 774 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL | 775 BLOCKCIPHER_TEST_TARGET_PMD_QAT 776 }, 777 { 778 .test_descr = "NULL algo - auth verify", 779 .test_data = &null_auth_test_vector, 780 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 781 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_NULL | 782 BLOCKCIPHER_TEST_TARGET_PMD_QAT 783 }, 784 { 785 .test_descr = "NULL algo - auth generate - OOP", 786 .test_data = &null_auth_test_vector, 787 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_GEN, 788 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 789 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT 790 }, 791 { 792 .test_descr = "NULL algo - auth verify - OOP", 793 .test_data = &null_auth_test_vector, 794 .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY, 795 .feature_mask = BLOCKCIPHER_TEST_FEATURE_OOP, 796 .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_QAT 797 }, 798 799 }; 800 801 #endif /* TEST_CRYPTODEV_HASH_TEST_VECTORS_H_ */ 802