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