kernel - Use add_buffer_randomness()
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 25 Feb 2014 23:07:40 +0000 (15:07 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 25 Feb 2014 23:07:40 +0000 (15:07 -0800)
* Use add_buffer_randomness() instead of add_true_randomness().  It will
  do a better job on the char array and also does a quick IBAA mix when it
  is through adding the buffer.

sys/dev/crypto/hifn/hifn7751.c
sys/dev/crypto/rndtest/rndtest.c
sys/dev/crypto/safe/safe.c
sys/dev/crypto/ubsec/ubsec.c

index fcdb587..1441c23 100644 (file)
@@ -256,9 +256,7 @@ hifn_partname(struct hifn_softc *sc)
 static void
 default_harvest(struct rndtest_state *rsp, void *buf, u_int count)
 {
-       u_int32_t *p = (u_int32_t *)buf;
-       for (count /= sizeof (u_int32_t); count; count--)
-               add_true_randomness(*p++);
+       add_buffer_randomness(buf, count);
 }
 
 static u_int
index b11a0c0..ee70d24 100644 (file)
@@ -138,13 +138,10 @@ rndtest_harvest(struct rndtest_state *rsp, void *buf, u_int len)
        /*
         * Only stir entropy that passes muster into the pool.
         */
-       if (rsp->rs_discard)
+       if (rsp->rs_discard) {
                rndstats.rst_discard += len;
-       else {
-               /* XXX verify buffer is word aligned */
-               u_int32_t *p = buf;
-               for (len /= sizeof (u_int32_t); len; len--)
-                       add_true_randomness(*p++);
+       } else {
+               add_buffer_randomness(buf, len);
        }
 }
 
index 648c7dd..3e10478 100644 (file)
@@ -210,10 +210,7 @@ safe_partname(struct safe_softc *sc)
 static void
 default_harvest(struct rndtest_state *rsp, void *buf, u_int count)
 {
-       uint32_t *p = (uint32_t *)buf;
-
-       for (count /= sizeof(uint32_t); count; count--)
-               add_true_randomness(*p++);
+       add_buffer_randomness(buf, count);
 }
 #endif /* SAFE_NO_RNG */
 
index e711c80..61101ff 100644 (file)
@@ -256,11 +256,9 @@ ubsec_partname(struct ubsec_softc *sc)
 }
 
 static void
-default_harvest(struct rndtest_state *rsp, void *buf, u_int count)
+default_harvest(struct rndtest_state *rsp __unused, void *buf, u_int count)
 {
-       u_int32_t *p = (u_int32_t *)buf;
-       for (count /= sizeof (u_int32_t); count; count--)
-               add_true_randomness(*p++);
+       add_buffer_randomness(buf, count);
 }
 
 static int