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" <tytso@mit.edu>
Link: http://lkml.kernel.org/r/1324589281-31931-1-git-send-email-tytso@mit.edu
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
  • Loading branch information
Theodore Ts'o authored and H. Peter Anvin committed Jan 16, 2012
1 parent cf833d0 commit 3e88bdf
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 3e88bdf

Please sign in to comment.