lkml.org 
[lkml]   [2012]   [Aug]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 12/70] random: Use arch-specific RNG to initialize the entropy store
    3.2-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Theodore Ts'o <tytso@mit.edu>

    commit 3e88bdff1c65145f7ba297ccec69c774afe4c785 upstream.

    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>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    drivers/char/random.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/drivers/char/random.c b/drivers/char/random.c
    index 85da874..3079477 100644
    --- a/drivers/char/random.c
    +++ b/drivers/char/random.c
    @@ -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;

    @@ -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())));
    }




    \
     
     \ /
      Last update: 2012-08-07 06:44    [W:4.217 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site