Lines Matching defs:sha
1491 struct ccp_sha_engine *sha = &cmd->u.sha;
1503 switch (sha->type) {
1505 if (sha->ctx_len < SHA1_DIGEST_SIZE)
1510 if (sha->ctx_len < SHA224_DIGEST_SIZE)
1515 if (sha->ctx_len < SHA256_DIGEST_SIZE)
1521 || sha->ctx_len < SHA384_DIGEST_SIZE)
1527 || sha->ctx_len < SHA512_DIGEST_SIZE)
1535 if (!sha->ctx)
1538 if (!sha->final && (sha->src_len & (block_size - 1)))
1544 if (!sha->src_len) {
1549 if (!sha->final)
1552 /* CCP can't do a zero length sha operation so the
1555 if (sha->msg_bits)
1558 /* The CCP cannot perform zero-length sha operations
1560 * final operation. However, a sha operation for a
1564 switch (sha->type) {
1581 scatterwalk_map_and_copy((void *)sha_zero, sha->ctx, 0,
1589 switch (sha->type) {
1641 if (sha->src_len && !sha->src)
1648 op.u.sha.type = sha->type;
1649 op.u.sha.msg_bits = sha->msg_bits;
1660 if (sha->first) {
1661 switch (sha->type) {
1680 ret = ccp_set_dm_area(&ctx, 0, sha->ctx, 0,
1693 if (sha->src) {
1695 ret = ccp_init_data(&src, cmd_q, sha->src, sha->src_len,
1702 if (sha->final && !src.sg_wa.bytes_left)
1705 ret = cmd_q->ccp->vdata->perform->sha(&op);
1715 ret = cmd_q->ccp->vdata->perform->sha(&op);
1732 if (sha->final) {
1734 switch (sha->type) {
1739 sha->ctx, 0,
1745 sha->ctx, LSB_ITEM_SIZE - ooffset,
1748 sha->ctx, 0,
1757 ccp_get_dm_area(&ctx, 0, sha->ctx, 0,
1761 if (sha->final && sha->opad) {
1767 if (sha->opad_len != block_size) {
1779 scatterwalk_map_and_copy(hmac_buf, sha->opad, 0, block_size, 0);
1780 switch (sha->type) {
1806 hmac_cmd.u.sha.type = sha->type;
1807 hmac_cmd.u.sha.ctx = sha->ctx;
1808 hmac_cmd.u.sha.ctx_len = sha->ctx_len;
1809 hmac_cmd.u.sha.src = &sg;
1810 hmac_cmd.u.sha.src_len = block_size + digest_size;
1811 hmac_cmd.u.sha.opad = NULL;
1812 hmac_cmd.u.sha.opad_len = 0;
1813 hmac_cmd.u.sha.first = 1;
1814 hmac_cmd.u.sha.final = 1;
1815 hmac_cmd.u.sha.msg_bits = (block_size + digest_size) << 3;
1825 if (sha->src)