crypto: skcipher - Fix skcipher_walk_aead_common
commitc14ca83865
upstream. The skcipher_walk_aead_common function calls scatterwalk_copychunks on the input and output walks to skip the associated data. If the AD end at an SG list entry boundary, then after these calls the walks will still be pointing to the end of the skipped region. These offsets are later checked for alignment in skcipher_walk_next, so the skcipher_walk may detect the alignment incorrectly. This patch fixes it by calling scatterwalk_done after the copychunks calls to ensure that the offsets refer to the right SG list entry. Fixes:b286d8b1a6
("crypto: skcipher - Add skcipher walk interface") Signed-off-by: Ondrej Mosnacek <omosnacek@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
7f21961a2d
Коммит
861eae231b
|
@ -522,6 +522,9 @@ static int skcipher_walk_aead_common(struct skcipher_walk *walk,
|
|||
scatterwalk_copychunks(NULL, &walk->in, req->assoclen, 2);
|
||||
scatterwalk_copychunks(NULL, &walk->out, req->assoclen, 2);
|
||||
|
||||
scatterwalk_done(&walk->in, 0, walk->total);
|
||||
scatterwalk_done(&walk->out, 0, walk->total);
|
||||
|
||||
walk->iv = req->iv;
|
||||
walk->oiv = req->iv;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче