Skip to content

Commit

Permalink
random: Use arch-specific RNG to initialize the entropy store
Browse files Browse the repository at this point in the history
If there is an architecture-specific random number generator (such as
RDRAND for Intel architectures), use it to initialize /dev/random's
entropy stores.  Even in the worst case, if RDRAND is something like
AES(NSA_KEY, counter++), it won't hurt, and it will definitely help
against any other adversaries.

Signed-off-by: "Theodore Ts'o" <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: H. Peter Anvin <[email protected]>
  • Loading branch information
tytso authored and faux123 committed Aug 15, 2013
1 parent 81d9f71 commit 3a0f69e
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/char/random.c
Original file line number Diff line number Diff line change
Expand Up @@ -965,6 +965,7 @@ EXPORT_SYMBOL(get_random_bytes);
*/
static void init_std_data(struct entropy_store *r)
{
int i;
ktime_t now;
unsigned long flags;

Expand All @@ -974,6 +975,11 @@ static void init_std_data(struct entropy_store *r)

now = ktime_get_real();
mix_pool_bytes(r, &now, sizeof(now));
for (i = r->poolinfo->poolwords; i; i--) {
if (!arch_get_random_long(&flags))
break;
mix_pool_bytes(r, &flags, sizeof(flags));
}
mix_pool_bytes(r, utsname(), sizeof(*(utsname())));
}

Expand Down

0 comments on commit 3a0f69e

Please sign in to comment.