crypto: rsa - fix invalid check for keylen in fips mode
authorTadeusz Struk <[email protected]>
Tue, 21 Jul 2015 00:18:26 +0000 (17:18 -0700)
committerHerbert Xu <[email protected]>
Tue, 21 Jul 2015 12:19:36 +0000 (20:19 +0800)
The condition checking allowed key length was invalid.

Reported-by: Dan Carpenter <[email protected]>
Signed-off-by: Tadeusz Struk <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
crypto/rsa_helper.c

index 3e8e0a9e5a8e5e7a6ea89e5364db73d2a754b0a5..8d96ce969b4480601b125a14db850f5edda38ddc 100644 (file)
@@ -28,7 +28,7 @@ int rsa_get_n(void *context, size_t hdrlen, unsigned char tag,
                return -ENOMEM;
 
        /* In FIPS mode only allow key size 2K & 3K */
-       if (fips_enabled && (mpi_get_size(key->n) != 256 ||
+       if (fips_enabled && (mpi_get_size(key->n) != 256 &&
                             mpi_get_size(key->n) != 384)) {
                pr_err("RSA: key size not allowed in FIPS mode\n");
                mpi_free(key->n);
@@ -62,7 +62,7 @@ int rsa_get_d(void *context, size_t hdrlen, unsigned char tag,
                return -ENOMEM;
 
        /* In FIPS mode only allow key size 2K & 3K */
-       if (fips_enabled && (mpi_get_size(key->d) != 256 ||
+       if (fips_enabled && (mpi_get_size(key->d) != 256 &&
                             mpi_get_size(key->d) != 384)) {
                pr_err("RSA: key size not allowed in FIPS mode\n");
                mpi_free(key->d);