summaryrefslogtreecommitdiffstats
path: root/include/crypto
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2006-09-21 03:39:29 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2006-09-21 03:39:29 +0200
commit6bfd48096ff8ecabf955958b51ddfa7988eb0a14 (patch)
tree813799f00d8402348ba6817953b1c631541be66c /include/crypto
parent[CRYPTO] api: Allow algorithm lookup by type (diff)
downloadlinux-6bfd48096ff8ecabf955958b51ddfa7988eb0a14.tar.xz
linux-6bfd48096ff8ecabf955958b51ddfa7988eb0a14.zip
[CRYPTO] api: Added spawns
Spawns lock a specific crypto algorithm in place. They can then be used with crypto_spawn_tfm to allocate a tfm for that algorithm. When the base algorithm of a spawn is deregistered, all its spawns will be automatically removed. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/crypto')
-rw-r--r--include/crypto/algapi.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h
index ffec530d52fb..b20f4bdb23ba 100644
--- a/include/crypto/algapi.h
+++ b/include/crypto/algapi.h
@@ -36,10 +36,21 @@ struct crypto_template {
char name[CRYPTO_MAX_ALG_NAME];
};
+struct crypto_spawn {
+ struct list_head list;
+ struct crypto_alg *alg;
+ struct crypto_instance *inst;
+};
+
int crypto_register_template(struct crypto_template *tmpl);
void crypto_unregister_template(struct crypto_template *tmpl);
struct crypto_template *crypto_lookup_template(const char *name);
+int crypto_init_spawn(struct crypto_spawn *spawn, struct crypto_alg *alg,
+ struct crypto_instance *inst);
+void crypto_drop_spawn(struct crypto_spawn *spawn);
+struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn);
+
static inline void *crypto_instance_ctx(struct crypto_instance *inst)
{
return inst->__ctx;