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

Akhil Goyal gakhil at marvell.com
Tue Feb 10 19:04:02 CET 2026


Hi Pablo/Kai,
Please ack if no objection


> From: weid <wei.dai at 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 at 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


More information about the dev mailing list