linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] random: Use 64 bits from get_random_long() in extract_crng()
@ 2021-11-10  9:25 Sandy Harris
  2021-11-10 10:55 ` Jason A. Donenfeld
  0 siblings, 1 reply; 2+ messages in thread
From: Sandy Harris @ 2021-11-10  9:25 UTC (permalink / raw)
  To: LKML, Linux Crypto Mailing List, Ted Ts'o, Jason A. Donenfeld

---
drivers/char/random.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/char/random.c b/drivers/char/random.c
index 605969ed0f96..bf644b594fb7 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -989,14 +989,20 @@ static void _extract_crng(struct crng_state *crng,
                         __u8 out[CHACHA_BLOCK_SIZE])
{
       unsigned long v, flags;
+        u32 *p, *q ;
+        p = crng->state ;
+        q = (u32 *) &v ;

       if (crng_ready() &&
           (time_after(crng_global_init_time, crng->init_time) ||
            time_after(jiffies, crng->init_time + CRNG_RESEED_INTERVAL)))
               crng_reseed(crng, crng == &primary_crng ? &input_pool : NULL);
       spin_lock_irqsave(&crng->lock, flags);
-       if (arch_get_random_long(&v))
-               crng->state[14] ^= v;
+       if (arch_get_random_long(&v))  {
+               p[14] ^= q[0];
+                if (sizeof(v) == 8)
+                        p[15] ^= q[1];
+        }
       chacha20_block(&crng->state[0], out);
       if (crng->state[12] == 0)
               crng->state[13]++;
--

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] random: Use 64 bits from get_random_long() in extract_crng()
  2021-11-10  9:25 [PATCH] random: Use 64 bits from get_random_long() in extract_crng() Sandy Harris
@ 2021-11-10 10:55 ` Jason A. Donenfeld
  0 siblings, 0 replies; 2+ messages in thread
From: Jason A. Donenfeld @ 2021-11-10 10:55 UTC (permalink / raw)
  To: Sandy Harris; +Cc: LKML, Linux Crypto Mailing List, Ted Ts'o

Any rationale? Commit message is a bit short.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-11-10 10:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-10  9:25 [PATCH] random: Use 64 bits from get_random_long() in extract_crng() Sandy Harris
2021-11-10 10:55 ` Jason A. Donenfeld

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).