<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: "IntelOne Text"; font-size: 10pt; color: rgb(0, 0, 0);">
Acked-by: Kai Ji <kai.ji@intel.com></div>
<div class="elementToProof" style="font-family: "IntelOne Text"; font-size: 10pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Finn, Emma <emma.finn@intel.com><br>
<b>Sent:</b> 13 October 2026 10:33<br>
<b>To:</b> Ji, Kai <kai.ji@intel.com>; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com><br>
<b>Cc:</b> dev@dpdk.org <dev@dpdk.org>; Finn, Emma <emma.finn@intel.com><br>
<b>Subject:</b> [PATCH v3 2/2] crypto/ipsec_mb: Add SHAKE support.</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Add SHAKE-128 and SHAKE-256 support to<br>
ipsec_mb PMD.<br>
<br>
Signed-off-by: Emma Finn <emma.finn@intel.com><br>
---<br>
 doc/guides/cryptodevs/aesni_mb.rst          |  2 +<br>
 doc/guides/cryptodevs/features/aesni_mb.ini |  2 +<br>
 doc/guides/rel_notes/release_26_11.rst      |  1 +<br>
 drivers/crypto/ipsec_mb/pmd_aesni_mb.c      |  8 +++<br>
 drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h | 54 +++++++++++++++++++--<br>
 5 files changed, 64 insertions(+), 3 deletions(-)<br>
<br>
diff --git a/doc/guides/cryptodevs/aesni_mb.rst b/doc/guides/cryptodevs/aesni_mb.rst<br>
index 663b9f19d4b..da37d54471e 100644<br>
--- a/doc/guides/cryptodevs/aesni_mb.rst<br>
+++ b/doc/guides/cryptodevs/aesni_mb.rst<br>
@@ -69,6 +69,8 @@ Hash algorithms:<br>
 * RTE_CRYPTO_AUTH_SHA3_384 HMAC<br>
 * RTE_CRYPTO_AUTH_SHA3_512<br>
 * RTE_CRYPTO_AUTH_SHA3_512 HMAC<br>
+* RTE_CRYPTO_AUTH_SHAKE_128<br>
+* RTE_CRYPTO_AUTH_SHAKE_256<br>
 <br>
 AEAD algorithms:<br>
 <br>
diff --git a/doc/guides/cryptodevs/features/aesni_mb.ini b/doc/guides/cryptodevs/features/aesni_mb.ini<br>
index 73bb9f42633..18109ffe05d 100644<br>
--- a/doc/guides/cryptodevs/features/aesni_mb.ini<br>
+++ b/doc/guides/cryptodevs/features/aesni_mb.ini<br>
@@ -77,6 +77,8 @@ SHA3_384     = Y<br>
 SHA3_384 HMAC = Y<br>
 SHA3_512     = Y<br>
 SHA3_512 HMAC = Y<br>
+SHAKE_128    = Y<br>
+SHAKE_256    = Y<br>
 <br>
 ;<br>
 ; Supported AEAD algorithms of the 'aesni_mb' crypto driver.<br>
diff --git a/doc/guides/rel_notes/release_26_11.rst b/doc/guides/rel_notes/release_26_11.rst<br>
index 826a0cf05cf..c116f3373da 100644<br>
--- a/doc/guides/rel_notes/release_26_11.rst<br>
+++ b/doc/guides/rel_notes/release_26_11.rst<br>
@@ -28,6 +28,7 @@ New Features<br>
 <br>
   * Added support for SHA3-224, SHA3-256, SHA3-384, and SHA3-512 hash<br>
     algorithms and their HMAC variants.<br>
+  * Added support for SHAKE-128 and SHAKE-256 hash algorithms.<br>
 <br>
 .. This section should contain new features added in this release.<br>
    Sample format:<br>
