diff options
author | Steffen Klassert <steffen.klassert@secunet.com> | 2011-09-27 01:24:29 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2011-10-21 08:24:03 -0400 |
commit | b6aa63c09ba3b150a1030f9c95c7647361e7910e (patch) | |
tree | 26f90dcea8e95a5f8a81c53695ce46a60b192ffa | |
parent | a38f7907b926e4c6c7d389ad96cc38cec2e5a9e9 (diff) |
crypto: Add a report function pointer to crypto_type
We add a report function pointer to struct crypto_type. This function
pointer is used from the crypto userspace configuration API to report
crypto algorithms to userspace.
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | crypto/crypto_user.c | 5 | ||||
-rw-r--r-- | include/crypto/algapi.h | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/crypto/crypto_user.c b/crypto/crypto_user.c index 513cfe7bc3ba..aa67c74ee136 100644 --- a/crypto/crypto_user.c +++ b/crypto/crypto_user.c | |||
@@ -84,6 +84,11 @@ static int crypto_report_one(struct crypto_alg *alg, | |||
84 | 84 | ||
85 | NLA_PUT_U32(skb, CRYPTOCFGA_PRIORITY_VAL, alg->cra_priority); | 85 | NLA_PUT_U32(skb, CRYPTOCFGA_PRIORITY_VAL, alg->cra_priority); |
86 | 86 | ||
87 | if (alg->cra_type && alg->cra_type->report) { | ||
88 | if (alg->cra_type->report(skb, alg)) | ||
89 | goto nla_put_failure; | ||
90 | } | ||
91 | |||
87 | return 0; | 92 | return 0; |
88 | 93 | ||
89 | nla_put_failure: | 94 | nla_put_failure: |
diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h index 59c3e5bd2c06..ecc721def10c 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 | #include <linux/list.h> | 16 | #include <linux/list.h> |
17 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
18 | #include <linux/skbuff.h> | ||
18 | 19 | ||
19 | struct module; | 20 | struct module; |
20 | struct rtattr; | 21 | struct rtattr; |
@@ -26,6 +27,7 @@ struct crypto_type { | |||
26 | int (*init)(struct crypto_tfm *tfm, u32 type, u32 mask); | 27 | int (*init)(struct crypto_tfm *tfm, u32 type, u32 mask); |
27 | int (*init_tfm)(struct crypto_tfm *tfm); | 28 | int (*init_tfm)(struct crypto_tfm *tfm); |
28 | void (*show)(struct seq_file *m, struct crypto_alg *alg); | 29 | void (*show)(struct seq_file *m, struct crypto_alg *alg); |
30 | int (*report)(struct sk_buff *skb, struct crypto_alg *alg); | ||
29 | struct crypto_alg *(*lookup)(const char *name, u32 type, u32 mask); | 31 | struct crypto_alg *(*lookup)(const char *name, u32 type, u32 mask); |
30 | 32 | ||
31 | unsigned int type; | 33 | unsigned int type; |