crypto: krng - Convert to new rng interface
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 21 Apr 2015 02:46:45 +0000 (10:46 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 22 Apr 2015 01:30:18 +0000 (09:30 +0800)
This patch ocnverts the KRNG implementation to the new low-level
rng interface.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/krng.c

index 0224841b6579aa8a915406f7c3a944385c6fcbd6..40ed78e32fa5611e594abc74cb5238234988b91c 100644 (file)
 #include <linux/module.h>
 #include <linux/random.h>
 
-static int krng_get_random(struct crypto_rng *tfm, u8 *rdata, unsigned int dlen)
+static int krng_generate(struct crypto_rng *tfm,
+                        const u8 *src, unsigned int slen,
+                        u8 *rdata, unsigned int dlen)
 {
        get_random_bytes(rdata, dlen);
        return 0;
 }
 
-static int krng_reset(struct crypto_rng *tfm, u8 *seed, unsigned int slen)
+static int krng_seed(struct crypto_rng *tfm, const u8 *seed, unsigned int slen)
 {
        return 0;
 }
 
-static struct crypto_alg krng_alg = {
-       .cra_name               = "stdrng",
-       .cra_driver_name        = "krng",
-       .cra_priority           = 200,
-       .cra_flags              = CRYPTO_ALG_TYPE_RNG,
-       .cra_ctxsize            = 0,
-       .cra_type               = &crypto_rng_type,
-       .cra_module             = THIS_MODULE,
-       .cra_u                  = {
-               .rng = {
-                       .rng_make_random        = krng_get_random,
-                       .rng_reset              = krng_reset,
-                       .seedsize               = 0,
-               }
+static struct rng_alg krng_alg = {
+       .generate               = krng_generate,
+       .seed                   = krng_seed,
+       .base                   =       {
+               .cra_name               = "stdrng",
+               .cra_driver_name        = "krng",
+               .cra_priority           = 200,
+               .cra_module             = THIS_MODULE,
        }
 };
 
@@ -48,13 +44,12 @@ static struct crypto_alg krng_alg = {
 /* Module initalization */
 static int __init krng_mod_init(void)
 {
-       return crypto_register_alg(&krng_alg);
+       return crypto_register_rng(&krng_alg);
 }
 
 static void __exit krng_mod_fini(void)
 {
-       crypto_unregister_alg(&krng_alg);
-       return;
+       crypto_unregister_rng(&krng_alg);
 }
 
 module_init(krng_mod_init);