Acked-by: Tejasree Kondoj <[email protected]>
> -----Original Message-----
> From: Nithinsen Kaithakadan <[email protected]>
> Sent: Friday, October 23, 2026 5:11 PM
> To: Akhil Goyal <[email protected]>
> Cc: Anoob Joseph <[email protected]>; Vidya Sagar Velumuri
> <[email protected]>; Tejasree Kondoj <[email protected]>;
> [email protected]
> Subject: [PATCH] crypto/cnxk: changes to align with zuc256 v2 auth
>
> This patch add changes to align with ZUC 256 V2 authentication microcode
> support.
>
> Signed-off-by: Nithinsen Kaithakadan <[email protected]>
> ---
> drivers/common/cnxk/roc_se.c | 5 +++++
> drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c | 5 ++++-
> drivers/crypto/cnxk/cnxk_cryptodev_ops.c | 2 +-
> 3 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/common/cnxk/roc_se.c b/drivers/common/cnxk/roc_se.c
> index 1cec536169..ce0e7fe84a 100644
> --- a/drivers/common/cnxk/roc_se.c
> +++ b/drivers/common/cnxk/roc_se.c
> @@ -255,6 +255,11 @@ cpt_pdcp_chain_key_type_get(uint16_t key_len)
> static void cpt_zuc_const_update(uint8_t *zuc_const, int key_len, int
> mac_len) {
> + if (key_len == 32 && roc_model_is_cn20k()) {
> + memcpy(zuc_const, zuc_key256_v2, 16);
> + return;
> + }
> +
> if (key_len == 16) {
> memcpy(zuc_const, zuc_key128, 32);
> } else if (key_len == 32) {
> diff --git a/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c
> b/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c
> index 577f080ba7..b941567015 100644
> --- a/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c
> +++ b/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c
> @@ -2091,7 +2091,10 @@ cn10k_20k_crypto_caps_update(struct
> rte_cryptodev_capabilities cnxk_caps[])
> caps->sym.auth.key_size.increment = 16;
> caps->sym.auth.digest_size.max = 16;
> caps->sym.auth.digest_size.increment = 4;
> - caps->sym.auth.iv_size.max = 25;
> + if (roc_model_is_cn20k())
> + caps->sym.auth.iv_size.max = 16;
> + else
> + caps->sym.auth.iv_size.max = 25;
> caps->sym.auth.iv_size.increment = 1;
> }
> }
> diff --git a/drivers/crypto/cnxk/cnxk_cryptodev_ops.c
> b/drivers/crypto/cnxk/cnxk_cryptodev_ops.c
> index a5b8aff146..14a4b0fff9 100644
> --- a/drivers/crypto/cnxk/cnxk_cryptodev_ops.c
> +++ b/drivers/crypto/cnxk/cnxk_cryptodev_ops.c
> @@ -672,8 +672,8 @@ cnxk_sess_fill(struct roc_cpt *roc_cpt, struct
> rte_crypto_sym_xform *xform,
> bool ciph_then_auth = false;
>
> if (roc_model_is_cn20k()) {
> - sess->roc_se_ctx->pdcp_iv_len = 40;
> sess->roc_se_ctx->pdcp_iv_offset = 16;
> + sess->roc_se_ctx->pdcp_iv_len = 32;
> } else if (roc_cpt->hw_caps[CPT_ENG_TYPE_SE].pdcp_chain_zuc256) {
> sess->roc_se_ctx->pdcp_iv_offset = 24;
> sess->roc_se_ctx->pdcp_iv_len = 48;
> --
> 2.34.1