diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2006-08-21 10:06:54 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2006-09-20 21:41:51 -0400 |
commit | e853c3cfa8cc24869ecd2526e589bcb176bc12e9 (patch) | |
tree | 24ad223420bdea868e891676ebb7285e3c477a05 /include | |
parent | 8f21cf0d2bae04ece761595036c9da8328b279aa (diff) |
[CRYPTO] api: Added crypto_type support
This patch adds the crypto_type structure which will be used for all new
crypto algorithm types, beginning with block ciphers.
The primary purpose of this abstraction is to allow different crypto_type
objects for crypto algorithms of the same type, in particular, there will
be a different crypto_type objects for asynchronous algorithms.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'include')
-rw-r--r-- | include/crypto/algapi.h | 8 | ||||
-rw-r--r-- | include/linux/crypto.h | 3 |
2 files changed, 11 insertions, 0 deletions
diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h index 1a598f829417..c533c0a291af 100644 --- a/include/crypto/algapi.h +++ b/include/crypto/algapi.h | |||
@@ -15,6 +15,14 @@ | |||
15 | #include <linux/crypto.h> | 15 | #include <linux/crypto.h> |
16 | 16 | ||
17 | struct module; | 17 | struct module; |
18 | struct seq_file; | ||
19 | |||
20 | struct crypto_type { | ||
21 | unsigned int (*ctxsize)(struct crypto_alg *alg); | ||
22 | int (*init)(struct crypto_tfm *tfm); | ||
23 | void (*exit)(struct crypto_tfm *tfm); | ||
24 | void (*show)(struct seq_file *m, struct crypto_alg *alg); | ||
25 | }; | ||
18 | 26 | ||
19 | struct crypto_instance { | 27 | struct crypto_instance { |
20 | struct crypto_alg alg; | 28 | struct crypto_alg alg; |
diff --git a/include/linux/crypto.h b/include/linux/crypto.h index 6847ab0ea30e..8e9c407b00d2 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h | |||
@@ -90,6 +90,7 @@ | |||
90 | 90 | ||
91 | struct scatterlist; | 91 | struct scatterlist; |
92 | struct crypto_tfm; | 92 | struct crypto_tfm; |
93 | struct crypto_type; | ||
93 | 94 | ||
94 | struct cipher_desc { | 95 | struct cipher_desc { |
95 | struct crypto_tfm *tfm; | 96 | struct crypto_tfm *tfm; |
@@ -161,6 +162,8 @@ struct crypto_alg { | |||
161 | char cra_name[CRYPTO_MAX_ALG_NAME]; | 162 | char cra_name[CRYPTO_MAX_ALG_NAME]; |
162 | char cra_driver_name[CRYPTO_MAX_ALG_NAME]; | 163 | char cra_driver_name[CRYPTO_MAX_ALG_NAME]; |
163 | 164 | ||
165 | const struct crypto_type *cra_type; | ||
166 | |||
164 | union { | 167 | union { |
165 | struct cipher_alg cipher; | 168 | struct cipher_alg cipher; |
166 | struct digest_alg digest; | 169 | struct digest_alg digest; |