Commit 508a1c4d authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Herbert Xu

crypto: simd - correctly take reqsize of wrapped skcipher into account

The simd wrapper's skcipher request context structure consists
of a single subrequest whose size is taken from the subordinate
skcipher. However, in simd_skcipher_init(), the reqsize that is
retrieved is not from the subordinate skcipher but from the
cryptd request structure, whose size is completely unrelated to
the actual wrapped skcipher.
Reported-by: default avatarQian Cai <cai@gmx.us>
Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: default avatarQian Cai <cai@gmx.us>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 0b0cf6af
...@@ -124,8 +124,9 @@ static int simd_skcipher_init(struct crypto_skcipher *tfm) ...@@ -124,8 +124,9 @@ static int simd_skcipher_init(struct crypto_skcipher *tfm)
ctx->cryptd_tfm = cryptd_tfm; ctx->cryptd_tfm = cryptd_tfm;
reqsize = sizeof(struct skcipher_request); reqsize = crypto_skcipher_reqsize(cryptd_skcipher_child(cryptd_tfm));
reqsize += crypto_skcipher_reqsize(&cryptd_tfm->base); reqsize = max(reqsize, crypto_skcipher_reqsize(&cryptd_tfm->base));
reqsize += sizeof(struct skcipher_request);
crypto_skcipher_set_reqsize(tfm, reqsize); crypto_skcipher_set_reqsize(tfm, reqsize);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment