| 8922 | } |
| 8923 | |
| 8924 | static int |
| 8925 | test_authenticated_encryption(const struct aead_test_data *tdata) |
| 8926 | { |
| 8927 | struct crypto_testsuite_params *ts_params = &testsuite_params; |
| 8928 | struct crypto_unittest_params *ut_params = &unittest_params; |
| 8929 | |
| 8930 | int retval; |
| 8931 | uint8_t *ciphertext, *auth_tag; |
| 8932 | uint16_t plaintext_pad_len; |
| 8933 | uint32_t i; |
| 8934 | struct rte_cryptodev_info dev_info; |
| 8935 | |
| 8936 | rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); |
| 8937 | uint64_t feat_flags = dev_info.feature_flags; |
| 8938 | |
| 8939 | if ((global_api_test_type == CRYPTODEV_RAW_API_TEST) && |
| 8940 | (!(feat_flags & RTE_CRYPTODEV_FF_SYM_RAW_DP))) { |
| 8941 | printf("Device doesn't support RAW data-path APIs.\n"); |
| 8942 | return TEST_SKIPPED; |
| 8943 | } |
| 8944 | |
| 8945 | /* Verify the capabilities */ |
| 8946 | struct rte_cryptodev_sym_capability_idx cap_idx; |
| 8947 | const struct rte_cryptodev_symmetric_capability *capability; |
| 8948 | cap_idx.type = RTE_CRYPTO_SYM_XFORM_AEAD; |
| 8949 | cap_idx.algo.aead = tdata->algo; |
| 8950 | capability = rte_cryptodev_sym_capability_get( |
| 8951 | ts_params->valid_devs[0], &cap_idx); |
| 8952 | if (capability == NULL) |
| 8953 | return TEST_SKIPPED; |
| 8954 | if (rte_cryptodev_sym_capability_check_aead( |
| 8955 | capability, tdata->key.len, tdata->auth_tag.len, |
| 8956 | tdata->aad.len, tdata->iv.len)) |
| 8957 | return TEST_SKIPPED; |
| 8958 | |
| 8959 | /* Create AEAD session */ |
| 8960 | retval = create_aead_session(ts_params->valid_devs[0], |
| 8961 | tdata->algo, |
| 8962 | RTE_CRYPTO_AEAD_OP_ENCRYPT, |
| 8963 | tdata->key.data, tdata->key.len, |
| 8964 | tdata->aad.len, tdata->auth_tag.len, |
| 8965 | tdata->iv.len); |
| 8966 | if (retval != TEST_SUCCESS) |
| 8967 | return retval; |
| 8968 | |
| 8969 | if (tdata->aad.len > MBUF_SIZE) { |
| 8970 | ut_params->ibuf = rte_pktmbuf_alloc(ts_params->large_mbuf_pool); |
| 8971 | /* Populate full size of add data */ |
| 8972 | for (i = 32; i < MAX_AAD_LENGTH; i += 32) |
| 8973 | memcpy(&tdata->aad.data[i], &tdata->aad.data[0], 32); |
| 8974 | } else |
| 8975 | ut_params->ibuf = rte_pktmbuf_alloc(ts_params->mbuf_pool); |
| 8976 | |
| 8977 | /* clear mbuf payload */ |
| 8978 | memset(rte_pktmbuf_mtod(ut_params->ibuf, uint8_t *), 0, |
| 8979 | rte_pktmbuf_tailroom(ut_params->ibuf)); |
| 8980 | |
| 8981 | /* Create AEAD operation */ |
no test coverage detected