certs: Limit MODULE_SIG_KEY_TYPE_ECDSA to SHA384 or SHA512
authorDimitri John Ledkov <dimitri.ledkov@canonical.com>
Tue, 10 Oct 2023 21:27:55 +0000 (22:27 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 20 Oct 2023 05:39:26 +0000 (13:39 +0800)
NIST FIPS 186-5 states that it is recommended that the security
strength associated with the bit length of n and the security strength
of the hash function be the same, or higher upon agreement. Given NIST
P384 curve is used, force using either SHA384 or SHA512.

Signed-off-by: Dimitri John Ledkov <dimitri.ledkov@canonical.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
certs/Kconfig

index 1f109b0708778bcc051b3840893dd1921acb92a5..84582de66b7dd3d199dbc57d41fed53263c17a8a 100644 (file)
@@ -30,9 +30,11 @@ config MODULE_SIG_KEY_TYPE_RSA
 config MODULE_SIG_KEY_TYPE_ECDSA
        bool "ECDSA"
        select CRYPTO_ECDSA
+       depends on MODULE_SIG_SHA384 || MODULE_SIG_SHA512
        help
-        Use an elliptic curve key (NIST P384) for module signing. Consider
-        using a strong hash like sha256 or sha384 for hashing modules.
+        Use an elliptic curve key (NIST P384) for module signing. Use
+        a strong hash of same or higher bit length, i.e. sha384 or
+        sha512 for hashing modules.
 
         Note: Remove all ECDSA signing keys, e.g. certs/signing_key.pem,
         when falling back to building Linux 5.14 and older kernels.