Hi Pablo/Kai,
Please ack if no objection

> From: weid <[email protected]>
> 
> 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 <[email protected]>
> ---
>  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

Reply via email to