From: Ankur Dwivedi <adwivedi@marvell.com>
To: <stable@dpdk.org>
Cc: <anoobj@marvell.com>, <gakhil@marvell.com>,
<ktejasree@marvell.com>, <jerinj@marvell.com>,
<vvelumuri@marvell.com>, Ankur Dwivedi <adwivedi@marvell.com>
Subject: [PATCH 21.11 2/2] crypto/cnxk: swap zuc-256 iv
Date: Fri, 24 Jun 2022 12:48:09 +0530 [thread overview]
Message-ID: <20220624071809.27393-3-adwivedi@marvell.com> (raw)
In-Reply-To: <20220624071809.27393-1-adwivedi@marvell.com>
[ upstream commit 09ceaa636061c15e9c16a14aaa5caf7378e2c6fa ]
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.
Fixes: 89b78a2e3df9 ("crypto/cnxk: fix IV length for ZUC-256")
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
---
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 99a2894fa6..af86ef18d8 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
prev parent reply other threads:[~2022-06-24 7:19 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-24 7:18 [PATCH 21.11 0/2] fix zuc-256 cipher support Ankur Dwivedi
2022-06-24 7:18 ` [PATCH 21.11 1/2] common/cnxk: swap zuc-256 key Ankur Dwivedi
2022-06-24 13:20 ` Kevin Traynor
2022-06-24 7:18 ` Ankur Dwivedi [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220624071809.27393-3-adwivedi@marvell.com \
--to=adwivedi@marvell.com \
--cc=anoobj@marvell.com \
--cc=gakhil@marvell.com \
--cc=jerinj@marvell.com \
--cc=ktejasree@marvell.com \
--cc=stable@dpdk.org \
--cc=vvelumuri@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).