lkml.org 
[lkml]   [2012]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[v2.6.34-stable 148/165] random: Use arch-specific RNG to initialize the entropy store
    Date
    From: Theodore Ts'o <tytso@mit.edu>

    -------------------
    This is a commit scheduled for the next v2.6.34 longterm release.
    http://git.kernel.org/?p=linux/kernel/git/paulg/longterm-queue-2.6.34.git
    If you see a problem with using this for longterm, please comment.
    -------------------

    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: Paul Gortmaker <paul.gortmaker@windriver.com>
    ---
    drivers/char/random.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/drivers/char/random.c b/drivers/char/random.c
    index ed86cae..4874f55 100644
    --- a/drivers/char/random.c
    +++ b/drivers/char/random.c
    @@ -958,6 +958,7 @@ EXPORT_SYMBOL(get_random_bytes);
    */
    static void init_std_data(struct entropy_store *r)
    {
    + int i;
    ktime_t now;
    unsigned long flags;

    @@ -967,6 +968,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())));
    }

    --
    1.7.12.rc2


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