| 2554 | } |
| 2555 | |
| 2556 | static inline int |
| 2557 | ccp_crypto_auth(struct rte_crypto_op *op, |
| 2558 | struct ccp_queue *cmd_q, |
| 2559 | struct ccp_batch_info *b_info) |
| 2560 | { |
| 2561 | |
| 2562 | int result = 0; |
| 2563 | struct ccp_session *session; |
| 2564 | |
| 2565 | session = CRYPTODEV_GET_SYM_SESS_PRIV(op->sym->session); |
| 2566 | |
| 2567 | switch (session->auth.algo) { |
| 2568 | case CCP_AUTH_ALGO_SHA1: |
| 2569 | case CCP_AUTH_ALGO_SHA224: |
| 2570 | case CCP_AUTH_ALGO_SHA256: |
| 2571 | case CCP_AUTH_ALGO_SHA384: |
| 2572 | case CCP_AUTH_ALGO_SHA512: |
| 2573 | result = ccp_perform_sha(op, cmd_q); |
| 2574 | b_info->desccnt += 3; |
| 2575 | break; |
| 2576 | case CCP_AUTH_ALGO_MD5_HMAC: |
| 2577 | if (session->auth_opt == 0) |
| 2578 | result = -1; |
| 2579 | break; |
| 2580 | case CCP_AUTH_ALGO_SHA1_HMAC: |
| 2581 | case CCP_AUTH_ALGO_SHA224_HMAC: |
| 2582 | case CCP_AUTH_ALGO_SHA256_HMAC: |
| 2583 | if (session->auth_opt == 0) { |
| 2584 | result = ccp_perform_hmac(op, cmd_q); |
| 2585 | b_info->desccnt += 6; |
| 2586 | } |
| 2587 | break; |
| 2588 | case CCP_AUTH_ALGO_SHA384_HMAC: |
| 2589 | case CCP_AUTH_ALGO_SHA512_HMAC: |
| 2590 | if (session->auth_opt == 0) { |
| 2591 | result = ccp_perform_hmac(op, cmd_q); |
| 2592 | b_info->desccnt += 7; |
| 2593 | } |
| 2594 | break; |
| 2595 | case CCP_AUTH_ALGO_SHA3_224: |
| 2596 | case CCP_AUTH_ALGO_SHA3_256: |
| 2597 | case CCP_AUTH_ALGO_SHA3_384: |
| 2598 | case CCP_AUTH_ALGO_SHA3_512: |
| 2599 | result = ccp_perform_sha3(op, cmd_q); |
| 2600 | b_info->desccnt += 1; |
| 2601 | break; |
| 2602 | case CCP_AUTH_ALGO_SHA3_224_HMAC: |
| 2603 | case CCP_AUTH_ALGO_SHA3_256_HMAC: |
| 2604 | result = ccp_perform_sha3_hmac(op, cmd_q); |
| 2605 | b_info->desccnt += 3; |
| 2606 | break; |
| 2607 | case CCP_AUTH_ALGO_SHA3_384_HMAC: |
| 2608 | case CCP_AUTH_ALGO_SHA3_512_HMAC: |
| 2609 | result = ccp_perform_sha3_hmac(op, cmd_q); |
| 2610 | b_info->desccnt += 4; |
| 2611 | break; |
| 2612 | case CCP_AUTH_ALGO_AES_CMAC: |
| 2613 | result = ccp_perform_aes_cmac(op, cmd_q); |
no test coverage detected