| From b30bdfa86431afbafe15284a3ad5ac19b49b88e3 Mon Sep 17 00:00:00 2001 |
| From: Herbert Xu <herbert@gondor.apana.org.au> |
| Date: Wed, 15 Jun 2016 22:27:05 +0800 |
| Subject: crypto: gcm - Filter out async ghash if necessary |
| |
| From: Herbert Xu <herbert@gondor.apana.org.au> |
| |
| commit b30bdfa86431afbafe15284a3ad5ac19b49b88e3 upstream. |
| |
| As it is if you ask for a sync gcm you may actually end up with |
| an async one because it does not filter out async implementations |
| of ghash. |
| |
| This patch fixes this by adding the necessary filter when looking |
| for ghash. |
| |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| crypto/gcm.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/crypto/gcm.c |
| +++ b/crypto/gcm.c |
| @@ -639,7 +639,9 @@ static int crypto_gcm_create_common(stru |
| |
| ghash_alg = crypto_find_alg(ghash_name, &crypto_ahash_type, |
| CRYPTO_ALG_TYPE_HASH, |
| - CRYPTO_ALG_TYPE_AHASH_MASK); |
| + CRYPTO_ALG_TYPE_AHASH_MASK | |
| + crypto_requires_sync(algt->type, |
| + algt->mask)); |
| if (IS_ERR(ghash_alg)) |
| return PTR_ERR(ghash_alg); |
| |