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

Function ccp_perform_hmac

dpdk/drivers/crypto/ccp/ccp_crypto.c:1555–1725  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1553}
1554
1555static int
1556ccp_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

Callers 1

ccp_crypto_authFunction · 0.85

Calls 5

rte_pktmbuf_appendFunction · 0.85
ccp_perform_passthruFunction · 0.85
memsetFunction · 0.85
high32_valueFunction · 0.70
rte_mem_virt2iovaFunction · 0.50

Tested by

no test coverage detected