diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2006-09-20 21:39:29 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2006-09-20 21:39:29 -0400 |
commit | 6bfd48096ff8ecabf955958b51ddfa7988eb0a14 (patch) | |
tree | 813799f00d8402348ba6817953b1c631541be66c /include/crypto | |
parent | 492e2b63eb10c28f4f0b694264d74a8755cd1be0 (diff) |
[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.h | 11 |
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 { | |||
36 | char name[CRYPTO_MAX_ALG_NAME]; | 36 | char name[CRYPTO_MAX_ALG_NAME]; |
37 | }; | 37 | }; |
38 | 38 | ||
39 | struct crypto_spawn { | ||
40 | struct list_head list; | ||
41 | struct crypto_alg *alg; | ||
42 | struct crypto_instance *inst; | ||
43 | }; | ||
44 | |||
39 | int crypto_register_template(struct crypto_template *tmpl); | 45 | int crypto_register_template(struct crypto_template *tmpl); |
40 | void crypto_unregister_template(struct crypto_template *tmpl); | 46 | void crypto_unregister_template(struct crypto_template *tmpl); |
41 | struct crypto_template *crypto_lookup_template(const char *name); | 47 | struct crypto_template *crypto_lookup_template(const char *name); |
42 | 48 | ||
49 | int crypto_init_spawn(struct crypto_spawn *spawn, struct crypto_alg *alg, | ||
50 | struct crypto_instance *inst); | ||
51 | void crypto_drop_spawn(struct crypto_spawn *spawn); | ||
52 | struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn); | ||
53 | |||
43 | static inline void *crypto_instance_ctx(struct crypto_instance *inst) | 54 | static inline void *crypto_instance_ctx(struct crypto_instance *inst) |
44 | { | 55 | { |
45 | return inst->__ctx; | 56 | return inst->__ctx; |