RE: [EXTERNAL] [PATCH] crypto/ipsec_mb: fix clearing snow3g digest

Akhil Goyal
2026-02-10T18:04:41Z

Hi Pablo/Kai,
Please ack if no objection

> From: weid <wei.dai@picocom.com>
>
> Before this patch, the software crypto_snow3g
> clear the encrypted auth snow3g digest when
> the dst mbuf is same as the src mbuf in crypto
> op.
>
> This bug can be checked by following way,
> start app/dpdk-test --vdev=crypto_snow3g,
> run pdcp_autotest
> the case failed when i=42 in
> run_test_for_one_known_vec() in test_pdcp.c.
> The case is PDCP control plane auth snow3g gen
> + cipher snow3g enc.
> The case failed because the last 4 bytes are
> cleared in last for() loop in line 167 in
> process_snow3g_cipher_op() in pmd_snow3g.c .
>
> Fixes: 5208d68d30cb ("crypto/ipsec_mb: support snow3g digest appended ops")
>
> Signed-off-by: weid <wei.dai@picocom.com>
> ---
> drivers/crypto/ipsec_mb/pmd_snow3g.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/crypto/ipsec_mb/pmd_snow3g.c
> b/drivers/crypto/ipsec_mb/pmd_snow3g.c
> index b3c3b05a8a..35fe23c157 100644
> --- a/drivers/crypto/ipsec_mb/pmd_snow3g.c
> +++ b/drivers/crypto/ipsec_mb/pmd_snow3g.c
> @@ -157,7 +157,8 @@ process_snow3g_cipher_op(struct ipsec_mb_qp *qp,
> struct rte_crypto_op **ops,
> for (i = 0; i < num_ops; i++) {
> if ((session->op ==
> IPSEC_MB_OP_HASH_VERIFY_THEN_DECRYPT ||
> session->op ==
> IPSEC_MB_OP_HASH_GEN_THEN_ENCRYPT) &&
> - ops[i]->sym->m_dst != NULL) {
> + ops[i]->sym->m_dst != NULL &&
> + ops[i]->sym->m_dst != ops[i]->sym->m_src) {
> digest_appended[i] =
> snow3g_digest_appended_in_src(ops[i]);
> /* Clear unencrypted digest from
> --
> 2.51.0.windows.1