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

Reply via email to