crypto: tcrypt - fix buffer lengths in test_aead_speed()
authorRobert Baronescu <robert.baronescu@nxp.com>
Tue, 10 Oct 2017 10:22:00 +0000 (13:22 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Dec 2017 09:10:26 +0000 (10:10 +0100)
[ Upstream commit 7aacbfcb331ceff3ac43096d563a1f93ed46e35e ]

Fix the way the length of the buffers used for
encryption / decryption are computed.
For e.g. in case of encryption, input buffer does not contain
an authentication tag.

Signed-off-by: Robert Baronescu <robert.baronescu@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
crypto/tcrypt.c

index 0022a18..f5f58a6 100644 (file)
@@ -340,7 +340,7 @@ static void test_aead_speed(const char *algo, int enc, unsigned int secs,
                        }
 
                        sg_init_aead(sg, xbuf,
-                                   *b_size + (enc ? authsize : 0));
+                                   *b_size + (enc ? 0 : authsize));
 
                        sg_init_aead(sgout, xoutbuf,
                                    *b_size + (enc ? authsize : 0));
@@ -348,7 +348,9 @@ static void test_aead_speed(const char *algo, int enc, unsigned int secs,
                        sg_set_buf(&sg[0], assoc, aad_size);
                        sg_set_buf(&sgout[0], assoc, aad_size);
 
-                       aead_request_set_crypt(req, sg, sgout, *b_size, iv);
+                       aead_request_set_crypt(req, sg, sgout,
+                                              *b_size + (enc ? 0 : authsize),
+                                              iv);
                        aead_request_set_ad(req, aad_size);
 
                        if (secs)