diff --git a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c<br>
index c96d1453b8c..adfc39b9569 100644<br>
--- a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c<br>
+++ b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c<br>
@@ -332,6 +332,14 @@ aesni_mb_set_session_auth_parameters(IMB_MGR *mb_mgr,<br>
         case RTE_CRYPTO_AUTH_SHA3_512_HMAC:<br>
                 sess->template_job.hash_alg = IMB_AUTH_HMAC_SHA3_512;<br>
                 break;<br>
+       case RTE_CRYPTO_AUTH_SHAKE_128:<br>
+               sess->template_job.hash_alg = IMB_AUTH_SHAKE128;<br>
+               auth_precompute = 0;<br>
+               break;<br>
+       case RTE_CRYPTO_AUTH_SHAKE_256:<br>
+               sess->template_job.hash_alg = IMB_AUTH_SHAKE256;<br>
+               auth_precompute = 0;<br>
+               break;<br>
 #endif<br>
         default:<br>
                 IPSEC_MB_LOG(ERR,<br>
diff --git a/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h b/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h<br>
index aad31b9f909..74accab99a1 100644<br>
--- a/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h<br>
+++ b/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h<br>
@@ -937,6 +937,48 @@ static const struct rte_cryptodev_capabilities aesni_mb_capabilities[] = {<br>
                         }, }<br>
                 }, }<br>
         },<br>
+       {       /* SHAKE-128 */<br>
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
+               {.sym = {<br>
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,<br>
+                       {.auth = {<br>
+                               .algo = RTE_CRYPTO_AUTH_SHAKE_128,<br>
+                               .block_size = 168,<br>
+                               .key_size = {<br>
+                                       .min = 0,<br>
+                                       .max = 0,<br>
+                                       .increment = 0<br>
+                               },<br>
+                               .digest_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 64,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .iv_size = { 0 }<br>
+                       }, }<br>
+               }, }<br>
+       },<br>
+       {       /* SHAKE-256 */<br>
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
+               {.sym = {<br>
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,<br>
+                       {.auth = {<br>
+                               .algo = RTE_CRYPTO_AUTH_SHAKE_256,<br>
+                               .block_size = 136,<br>
+                               .key_size = {<br>
+                                       .min = 0,<br>
+                                       .max = 0,<br>
+                                       .increment = 0<br>
+                               },<br>
+                               .digest_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 64,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .iv_size = { 0 }<br>
+                       }, }<br>
+               }, }<br>
+       },<br>
 #endif<br>
         {       /* SM4 CBC */<br>
                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
@@ -1073,7 +1115,9 @@ static const unsigned int auth_blocksize[] = {<br>
                 [IMB_AUTH_HMAC_SHA3_224]        = 144,<br>
                 [IMB_AUTH_HMAC_SHA3_256]        = 136,<br>
                 [IMB_AUTH_HMAC_SHA3_384]        = 104,<br>
-               [IMB_AUTH_HMAC_SHA3_512]        = 72<br>
+               [IMB_AUTH_HMAC_SHA3_512]        = 72,<br>
+               [IMB_AUTH_SHAKE128]             = 168,<br>
+               [IMB_AUTH_SHAKE256]             = 136<br>
 #endif<br>
 };<br>
 <br>
@@ -1117,7 +1161,9 @@ static const unsigned int auth_truncated_digest_byte_lengths[] = {<br>
                 [IMB_AUTH_HMAC_SHA3_224]        = 28,<br>
                 [IMB_AUTH_HMAC_SHA3_256]        = 32,<br>
                 [IMB_AUTH_HMAC_SHA3_384]        = 48,<br>
-               [IMB_AUTH_HMAC_SHA3_512]        = 64<br>
+               [IMB_AUTH_HMAC_SHA3_512]        = 64,<br>
+               [IMB_AUTH_SHAKE128]             = 64,<br>
+               [IMB_AUTH_SHAKE256]             = 64<br>
 #endif<br>
 };<br>
 <br>
@@ -1166,7 +1212,9 @@ static const unsigned int auth_digest_byte_lengths[] = {<br>
                 [IMB_AUTH_HMAC_SHA3_224]        = 28,<br>
                 [IMB_AUTH_HMAC_SHA3_256]        = 32,<br>
                 [IMB_AUTH_HMAC_SHA3_384]        = 48,<br>
-               [IMB_AUTH_HMAC_SHA3_512]        = 64<br>
+               [IMB_AUTH_HMAC_SHA3_512]        = 64,<br>
+               [IMB_AUTH_SHAKE128]             = 64,<br>
+               [IMB_AUTH_SHAKE256]             = 64<br>
 #endif<br>
         /**< Vector mode dependent pointer table of the multi-buffer APIs */<br>
 <br>
-- <br>
2.43.0<br>
<br>
</div>
</span></font></div>
</body>
</html>