From: Vidya Sagar Velumuri <vvelum...@marvell.com>

Add support for MD5 auth algo for security offload in inline mode.

Signed-off-by: Vidya Sagar Velumuri <vvelum...@marvell.com>
---
 drivers/common/cnxk/cnxk_security.c |  4 ++++
 drivers/net/cnxk/cn9k_ethdev_sec.c  | 20 ++++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/drivers/common/cnxk/cnxk_security.c 
b/drivers/common/cnxk/cnxk_security.c
index f25df54254..55382d3129 100644
--- a/drivers/common/cnxk/cnxk_security.c
+++ b/drivers/common/cnxk/cnxk_security.c
@@ -852,6 +852,7 @@ cnxk_ipsec_icvlen_get(enum rte_crypto_cipher_algorithm 
c_algo,
        case RTE_CRYPTO_AUTH_NULL:
                icv = 0;
                break;
+       case RTE_CRYPTO_AUTH_MD5_HMAC:
        case RTE_CRYPTO_AUTH_SHA1_HMAC:
                icv = 12;
                break;
@@ -1208,6 +1209,7 @@ cnxk_on_ipsec_outb_sa_create(struct 
rte_security_ipsec_xform *ipsec,
                ctx_len = offsetof(struct roc_ie_on_outb_sa, aes_gcm.template);
        } else {
                switch (ctl->auth_type) {
+               case ROC_IE_ON_SA_AUTH_MD5:
                case ROC_IE_ON_SA_AUTH_SHA1:
                        template = &out_sa->sha1.template;
                        ctx_len = offsetof(struct roc_ie_on_outb_sa,
@@ -1306,6 +1308,7 @@ cnxk_on_ipsec_outb_sa_create(struct 
rte_security_ipsec_xform *ipsec,
                case RTE_CRYPTO_AUTH_AES_GMAC:
                case RTE_CRYPTO_AUTH_NULL:
                        break;
+               case RTE_CRYPTO_AUTH_MD5_HMAC:
                case RTE_CRYPTO_AUTH_SHA1_HMAC:
                        memcpy(out_sa->sha1.hmac_key, auth_key, auth_key_len);
                        break;
@@ -1354,6 +1357,7 @@ cnxk_on_ipsec_inb_sa_create(struct 
rte_security_ipsec_xform *ipsec,
                switch (auth_xform->auth.algo) {
                case RTE_CRYPTO_AUTH_NULL:
                        break;
+               case RTE_CRYPTO_AUTH_MD5_HMAC:
                case RTE_CRYPTO_AUTH_SHA1_HMAC:
                        memcpy(in_sa->sha1_or_gcm.hmac_key, auth_key,
                               auth_key_len);
diff --git a/drivers/net/cnxk/cn9k_ethdev_sec.c 
b/drivers/net/cnxk/cn9k_ethdev_sec.c
index aa9aa29b4a..90cb1d252d 100644
--- a/drivers/net/cnxk/cn9k_ethdev_sec.c
+++ b/drivers/net/cnxk/cn9k_ethdev_sec.c
@@ -185,6 +185,26 @@ static struct rte_cryptodev_capabilities 
cn9k_eth_sec_crypto_caps[] = {
                        }, }
                }, }
        },
+       {       /* MD5 HMAC */
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+               {.sym = {
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
+                       {.auth = {
+                               .algo = RTE_CRYPTO_AUTH_MD5_HMAC,
+                               .block_size = 64,
+                               .key_size = {
+                                       .min = 16,
+                                       .max = 16,
+                                       .increment = 0
+                               },
+                               .digest_size = {
+                                       .min = 12,
+                                       .max = 12,
+                                       .increment = 0
+                               },
+                       }, }
+               }, }
+       },
        {       /* SHA1 HMAC */
                .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
                {.sym = {
-- 
2.25.1

Reply via email to