crypto: skcipher - Add default key size helper
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 21 Jan 2016 09:10:56 +0000 (17:10 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 25 Jan 2016 14:42:11 +0000 (22:42 +0800)
While converting ecryptfs over to skcipher I found that it needs
to pick a default key size if one isn't given.  Rather than having
it poke into the guts of the algorithm to get max_keysize, let's
provide a helper that is meant to give a sane default (just in
case we ever get an algorithm that has no maximum key size).

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/skcipher.c
include/crypto/skcipher.h

index d199c0b1751c91cbcc5a978aadb97cdf609e33ab..69230e9d4ac99499f621ff925f3f4265fa539f41 100644 (file)
@@ -118,7 +118,7 @@ static int crypto_init_skcipher_ops_blkcipher(struct crypto_tfm *tfm)
        skcipher->decrypt = skcipher_decrypt_blkcipher;
 
        skcipher->ivsize = crypto_blkcipher_ivsize(blkcipher);
-       skcipher->has_setkey = calg->cra_blkcipher.max_keysize;
+       skcipher->keysize = calg->cra_blkcipher.max_keysize;
 
        return 0;
 }
@@ -211,7 +211,7 @@ static int crypto_init_skcipher_ops_ablkcipher(struct crypto_tfm *tfm)
        skcipher->ivsize = crypto_ablkcipher_ivsize(ablkcipher);
        skcipher->reqsize = crypto_ablkcipher_reqsize(ablkcipher) +
                            sizeof(struct ablkcipher_request);
-       skcipher->has_setkey = calg->cra_ablkcipher.max_keysize;
+       skcipher->keysize = calg->cra_ablkcipher.max_keysize;
 
        return 0;
 }
index fd8742a40ff3e93476ec3b8cdb1370200275b6d3..2f07b4fce3e0a37a55d67077fddd87eef143fb8e 100644 (file)
@@ -60,8 +60,7 @@ struct crypto_skcipher {
 
        unsigned int ivsize;
        unsigned int reqsize;
-
-       bool has_setkey;
+       unsigned int keysize;
 
        struct crypto_tfm base;
 };
@@ -309,7 +308,13 @@ static inline int crypto_skcipher_setkey(struct crypto_skcipher *tfm,
 
 static inline bool crypto_skcipher_has_setkey(struct crypto_skcipher *tfm)
 {
-       return tfm->has_setkey;
+       return tfm->keysize;
+}
+
+static inline unsigned int crypto_skcipher_default_keysize(
+       struct crypto_skcipher *tfm)
+{
+       return tfm->keysize;
 }
 
 /**