| 12596 | } |
| 12597 | |
| 12598 | static int |
| 12599 | test_authenticated_decryption_sessionless( |
| 12600 | const struct aead_test_data *tdata) |
| 12601 | { |
| 12602 | struct crypto_testsuite_params *ts_params = &testsuite_params; |
| 12603 | struct crypto_unittest_params *ut_params = &unittest_params; |
| 12604 | |
| 12605 | int retval; |
| 12606 | uint8_t *plaintext; |
| 12607 | uint8_t key[tdata->key.len + 1]; |
| 12608 | struct rte_cryptodev_info dev_info; |
| 12609 | |
| 12610 | rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); |
| 12611 | uint64_t feat_flags = dev_info.feature_flags; |
| 12612 | |
| 12613 | if (!(feat_flags & RTE_CRYPTODEV_FF_SYM_SESSIONLESS)) { |
| 12614 | printf("Device doesn't support Sessionless ops.\n"); |
| 12615 | return TEST_SKIPPED; |
| 12616 | } |
| 12617 | |
| 12618 | if ((global_api_test_type == CRYPTODEV_RAW_API_TEST) && |
| 12619 | (!(feat_flags & RTE_CRYPTODEV_FF_SYM_RAW_DP))) { |
| 12620 | printf("Device doesn't support RAW data-path APIs.\n"); |
| 12621 | return TEST_SKIPPED; |
| 12622 | } |
| 12623 | |
| 12624 | /* not supported with CPU crypto */ |
| 12625 | if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO) |
| 12626 | return TEST_SKIPPED; |
| 12627 | |
| 12628 | /* Verify the capabilities */ |
| 12629 | struct rte_cryptodev_sym_capability_idx cap_idx; |
| 12630 | cap_idx.type = RTE_CRYPTO_SYM_XFORM_AEAD; |
| 12631 | cap_idx.algo.aead = tdata->algo; |
| 12632 | if (rte_cryptodev_sym_capability_get(ts_params->valid_devs[0], |
| 12633 | &cap_idx) == NULL) |
| 12634 | return TEST_SKIPPED; |
| 12635 | |
| 12636 | /* alloc mbuf and set payload */ |
| 12637 | ut_params->ibuf = rte_pktmbuf_alloc(ts_params->mbuf_pool); |
| 12638 | |
| 12639 | memset(rte_pktmbuf_mtod(ut_params->ibuf, uint8_t *), 0, |
| 12640 | rte_pktmbuf_tailroom(ut_params->ibuf)); |
| 12641 | |
| 12642 | /* Create AEAD operation */ |
| 12643 | retval = create_aead_operation(RTE_CRYPTO_AEAD_OP_DECRYPT, tdata); |
| 12644 | if (retval < 0) |
| 12645 | return retval; |
| 12646 | |
| 12647 | /* Create AEAD xform */ |
| 12648 | memcpy(key, tdata->key.data, tdata->key.len); |
| 12649 | retval = create_aead_xform(ut_params->op, |
| 12650 | tdata->algo, |
| 12651 | RTE_CRYPTO_AEAD_OP_DECRYPT, |
| 12652 | key, tdata->key.len, |
| 12653 | tdata->aad.len, tdata->auth_tag.len, |
| 12654 | tdata->iv.len); |
| 12655 | if (retval < 0) |
no test coverage detected