aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/cryptomgr.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2006-09-20 21:35:17 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2006-09-20 21:35:17 -0400
commit492e2b63eb10c28f4f0b694264d74a8755cd1be0 (patch)
treed882a2df15d939b2edf9064963d73c71c5985b9b /crypto/cryptomgr.c
parent2b8c19dbdc692e81243a328725a02efb77b144a5 (diff)
[CRYPTO] api: Allow algorithm lookup by type
This patch also adds the infrastructure to pick an algorithm based on their type. For example, this allows you to select the encryption algorithm "aes", instead of any algorithm registered under the name "aes". For now this is only accessible internally. Eventually it will be made available through crypto_alloc_tfm. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'crypto/cryptomgr.c')
-rw-r--r--crypto/cryptomgr.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/crypto/cryptomgr.c b/crypto/cryptomgr.c
index e0ebe1b44b99..ae54942e3b31 100644
--- a/crypto/cryptomgr.c
+++ b/crypto/cryptomgr.c
@@ -31,6 +31,8 @@ struct cryptomgr_param {
31 } alg; 31 } alg;
32 32
33 struct { 33 struct {
34 u32 type;
35 u32 mask;
34 char name[CRYPTO_MAX_ALG_NAME]; 36 char name[CRYPTO_MAX_ALG_NAME];
35 } larval; 37 } larval;
36 38
@@ -62,7 +64,8 @@ out:
62 return; 64 return;
63 65
64err: 66err:
65 crypto_larval_error(param->larval.name); 67 crypto_larval_error(param->larval.name, param->larval.type,
68 param->larval.mask);
66 goto out; 69 goto out;
67} 70}
68 71
@@ -101,6 +104,8 @@ static int cryptomgr_schedule_probe(struct crypto_larval *larval)
101 param->alg.data.name[len] = 0; 104 param->alg.data.name[len] = 0;
102 105
103 memcpy(param->larval.name, larval->alg.cra_name, CRYPTO_MAX_ALG_NAME); 106 memcpy(param->larval.name, larval->alg.cra_name, CRYPTO_MAX_ALG_NAME);
107 param->larval.type = larval->alg.cra_flags;
108 param->larval.mask = larval->mask;
104 109
105 INIT_WORK(&param->work, cryptomgr_probe, param); 110 INIT_WORK(&param->work, cryptomgr_probe, param);
106 schedule_work(&param->work); 111 schedule_work(&param->work);