summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2015-06-21 19:11:41 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2015-06-22 15:49:16 +0800
commit21dbd96f2287a49219d35a0e916cf3f2bcaab9d0 (patch)
treea451df51aba5981cfe1b855e3ad95ec05c37f765
parent7eac7144dd1ef11c05a5f7605de6afa3770982e4 (diff)
downloadlwn-21dbd96f2287a49219d35a0e916cf3f2bcaab9d0.tar.gz
lwn-21dbd96f2287a49219d35a0e916cf3f2bcaab9d0.zip
crypto: skcipher - Allow givencrypt to be NULL
Currently for skcipher IV generators they must provide givencrypt as that is the whole point. We are currently replacing skcipher IV generators with explicit IV generators. In order to maintain backwards compatibility, we need to allow the IV generators to still function as a normal skcipher when the RNG Is not present (e.g., in the initramfs during boot). IOW everything but givencrypt and givdecrypt will still work but those two will fail. Therefore this patch assigns a default givencrypt that simply returns an error should it be NULL. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--crypto/ablkcipher.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/ablkcipher.c b/crypto/ablkcipher.c
index b15d797f94f9..b788f169cc98 100644
--- a/crypto/ablkcipher.c
+++ b/crypto/ablkcipher.c
@@ -454,7 +454,7 @@ static int crypto_init_givcipher_ops(struct crypto_tfm *tfm, u32 type,
alg->setkey : setkey;
crt->encrypt = alg->encrypt;
crt->decrypt = alg->decrypt;
- crt->givencrypt = alg->givencrypt;
+ crt->givencrypt = alg->givencrypt ?: no_givdecrypt;
crt->givdecrypt = alg->givdecrypt ?: no_givdecrypt;
crt->base = __crypto_ablkcipher_cast(tfm);
crt->ivsize = alg->ivsize;