]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
crypto: jitterentropy - Use default sha3 implementation
authorEric Biggers <ebiggers@kernel.org>
Sun, 26 Oct 2025 05:50:30 +0000 (22:50 -0700)
committerEric Biggers <ebiggers@kernel.org>
Thu, 6 Nov 2025 04:30:51 +0000 (20:30 -0800)
Make jitterentropy use "sha3-256" instead of "sha3-256-generic", as the
ability to explicitly request the generic code is going away.  It's not
worth providing a special generic API just for jitterentropy.  There are
many other solutions available to it, such as doing more iterations or
using a more effective jitter collection method.

Moreover, the status quo is that SHA-3 is quite slow anyway.  Currently
only arm64 and s390 have architecture-optimized SHA-3 code.  I'm not
familiar with the performance of the s390 one, but the arm64 one isn't
actually that much faster than the generic code anyway.

Note that jitterentropy should just use the library API instead of
crypto_shash.  But that belongs in a separate change later.

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Tested-by: Harald Freudenberger <freude@linux.ibm.com>
Link: https://lore.kernel.org/r/20251026055032.1413733-14-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
crypto/jitterentropy-kcapi.c

index a53de7affe8d1babfe4b50ba4b572e87f3354b26..7c880cf34c5233b539a414599cf82793e44054ce 100644 (file)
@@ -48,7 +48,7 @@
 
 #include "jitterentropy.h"
 
-#define JENT_CONDITIONING_HASH "sha3-256-generic"
+#define JENT_CONDITIONING_HASH "sha3-256"
 
 /***************************************************************************
  * Helper function
@@ -230,15 +230,7 @@ static int jent_kcapi_init(struct crypto_tfm *tfm)
 
        spin_lock_init(&rng->jent_lock);
 
-       /*
-        * Use SHA3-256 as conditioner. We allocate only the generic
-        * implementation as we are not interested in high-performance. The
-        * execution time of the SHA3 operation is measured and adds to the
-        * Jitter RNG's unpredictable behavior. If we have a slower hash
-        * implementation, the execution timing variations are larger. When
-        * using a fast implementation, we would need to call it more often
-        * as its variations are lower.
-        */
+       /* Use SHA3-256 as conditioner */
        hash = crypto_alloc_shash(JENT_CONDITIONING_HASH, 0, 0);
        if (IS_ERR(hash)) {
                pr_err("Cannot allocate conditioning digest\n");