crypto: nitrox - Forbid 2-key 3DES in FIPS mode
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 11 Apr 2019 08:51:04 +0000 (16:51 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 18 Apr 2019 14:14:59 +0000 (22:14 +0800)
This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/cavium/nitrox/nitrox_skcipher.c

index d4935d6cefdd351522e277d8c82ca9071f098471..7e4a5e69085e9d334d7110e4ef73a32bc56904e4 100644 (file)
@@ -257,12 +257,8 @@ static int nitrox_aes_decrypt(struct skcipher_request *skreq)
 static int nitrox_3des_setkey(struct crypto_skcipher *cipher,
                              const u8 *key, unsigned int keylen)
 {
-       if (keylen != DES3_EDE_KEY_SIZE) {
-               crypto_skcipher_set_flags(cipher, CRYPTO_TFM_RES_BAD_KEY_LEN);
-               return -EINVAL;
-       }
-
-       return nitrox_skcipher_setkey(cipher, 0, key, keylen);
+       return unlikely(des3_verify_key(cipher, key)) ?:
+              nitrox_skcipher_setkey(cipher, 0, key, keylen);
 }
 
 static int nitrox_3des_encrypt(struct skcipher_request *skreq)