[PATCH v4 05/13] crypto/rng: ensure that the RNG is ready before using
From: Jason A. Donenfeld
Date: Tue Jun 06 2017 - 13:50:37 EST
- Next message: Jason A. Donenfeld: "[PATCH v4 03/13] random: add get_random_{bytes,u32,u64,int,long,once}_wait family"
- Previous message: Jason A. Donenfeld: "Re: [PATCH] security/keys: rewrite all of big_key crypto"
- In reply to: Jason A. Donenfeld: "[PATCH v4 08/13] cifs: use get_random_u32 for 32-bit lock random"
- Next in thread: Jason A. Donenfeld: "[PATCH v4 03/13] random: add get_random_{bytes,u32,u64,int,long,once}_wait family"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Otherwise, we might be seeding the RNG using bad randomness, which is
dangerous. The one use of this function from within the kernel -- not
from userspace -- is being removed (keys/big_key), so that call site
isn't relevant in assessing this.
Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jason A. Donenfeld <Jason@xxxxxxxxx>
---
crypto/rng.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/crypto/rng.c b/crypto/rng.c
index f46dac5288b9..e042437e64b4 100644
--- a/crypto/rng.c
+++ b/crypto/rng.c
@@ -48,12 +48,14 @@ int crypto_rng_reset(struct crypto_rng *tfm, const u8 *seed, unsigned int slen)
if (!buf)
return -ENOMEM;
- get_random_bytes(buf, slen);
+ err = get_random_bytes_wait(buf, slen);
+ if (err)
+ goto out;
seed = buf;
}
err = crypto_rng_alg(tfm)->seed(tfm, seed, slen);
-
+out:
kzfree(buf);
return err;
}
--
2.13.0
- Next message: Jason A. Donenfeld: "[PATCH v4 03/13] random: add get_random_{bytes,u32,u64,int,long,once}_wait family"
- Previous message: Jason A. Donenfeld: "Re: [PATCH] security/keys: rewrite all of big_key crypto"
- In reply to: Jason A. Donenfeld: "[PATCH v4 08/13] cifs: use get_random_u32 for 32-bit lock random"
- Next in thread: Jason A. Donenfeld: "[PATCH v4 03/13] random: add get_random_{bytes,u32,u64,int,long,once}_wait family"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]