Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-9]: src/sys/kern Pull up following revision(s) (requested by rias...



details:   https://anonhg.NetBSD.org/src/rev/17d56c146432
branches:  netbsd-9
changeset: 963843:17d56c146432
user:      martin <martin%NetBSD.org@localhost>
date:      Thu Apr 30 15:34:06 2020 +0000

description:
Pull up following revision(s) (requested by riastradh in ticket #874):

        sys/kern/subr_cprng.c: revision 1.34

Disable rngtest on output of cprng_strong.

We already do a self-test for correctenss of Hash_DRBG output;
applying rngtest to it does nothing but give everyone warning fatigue
about spurious rngtest failures.

diffstat:

 sys/kern/subr_cprng.c |  50 ++------------------------------------------------
 1 files changed, 2 insertions(+), 48 deletions(-)

diffs (87 lines):

diff -r 474b4ad5fb9c -r 17d56c146432 sys/kern/subr_cprng.c
--- a/sys/kern/subr_cprng.c     Wed Apr 29 13:56:12 2020 +0000
+++ b/sys/kern/subr_cprng.c     Thu Apr 30 15:34:06 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: subr_cprng.c,v 1.30.2.2 2019/11/25 17:00:22 martin Exp $ */
+/*     $NetBSD: subr_cprng.c,v 1.30.2.3 2020/04/30 15:34:06 martin Exp $ */
 
 /*-
  * Copyright (c) 2011-2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_cprng.c,v 1.30.2.2 2019/11/25 17:00:22 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_cprng.c,v 1.30.2.3 2020/04/30 15:34:06 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -49,9 +49,6 @@
 #include <sys/systm.h>
 #include <sys/sysctl.h>
 #include <sys/rndsink.h>
-#if DIAGNOSTIC
-#include <sys/rngtest.h>
-#endif
 
 #include <crypto/nist_hash_drbg/nist_hash_drbg.h>
 
@@ -66,9 +63,6 @@
 static void    cprng_strong_reseed(struct cprng_strong *);
 static void    cprng_strong_reseed_from(struct cprng_strong *, const void *,
                    size_t, bool);
-#if DIAGNOSTIC
-static void    cprng_strong_rngtest(struct cprng_strong *);
-#endif
 
 static rndsink_callback_t      cprng_strong_rndsink_callback;
 
@@ -482,48 +476,8 @@
                /* XXX Fix nist_hash_drbg API so this can't happen.  */
                panic("cprng %s: NIST Hash_DRBG reseed failed",
                    cprng->cs_name);
-
-#if DIAGNOSTIC
-       cprng_strong_rngtest(cprng);
-#endif
 }
 
-#if DIAGNOSTIC
-/*
- * Generate some output and apply a statistical RNG test to it.
- */
-static void
-cprng_strong_rngtest(struct cprng_strong *cprng)
-{
-
-       KASSERT(mutex_owned(&cprng->cs_lock));
-
-       /* XXX Switch to a pool cache instead?  */
-       rngtest_t *const rt = kmem_intr_alloc(sizeof(*rt), KM_NOSLEEP);
-       if (rt == NULL)
-               /* XXX Warn?  */
-               return;
-
-       (void)strlcpy(rt->rt_name, cprng->cs_name, sizeof(rt->rt_name));
-
-       if (nist_hash_drbg_generate(&cprng->cs_drbg, rt->rt_b,
-               sizeof(rt->rt_b), NULL, 0))
-               panic("cprng %s: NIST Hash_DRBG failed after reseed",
-                   cprng->cs_name);
-
-       if (rngtest(rt)) {
-               printf("cprng %s: failed statistical RNG test\n",
-                   cprng->cs_name);
-               /* XXX Not clear that this does any good...  */
-               cprng->cs_ready = false;
-               rndsink_schedule(cprng->cs_rndsink);
-       }
-
-       explicit_memset(rt, 0, sizeof(*rt)); /* paranoia */
-       kmem_intr_free(rt, sizeof(*rt));
-}
-#endif
-
 /*
  * Feed entropy from an rndsink request into the CPRNG for which the
  * request was issued.



Home | Main Index | Thread Index | Old Index