From fa77c336a571f85e61aa6393e1bc832f6f294d47 Mon Sep 17 00:00:00 2001 From: Steffen Klassert Date: Tue, 27 Sep 2011 07:47:11 +0200 Subject: [PATCH] --- yaml --- r: 272303 b: refs/heads/master c: 792608e9c215141fa4b870b7b2a23767a1ef12f4 h: refs/heads/master i: 272301: 9260be3344d3e521a0fe2909eeb05f43dbf63b6e 272299: f247773ae95e2d23a8b55a088eca0036884e4a0d 272295: ba782f27d7f917825a36f72f71226438cd6c6126 272287: 620f0480113fec1bfd024928722ebd7bd4d74be2 v: v3 --- [refs] | 2 +- trunk/crypto/rng.c | 20 ++++++++++++++++++++ trunk/include/linux/cryptouser.h | 6 ++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 69b8bfc7ce7d..cdb10c1cff2e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a55465dca7befd31f4ffa54508d4e2d1e701b8dc +refs/heads/master: 792608e9c215141fa4b870b7b2a23767a1ef12f4 diff --git a/trunk/crypto/rng.c b/trunk/crypto/rng.c index 45229ae782be..feb7de00f437 100644 --- a/trunk/crypto/rng.c +++ b/trunk/crypto/rng.c @@ -21,6 +21,8 @@ #include #include #include +#include +#include static DEFINE_MUTEX(crypto_default_rng_lock); struct crypto_rng *crypto_default_rng; @@ -58,6 +60,23 @@ static int crypto_init_rng_ops(struct crypto_tfm *tfm, u32 type, u32 mask) return 0; } +static int crypto_rng_report(struct sk_buff *skb, struct crypto_alg *alg) +{ + struct crypto_report_rng rrng; + + snprintf(rrng.type, CRYPTO_MAX_ALG_NAME, "%s", "rng"); + + rrng.seedsize = alg->cra_rng.seedsize; + + NLA_PUT(skb, CRYPTOCFGA_REPORT_RNG, + sizeof(struct crypto_report_rng), &rrng); + + return 0; + +nla_put_failure: + return -EMSGSIZE; +} + static void crypto_rng_show(struct seq_file *m, struct crypto_alg *alg) __attribute__ ((unused)); static void crypto_rng_show(struct seq_file *m, struct crypto_alg *alg) @@ -78,6 +97,7 @@ const struct crypto_type crypto_rng_type = { #ifdef CONFIG_PROC_FS .show = crypto_rng_show, #endif + .report = crypto_rng_report, }; EXPORT_SYMBOL_GPL(crypto_rng_type); diff --git a/trunk/include/linux/cryptouser.h b/trunk/include/linux/cryptouser.h index c8c1dfcb7cf2..ed8a40e8fb6b 100644 --- a/trunk/include/linux/cryptouser.h +++ b/trunk/include/linux/cryptouser.h @@ -41,6 +41,7 @@ enum crypto_attr_type_t { CRYPTOCFGA_REPORT_BLKCIPHER, /* struct crypto_report_blkcipher */ CRYPTOCFGA_REPORT_AEAD, /* struct crypto_report_aead */ CRYPTOCFGA_REPORT_COMPRESS, /* struct crypto_report_comp */ + CRYPTOCFGA_REPORT_RNG, /* struct crypto_report_rng */ __CRYPTOCFGA_MAX #define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1) @@ -86,3 +87,8 @@ struct crypto_report_aead { struct crypto_report_comp { char type[CRYPTO_MAX_NAME]; }; + +struct crypto_report_rng { + char type[CRYPTO_MAX_NAME]; + unsigned int seedsize; +};