2020-01-27 12:51:09

by Gilad Ben-Yossef

[permalink] [raw]
Subject: [PATCH] crypto: testmgr - properly mark the end of scatterlist

The inauthentic AEAD test were using a scatterlist which
could have a mismarked end node.

Fixes: 49763fc6b1 ("crypto: testmgr - generate inauthentic AEAD test vectors")
Signed-off-by: Gilad Ben-Yossef <[email protected]>

---
crypto/testmgr.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 88f33c0efb23..6c432aecff97 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -2225,6 +2225,8 @@ static void generate_aead_message(struct aead_request *req,
generate_random_bytes((u8 *)vec->ptext, vec->plen);
sg_set_buf(&src[i++], vec->ptext, vec->plen);
}
+ if (i)
+ sg_mark_end(&src[(i-1)]);
sg_init_one(&dst, vec->ctext, vec->alen + vec->clen);
memcpy(iv, vec->iv, ivsize);
aead_request_set_callback(req, 0, crypto_req_done, &wait);
--
2.23.0


2020-01-28 02:41:13

by Eric Biggers

[permalink] [raw]
Subject: Re: [PATCH] crypto: testmgr - properly mark the end of scatterlist

On Mon, Jan 27, 2020 at 02:33:11PM +0200, Gilad Ben-Yossef wrote:
> The inauthentic AEAD test were using a scatterlist which
> could have a mismarked end node.
>
> Fixes: 49763fc6b1 ("crypto: testmgr - generate inauthentic AEAD test vectors")
> Signed-off-by: Gilad Ben-Yossef <[email protected]>
>
> ---
> crypto/testmgr.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/crypto/testmgr.c b/crypto/testmgr.c
> index 88f33c0efb23..6c432aecff97 100644
> --- a/crypto/testmgr.c
> +++ b/crypto/testmgr.c
> @@ -2225,6 +2225,8 @@ static void generate_aead_message(struct aead_request *req,
> generate_random_bytes((u8 *)vec->ptext, vec->plen);
> sg_set_buf(&src[i++], vec->ptext, vec->plen);
> }
> + if (i)
> + sg_mark_end(&src[(i-1)]);
> sg_init_one(&dst, vec->ctext, vec->alen + vec->clen);
> memcpy(iv, vec->iv, ivsize);
> aead_request_set_callback(req, 0, crypto_req_done, &wait);

As I responded in the other thread
(https://lkml.kernel.org/linux-crypto/[email protected]/),
I'm not sure this is really a bug. There's a length passed along with the
scatterlist, and my understanding is that algorithms aren't supposed to look
beyond that length. So the scatterlist end marker isn't really relevant.

- Eric