summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-12-12 19:24:27 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2008-01-11 08:16:52 +1100
commitd29ce988aeb459203c74f14747f4f77e1829ef78 (patch)
tree886ec0a429c3b1b5b79f290be6b0d8383b89c30b /include
parent14df4d80433b8413f901e80880c39e8759b8418f (diff)
downloadlwn-d29ce988aeb459203c74f14747f4f77e1829ef78.tar.gz
lwn-d29ce988aeb459203c74f14747f4f77e1829ef78.zip
[CRYPTO] aead: Create default givcipher instances
This patch makes crypto_alloc_aead always return algorithms that is capable of generating their own IVs through givencrypt and givdecrypt. All existing AEAD algorithms already do. New ones must either supply their own or specify a generic IV generator with the geniv field. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'include')
-rw-r--r--include/crypto/internal/aead.h3
-rw-r--r--include/linux/crypto.h10
2 files changed, 4 insertions, 9 deletions
diff --git a/include/crypto/internal/aead.h b/include/crypto/internal/aead.h
index eb4eee7a7804..d838c945575a 100644
--- a/include/crypto/internal/aead.h
+++ b/include/crypto/internal/aead.h
@@ -31,6 +31,9 @@ static inline void crypto_set_aead_spawn(
crypto_set_spawn(&spawn->base, inst);
}
+int crypto_grab_aead(struct crypto_aead_spawn *spawn, const char *name,
+ u32 type, u32 mask);
+
static inline void crypto_drop_aead(struct crypto_aead_spawn *spawn)
{
crypto_drop_spawn(&spawn->base);
diff --git a/include/linux/crypto.h b/include/linux/crypto.h
index 639385a9672d..0aba10460201 100644
--- a/include/linux/crypto.h
+++ b/include/linux/crypto.h
@@ -723,15 +723,7 @@ static inline struct crypto_aead *__crypto_aead_cast(struct crypto_tfm *tfm)
return (struct crypto_aead *)tfm;
}
-static inline struct crypto_aead *crypto_alloc_aead(const char *alg_name,
- u32 type, u32 mask)
-{
- type &= ~CRYPTO_ALG_TYPE_MASK;
- type |= CRYPTO_ALG_TYPE_AEAD;
- mask |= CRYPTO_ALG_TYPE_MASK;
-
- return __crypto_aead_cast(crypto_alloc_base(alg_name, type, mask));
-}
+struct crypto_aead *crypto_alloc_aead(const char *alg_name, u32 type, u32 mask);
static inline struct crypto_tfm *crypto_aead_tfm(struct crypto_aead *tfm)
{