aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2006-08-21 10:06:54 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2006-09-20 21:41:51 -0400
commite853c3cfa8cc24869ecd2526e589bcb176bc12e9 (patch)
tree24ad223420bdea868e891676ebb7285e3c477a05 /include
parent8f21cf0d2bae04ece761595036c9da8328b279aa (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.h8
-rw-r--r--include/linux/crypto.h3
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
17struct module; 17struct module;
18struct seq_file;
19
20struct 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
19struct crypto_instance { 27struct 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
91struct scatterlist; 91struct scatterlist;
92struct crypto_tfm; 92struct crypto_tfm;
93struct crypto_type;
93 94
94struct cipher_desc { 95struct 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;