aboutsummaryrefslogtreecommitdiffstats
path: root/include/crypto
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-01-01 02:37:02 -0500
committerHerbert Xu <herbert@gondor.apana.org.au>2007-05-02 00:38:31 -0400
commitebc610e5bc76df073221e64e86c3f7533a09ea40 (patch)
treed53f4fa3da412f6df4b5891e23ca7c7607a3a5ce /include/crypto
parent6158efc09016d3186263f6fd3a50667446ec4008 (diff)
[CRYPTO] templates: Pass type/mask when creating instances
This patch passes the type/mask along when constructing instances of templates. This is in preparation for templates that may support multiple types of instances depending on what is requested. For example, the planned software async crypto driver will use this construct. For the moment this allows us to check whether the instance constructed is of the correct type and avoid returning success if the type does not match. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'include/crypto')
-rw-r--r--include/crypto/algapi.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h
index 4e05e93ff681..d0c190b4d02f 100644
--- a/include/crypto/algapi.h
+++ b/include/crypto/algapi.h
@@ -15,6 +15,7 @@
15#include <linux/crypto.h> 15#include <linux/crypto.h>
16 16
17struct module; 17struct module;
18struct rtattr;
18struct seq_file; 19struct seq_file;
19 20
20struct crypto_type { 21struct crypto_type {
@@ -38,7 +39,7 @@ struct crypto_template {
38 struct hlist_head instances; 39 struct hlist_head instances;
39 struct module *module; 40 struct module *module;
40 41
41 struct crypto_instance *(*alloc)(void *param, unsigned int len); 42 struct crypto_instance *(*alloc)(struct rtattr **tb);
42 void (*free)(struct crypto_instance *inst); 43 void (*free)(struct crypto_instance *inst);
43 44
44 char name[CRYPTO_MAX_ALG_NAME]; 45 char name[CRYPTO_MAX_ALG_NAME];
@@ -96,8 +97,9 @@ void crypto_drop_spawn(struct crypto_spawn *spawn);
96struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn, u32 type, 97struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn, u32 type,
97 u32 mask); 98 u32 mask);
98 99
99struct crypto_alg *crypto_get_attr_alg(void *param, unsigned int len, 100struct crypto_attr_type *crypto_get_attr_type(struct rtattr **tb);
100 u32 type, u32 mask); 101int crypto_check_attr_type(struct rtattr **tb, u32 type);
102struct crypto_alg *crypto_get_attr_alg(struct rtattr **tb, u32 type, u32 mask);
101struct crypto_instance *crypto_alloc_instance(const char *name, 103struct crypto_instance *crypto_alloc_instance(const char *name,
102 struct crypto_alg *alg); 104 struct crypto_alg *alg);
103 105