diff options
author | Steffen Klassert <steffen.klassert@secunet.com> | 2011-09-27 01:41:54 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2011-10-21 08:24:05 -0400 |
commit | 50496a1fab6c6a90b77da4b247321a88e632bd46 (patch) | |
tree | 5e6cd05515919eeb151160c3af702b4839ab0afb /crypto | |
parent | 6238cbaec429c98d1a280014839c934107c7c8f6 (diff) |
crypto: Add userspace report for blkcipher type algorithms
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/blkcipher.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/crypto/blkcipher.c b/crypto/blkcipher.c index 7a7219266e3c..2572d2600136 100644 --- a/crypto/blkcipher.c +++ b/crypto/blkcipher.c | |||
@@ -24,6 +24,8 @@ | |||
24 | #include <linux/seq_file.h> | 24 | #include <linux/seq_file.h> |
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | #include <linux/string.h> | 26 | #include <linux/string.h> |
27 | #include <linux/cryptouser.h> | ||
28 | #include <net/netlink.h> | ||
27 | 29 | ||
28 | #include "internal.h" | 30 | #include "internal.h" |
29 | 31 | ||
@@ -492,6 +494,28 @@ static int crypto_init_blkcipher_ops(struct crypto_tfm *tfm, u32 type, u32 mask) | |||
492 | return crypto_init_blkcipher_ops_async(tfm); | 494 | return crypto_init_blkcipher_ops_async(tfm); |
493 | } | 495 | } |
494 | 496 | ||
497 | static int crypto_blkcipher_report(struct sk_buff *skb, struct crypto_alg *alg) | ||
498 | { | ||
499 | struct crypto_report_blkcipher rblkcipher; | ||
500 | |||
501 | snprintf(rblkcipher.type, CRYPTO_MAX_ALG_NAME, "%s", "blkcipher"); | ||
502 | snprintf(rblkcipher.geniv, CRYPTO_MAX_ALG_NAME, "%s", | ||
503 | alg->cra_blkcipher.geniv ?: "<default>"); | ||
504 | |||
505 | rblkcipher.blocksize = alg->cra_blocksize; | ||
506 | rblkcipher.min_keysize = alg->cra_blkcipher.min_keysize; | ||
507 | rblkcipher.max_keysize = alg->cra_blkcipher.max_keysize; | ||
508 | rblkcipher.ivsize = alg->cra_blkcipher.ivsize; | ||
509 | |||
510 | NLA_PUT(skb, CRYPTOCFGA_REPORT_BLKCIPHER, | ||
511 | sizeof(struct crypto_report_blkcipher), &rblkcipher); | ||
512 | |||
513 | return 0; | ||
514 | |||
515 | nla_put_failure: | ||
516 | return -EMSGSIZE; | ||
517 | } | ||
518 | |||
495 | static void crypto_blkcipher_show(struct seq_file *m, struct crypto_alg *alg) | 519 | static void crypto_blkcipher_show(struct seq_file *m, struct crypto_alg *alg) |
496 | __attribute__ ((unused)); | 520 | __attribute__ ((unused)); |
497 | static void crypto_blkcipher_show(struct seq_file *m, struct crypto_alg *alg) | 521 | static void crypto_blkcipher_show(struct seq_file *m, struct crypto_alg *alg) |
@@ -511,6 +535,7 @@ const struct crypto_type crypto_blkcipher_type = { | |||
511 | #ifdef CONFIG_PROC_FS | 535 | #ifdef CONFIG_PROC_FS |
512 | .show = crypto_blkcipher_show, | 536 | .show = crypto_blkcipher_show, |
513 | #endif | 537 | #endif |
538 | .report = crypto_blkcipher_report, | ||
514 | }; | 539 | }; |
515 | EXPORT_SYMBOL_GPL(crypto_blkcipher_type); | 540 | EXPORT_SYMBOL_GPL(crypto_blkcipher_type); |
516 | 541 | ||