From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CD683A055C for ; Fri, 3 Jun 2022 13:18:43 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C566C40694; Fri, 3 Jun 2022 13:18:43 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 0CE0840694 for ; Fri, 3 Jun 2022 13:18:41 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 2533qI4E032524 for ; Fri, 3 Jun 2022 04:18:41 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=qMH+oQ0/RMbFPN9xEu9LV21mJo1f/5q2D+z/rA+HPSk=; b=FkNiiRTuM7AosLrWvzIyM9SimewuAoLvJa4mQ4Yr6Ya2PaTpw0IZg2Ve1rPpx1JMB4Re SSQUA1g/l08txNSQLL3itlAViFliqEN91pduVwOUupj9YT4WVLQvceZ7KsxeyMnePvH8 b78xHmWL3JotowsLEak5gx0fhBmG8BgHVy68ojyYqAP/wZ7wo+wKxNRqYYYoCr7klaMY iy3BSDlA4/0JYmPGWHiFHYJzY4Dohtr4ZroOArovBEuefiwmZOLXUKNhAFU5r7LiI8ST P3Zks0CrzMnTT3tDGB1FIY/lPBc66MDwhcYp/LQjDWxxIk05Z+0VqBGs54I+r3iMqgDV pQ== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3geu3ed2q0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Fri, 03 Jun 2022 04:18:41 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Fri, 3 Jun 2022 04:18:39 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 3 Jun 2022 04:18:39 -0700 Received: from hyd1349.t110.caveonetworks.com.com (unknown [10.29.45.13]) by maili.marvell.com (Postfix) with ESMTP id 030943F7097; Fri, 3 Jun 2022 04:18:36 -0700 (PDT) From: Ankur Dwivedi To: CC: , , , , Ankur Dwivedi Subject: [PATCH 2/2] crypto/cnxk: swap zuc-256 iv Date: Fri, 3 Jun 2022 16:48:23 +0530 Message-ID: <20220603111823.311-3-adwivedi@marvell.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20220603111823.311-1-adwivedi@marvell.com> References: <20220603111823.311-1-adwivedi@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: Z8PSXOOp9s7BrTQfSbTwwbgnMnl4BH82 X-Proofpoint-ORIG-GUID: Z8PSXOOp9s7BrTQfSbTwwbgnMnl4BH82 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.874,Hydra:6.0.517,FMLib:17.11.64.514 definitions=2022-06-03_03,2022-06-03_01,2022-02-23_01 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org The microcode expects the iv to be in reverse of what is provided by dpdk test app. Also the first 8 bytes of reversed iv is compressed to 6 bytes. Signed-off-by: Ankur Dwivedi Reviewed-by: Jerin Jacob Kollanukkaran --- drivers/crypto/cnxk/cnxk_se.h | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/drivers/crypto/cnxk/cnxk_se.h b/drivers/crypto/cnxk/cnxk_se.h index 37237de21a..f6f78a269e 100644 --- a/drivers/crypto/cnxk/cnxk_se.h +++ b/drivers/crypto/cnxk/cnxk_se.h @@ -39,17 +39,16 @@ struct cnxk_se_sess { static inline void cpt_pack_iv(uint8_t *iv_src, uint8_t *iv_dst) { - iv_dst[16] = iv_src[16]; - /* pack the last 8 bytes of IV to 6 bytes. + /* pack the first 8 bytes of IV to 6 bytes. * discard the 2 MSB bits of each byte */ - iv_dst[17] = (((iv_src[17] & 0x3f) << 2) | ((iv_src[18] >> 4) & 0x3)); - iv_dst[18] = (((iv_src[18] & 0xf) << 4) | ((iv_src[19] >> 2) & 0xf)); - iv_dst[19] = (((iv_src[19] & 0x3) << 6) | (iv_src[20] & 0x3f)); + iv_dst[0] = (((iv_src[0] & 0x3f) << 2) | ((iv_src[1] >> 4) & 0x3)); + iv_dst[1] = (((iv_src[1] & 0xf) << 4) | ((iv_src[2] >> 2) & 0xf)); + iv_dst[2] = (((iv_src[2] & 0x3) << 6) | (iv_src[3] & 0x3f)); - iv_dst[20] = (((iv_src[21] & 0x3f) << 2) | ((iv_src[22] >> 4) & 0x3)); - iv_dst[21] = (((iv_src[22] & 0xf) << 4) | ((iv_src[23] >> 2) & 0xf)); - iv_dst[22] = (((iv_src[23] & 0x3) << 6) | (iv_src[24] & 0x3f)); + iv_dst[3] = (((iv_src[4] & 0x3f) << 2) | ((iv_src[5] >> 4) & 0x3)); + iv_dst[4] = (((iv_src[5] & 0xf) << 4) | ((iv_src[6] >> 2) & 0xf)); + iv_dst[5] = (((iv_src[6] & 0x3) << 6) | (iv_src[7] & 0x3f)); } static inline void @@ -71,10 +70,11 @@ pdcp_iv_copy(uint8_t *iv_d, uint8_t *iv_s, const uint8_t pdcp_alg_type, iv_temp[j] = iv_s_temp[3 - j]; memcpy(iv_d, iv_temp, 16); } else { - /* ZUC doesn't need a swap */ - memcpy(iv_d, iv_s, 16); - if (pack_iv) + if (pack_iv) { cpt_pack_iv(iv_s, iv_d); + memcpy(iv_d + 6, iv_s + 8, 17); + } else + memcpy(iv_d, iv_s, 16); } } @@ -1020,6 +1020,7 @@ cpt_zuc_snow3g_prep(uint32_t req_flags, uint64_t d_offs, uint64_t d_lens, iv_len = params->auth_iv_len; if (iv_len == 25) { + roc_se_zuc_bytes_swap(iv_s, iv_len); iv_len -= 2; pack_iv = 1; } @@ -1049,6 +1050,7 @@ cpt_zuc_snow3g_prep(uint32_t req_flags, uint64_t d_offs, uint64_t d_lens, iv_len = params->cipher_iv_len; if (iv_len == 25) { + roc_se_zuc_bytes_swap(iv_s, iv_len); iv_len -= 2; pack_iv = 1; } -- 2.28.0