| 1553 | } |
| 1554 | |
| 1555 | static int |
| 1556 | ccp_perform_hmac(struct rte_crypto_op *op, |
| 1557 | struct ccp_queue *cmd_q) |
| 1558 | { |
| 1559 | |
| 1560 | struct ccp_session *session; |
| 1561 | union ccp_function function; |
| 1562 | struct ccp_desc *desc; |
| 1563 | uint32_t tail; |
| 1564 | phys_addr_t src_addr, dest_addr, dest_addr_t; |
| 1565 | struct ccp_passthru pst; |
| 1566 | uint64_t auth_msg_bits; |
| 1567 | void *append_ptr; |
| 1568 | uint8_t *addr; |
| 1569 | |
| 1570 | session = CRYPTODEV_GET_SYM_SESS_PRIV(op->sym->session); |
| 1571 | addr = session->auth.pre_compute; |
| 1572 | |
| 1573 | src_addr = rte_pktmbuf_iova_offset(op->sym->m_src, |
| 1574 | op->sym->auth.data.offset); |
| 1575 | append_ptr = (void *)rte_pktmbuf_append(op->sym->m_src, |
| 1576 | session->auth.ctx_len); |
| 1577 | dest_addr_t = dest_addr = (phys_addr_t)rte_mem_virt2iova(append_ptr); |
| 1578 | pst.src_addr = (phys_addr_t)rte_mem_virt2iova((void *)addr); |
| 1579 | |
| 1580 | /** Load PHash1 to LSB*/ |
| 1581 | pst.dest_addr = (phys_addr_t)(cmd_q->sb_sha * CCP_SB_BYTES); |
| 1582 | pst.len = session->auth.ctx_len; |
| 1583 | pst.dir = 1; |
| 1584 | pst.bit_mod = CCP_PASSTHRU_BITWISE_NOOP; |
| 1585 | pst.byte_swap = CCP_PASSTHRU_BYTESWAP_NOOP; |
| 1586 | ccp_perform_passthru(&pst, cmd_q); |
| 1587 | |
| 1588 | /**sha engine command descriptor for IntermediateHash*/ |
| 1589 | |
| 1590 | desc = &cmd_q->qbase_desc[cmd_q->qidx]; |
| 1591 | memset(desc, 0, Q_DESC_SIZE); |
| 1592 | |
| 1593 | CCP_CMD_ENGINE(desc) = CCP_ENGINE_SHA; |
| 1594 | |
| 1595 | CCP_CMD_SOC(desc) = 0; |
| 1596 | CCP_CMD_IOC(desc) = 0; |
| 1597 | CCP_CMD_INIT(desc) = 1; |
| 1598 | CCP_CMD_EOM(desc) = 1; |
| 1599 | CCP_CMD_PROT(desc) = 0; |
| 1600 | |
| 1601 | function.raw = 0; |
| 1602 | CCP_SHA_TYPE(&function) = session->auth.ut.sha_type; |
| 1603 | CCP_CMD_FUNCTION(desc) = function.raw; |
| 1604 | |
| 1605 | CCP_CMD_LEN(desc) = op->sym->auth.data.length; |
| 1606 | auth_msg_bits = (op->sym->auth.data.length + |
| 1607 | session->auth.block_size) * 8; |
| 1608 | |
| 1609 | CCP_CMD_SRC_LO(desc) = ((uint32_t)src_addr); |
| 1610 | CCP_CMD_SRC_HI(desc) = high32_value(src_addr); |
| 1611 | CCP_CMD_SRC_MEM(desc) = CCP_MEMTYPE_SYSTEM; |
| 1612 |
no test coverage detected