crypto: ccree - use the full crypt length value
authorGilad Ben-Yossef <gilad@benyossef.com>
Mon, 29 Jul 2019 10:40:18 +0000 (13:40 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Oct 2019 16:20:55 +0000 (18:20 +0200)
commit 7a4be6c113c1f721818d1e3722a9015fe393295c upstream.

In case of AEAD decryption verifcation error we were using the
wrong value to zero out the plaintext buffer leaving the end of
the buffer with the false plaintext.

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Fixes: ff27e85a85bb ("crypto: ccree - add AEAD support")
CC: stable@vger.kernel.org # v4.17+
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/crypto/ccree/cc_aead.c

index 0669033..aa6b45b 100644 (file)
@@ -227,7 +227,7 @@ static void cc_aead_complete(struct device *dev, void *cc_req, int err)
                        /* In case of payload authentication failure, MUST NOT
                         * revealed the decrypted message --> zero its memory.
                         */
-                       cc_zero_sgl(areq->dst, areq_ctx->cryptlen);
+                       cc_zero_sgl(areq->dst, areq->cryptlen);
                        err = -EBADMSG;
                }
        } else { /*ENCRYPT*/