summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorStephan Mueller <smueller@chronox.de>2016-08-23 10:09:32 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2016-08-24 21:07:10 +0800
commite09287dfef280dbe9f9aa1faa7a125957e9b7fbb (patch)
treeb6004f2e25b55f8addea90516cbe08c3dcb48df7 /crypto
parent59df87c3498a34283baf185ab0396f4742acdee5 (diff)
downloadlinux-e09287dfef280dbe9f9aa1faa7a125957e9b7fbb.tar.gz
linux-e09287dfef280dbe9f9aa1faa7a125957e9b7fbb.tar.bz2
linux-e09287dfef280dbe9f9aa1faa7a125957e9b7fbb.zip
crypto: rsa - allow keys >= 2048 bits in FIPS mode
With a public notification, NIST now allows the use of RSA keys with a modulus >= 2048 bits. The new rule allows any modulus size >= 2048 bits provided that either 2048 or 3072 bits are supported at least so that the entire RSA implementation can be CAVS tested. This patch fixes the inability to boot the kernel in FIPS mode, because certs/x509.genkey defines a 4096 bit RSA key per default. This key causes the RSA signature verification to fail in FIPS mode without the patch below. Signed-off-by: Stephan Mueller <smueller@chronox.de> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/rsa_helper.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/rsa_helper.c b/crypto/rsa_helper.c
index 4df6451e7543..0b66dc824606 100644
--- a/crypto/rsa_helper.c
+++ b/crypto/rsa_helper.c
@@ -35,8 +35,8 @@ int rsa_get_n(void *context, size_t hdrlen, unsigned char tag,
n_sz--;
}
- /* In FIPS mode only allow key size 2K & 3K */
- if (n_sz != 256 && n_sz != 384) {
+ /* In FIPS mode only allow key size 2K and higher */
+ if (n_sz < 256) {
pr_err("RSA: key size not allowed in FIPS mode\n");
return -EINVAL;
}