crypto: jitter - Add clarifying comments to Jitter Entropy RCT cutoff values
authorJoachim Vandersmissen <git@jvdsn.com>
Sun, 6 Aug 2023 19:19:03 +0000 (14:19 -0500)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 11 Aug 2023 11:19:52 +0000 (19:19 +0800)
The RCT cutoff values are correct, but they don't exactly match the ones
one would expect when computing them using the formula in SP800-90B. This
discrepancy is due to the fact that the Jitter Entropy RCT starts at 1. To
avoid any confusion by future reviewers, add some comments and explicitly
subtract 1 from the "correct" cutoff values in the definitions.

Signed-off-by: Joachim Vandersmissen <git@jvdsn.com>
Reviewed-by: Stephan Mueller <smueller@chronox.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/jitterentropy.c

index c7d7f2c..fe9c233 100644 (file)
@@ -89,10 +89,14 @@ struct rand_data {
        unsigned int rct_count;                 /* Number of stuck values */
 
        /* Intermittent health test failure threshold of 2^-30 */
-#define JENT_RCT_CUTOFF                30      /* Taken from SP800-90B sec 4.4.1 */
-#define JENT_APT_CUTOFF                325     /* Taken from SP800-90B sec 4.4.2 */
+       /* From an SP800-90B perspective, this RCT cutoff value is equal to 31. */
+       /* However, our RCT implementation starts at 1, so we subtract 1 here. */
+#define JENT_RCT_CUTOFF                (31 - 1)        /* Taken from SP800-90B sec 4.4.1 */
+#define JENT_APT_CUTOFF                325                     /* Taken from SP800-90B sec 4.4.2 */
        /* Permanent health test failure threshold of 2^-60 */
-#define JENT_RCT_CUTOFF_PERMANENT      60
+       /* From an SP800-90B perspective, this RCT cutoff value is equal to 61. */
+       /* However, our RCT implementation starts at 1, so we subtract 1 here. */
+#define JENT_RCT_CUTOFF_PERMANENT      (61 - 1)
 #define JENT_APT_CUTOFF_PERMANENT      355
 #define JENT_APT_WINDOW_SIZE   512     /* Data window size */
        /* LSB of time stamp to process */