aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteffen Klassert <steffen.klassert@secunet.com>2011-09-27 01:24:29 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2011-10-21 08:24:03 -0400
commitb6aa63c09ba3b150a1030f9c95c7647361e7910e (patch)
tree26f90dcea8e95a5f8a81c53695ce46a60b192ffa
parenta38f7907b926e4c6c7d389ad96cc38cec2e5a9e9 (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.c5
-rw-r--r--include/crypto/algapi.h2
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
89nla_put_failure: 94nla_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
19struct module; 20struct module;
20struct rtattr; 21struct 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;