| 13105 | } |
| 13106 | |
| 13107 | static int |
| 13108 | test_MD5_HMAC_verify(const struct HMAC_MD5_vector *test_case) |
| 13109 | { |
| 13110 | uint8_t *plaintext; |
| 13111 | int ret; |
| 13112 | |
| 13113 | struct crypto_testsuite_params *ts_params = &testsuite_params; |
| 13114 | struct crypto_unittest_params *ut_params = &unittest_params; |
| 13115 | struct rte_cryptodev_info dev_info; |
| 13116 | |
| 13117 | rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); |
| 13118 | uint64_t feat_flags = dev_info.feature_flags; |
| 13119 | |
| 13120 | if ((global_api_test_type == CRYPTODEV_RAW_API_TEST) && |
| 13121 | (!(feat_flags & RTE_CRYPTODEV_FF_SYM_RAW_DP))) { |
| 13122 | printf("Device doesn't support RAW data-path APIs.\n"); |
| 13123 | return TEST_SKIPPED; |
| 13124 | } |
| 13125 | |
| 13126 | /* Verify the capabilities */ |
| 13127 | struct rte_cryptodev_sym_capability_idx cap_idx; |
| 13128 | cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH; |
| 13129 | cap_idx.algo.auth = RTE_CRYPTO_AUTH_MD5_HMAC; |
| 13130 | if (rte_cryptodev_sym_capability_get(ts_params->valid_devs[0], |
| 13131 | &cap_idx) == NULL) |
| 13132 | return TEST_SKIPPED; |
| 13133 | |
| 13134 | if (MD5_HMAC_create_session(ts_params, ut_params, |
| 13135 | RTE_CRYPTO_AUTH_OP_VERIFY, test_case)) { |
| 13136 | return TEST_FAILED; |
| 13137 | } |
| 13138 | |
| 13139 | /* Generate Crypto op data structure */ |
| 13140 | ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool, |
| 13141 | RTE_CRYPTO_OP_TYPE_SYMMETRIC); |
| 13142 | TEST_ASSERT_NOT_NULL(ut_params->op, |
| 13143 | "Failed to allocate symmetric crypto operation struct"); |
| 13144 | |
| 13145 | if (MD5_HMAC_create_op(ut_params, test_case, &plaintext)) |
| 13146 | return TEST_FAILED; |
| 13147 | |
| 13148 | if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO) |
| 13149 | process_cpu_crypt_auth_op(ts_params->valid_devs[0], |
| 13150 | ut_params->op); |
| 13151 | else if (global_api_test_type == CRYPTODEV_RAW_API_TEST) { |
| 13152 | ret = process_sym_raw_dp_op(ts_params->valid_devs[0], 0, ut_params->op, 0, 1, 0, 0); |
| 13153 | if (ret != TEST_SUCCESS) |
| 13154 | return ret; |
| 13155 | } else |
| 13156 | TEST_ASSERT_NOT_NULL( |
| 13157 | process_crypto_request(ts_params->valid_devs[0], |
| 13158 | ut_params->op), |
| 13159 | "failed to process sym crypto op"); |
| 13160 | |
| 13161 | TEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS, |
| 13162 | "HMAC_MD5 crypto op processing failed"); |
| 13163 | |
| 13164 | return TEST_SUCCESS; |
no test coverage detected