MCPcopy Create free account
hub / github.com/F-Stack/f-stack / test_snow3g_authentication_verify

Function test_snow3g_authentication_verify

dpdk/app/test/test_cryptodev.c:3286–3377  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3284}
3285
3286static int
3287test_snow3g_authentication_verify(const struct snow3g_hash_test_data *tdata)
3288{
3289 struct crypto_testsuite_params *ts_params = &testsuite_params;
3290 struct crypto_unittest_params *ut_params = &unittest_params;
3291
3292 int retval;
3293 unsigned plaintext_pad_len;
3294 unsigned plaintext_len;
3295 uint8_t *plaintext;
3296 struct rte_cryptodev_info dev_info;
3297
3298 rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
3299 uint64_t feat_flags = dev_info.feature_flags;
3300
3301 if (!(feat_flags & RTE_CRYPTODEV_FF_NON_BYTE_ALIGNED_DATA) &&
3302 ((tdata->validAuthLenInBits.len % 8) != 0)) {
3303 printf("Device doesn't support NON-Byte Aligned Data.\n");
3304 return TEST_SKIPPED;
3305 }
3306
3307 if ((global_api_test_type == CRYPTODEV_RAW_API_TEST) &&
3308 (!(feat_flags & RTE_CRYPTODEV_FF_SYM_RAW_DP))) {
3309 printf("Device doesn't support RAW data-path APIs.\n");
3310 return TEST_SKIPPED;
3311 }
3312
3313 if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
3314 return TEST_SKIPPED;
3315
3316 /* Verify the capabilities */
3317 struct rte_cryptodev_sym_capability_idx cap_idx;
3318 cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH;
3319 cap_idx.algo.auth = RTE_CRYPTO_AUTH_SNOW3G_UIA2;
3320 if (rte_cryptodev_sym_capability_get(ts_params->valid_devs[0],
3321 &cap_idx) == NULL)
3322 return TEST_SKIPPED;
3323
3324 /* Create SNOW 3G session */
3325 retval = create_wireless_algo_hash_session(ts_params->valid_devs[0],
3326 tdata->key.data, tdata->key.len,
3327 tdata->auth_iv.len, tdata->digest.len,
3328 RTE_CRYPTO_AUTH_OP_VERIFY,
3329 RTE_CRYPTO_AUTH_SNOW3G_UIA2);
3330 if (retval < 0)
3331 return retval;
3332 /* alloc mbuf and set payload */
3333 ut_params->ibuf = rte_pktmbuf_alloc(ts_params->mbuf_pool);
3334
3335 memset(rte_pktmbuf_mtod(ut_params->ibuf, uint8_t *), 0,
3336 rte_pktmbuf_tailroom(ut_params->ibuf));
3337
3338 plaintext_len = ceil_byte_length(tdata->plaintext.len);
3339 /* Append data which is padded to a multiple of */
3340 /* the algorithms block size */
3341 plaintext_pad_len = RTE_ALIGN_CEIL(plaintext_len, 16);
3342 plaintext = (uint8_t *)rte_pktmbuf_append(ut_params->ibuf,
3343 plaintext_pad_len);

Calls 13

rte_cryptodev_info_getFunction · 0.85
rte_pktmbuf_allocFunction · 0.85
memsetFunction · 0.85
rte_pktmbuf_tailroomFunction · 0.85
ceil_byte_lengthFunction · 0.85
rte_pktmbuf_appendFunction · 0.85
process_sym_raw_dp_opFunction · 0.85
process_crypto_requestFunction · 0.70
printfFunction · 0.50

Tested by

no test coverage detected