public inbox for linux-crypto@vger.kernel.org
 help / color / mirror / Atom feed
From: Herbert Xu <herbert@gondor.apana.org.au>
To: Linux Crypto Mailing List <linux-crypto@vger.kernel.org>
Subject: [PATCH 2/24] crypto: s390 - Forbid 2-key 3DES in FIPS mode
Date: Thu, 11 Apr 2019 16:50:57 +0800	[thread overview]
Message-ID: <E1hEVQ9-0006lY-RV@gondobar> (raw)
In-Reply-To: 20190411084707.h56mz2z7jxusnr7u@gondor.apana.org.au

This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode.
   
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
---

 arch/s390/crypto/des_s390.c |   21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/arch/s390/crypto/des_s390.c b/arch/s390/crypto/des_s390.c
index 0d15383d0ff1..1f9ab24dc048 100644
--- a/arch/s390/crypto/des_s390.c
+++ b/arch/s390/crypto/des_s390.c
@@ -224,24 +224,11 @@ static int des3_setkey(struct crypto_tfm *tfm, const u8 *key,
 		       unsigned int key_len)
 {
 	struct s390_des_ctx *ctx = crypto_tfm_ctx(tfm);
+	int err;
 
-	if (!(crypto_memneq(key, &key[DES_KEY_SIZE], DES_KEY_SIZE) &&
-	    crypto_memneq(&key[DES_KEY_SIZE], &key[DES_KEY_SIZE * 2],
-			  DES_KEY_SIZE)) &&
-	    (tfm->crt_flags & CRYPTO_TFM_REQ_FORBID_WEAK_KEYS)) {
-		tfm->crt_flags |= CRYPTO_TFM_RES_WEAK_KEY;
-		return -EINVAL;
-	}
-
-	/* in fips mode, ensure k1 != k2 and k2 != k3 and k1 != k3 */
-	if (fips_enabled &&
-	    !(crypto_memneq(key, &key[DES_KEY_SIZE], DES_KEY_SIZE) &&
-	      crypto_memneq(&key[DES_KEY_SIZE], &key[DES_KEY_SIZE * 2],
-			    DES_KEY_SIZE) &&
-	      crypto_memneq(key, &key[DES_KEY_SIZE * 2], DES_KEY_SIZE))) {
-		tfm->crt_flags |= CRYPTO_TFM_RES_WEAK_KEY;
-		return -EINVAL;
-	}
+	err = __des3_verify_key(&tfm->crt_flags, key);
+	if (unlikely(err))
+		return err;
 
 	memcpy(ctx->key, key, key_len);
 	return 0;

  parent reply	other threads:[~2019-04-11  8:51 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-11  8:47 [PATCH 0/24] Forbid 2-key 3DES in FIPS mode Herbert Xu
2019-04-11  8:50 ` [PATCH 1/24] crypto: des_generic - Forbid 2-key in 3DES and add helpers Herbert Xu
2019-04-11  8:50 ` Herbert Xu [this message]
2019-04-11  8:50 ` [PATCH 3/24] crypto: sparc - Forbid 2-key 3DES in FIPS mode Herbert Xu
2019-04-11  8:51 ` [PATCH 4/24] crypto: atmel " Herbert Xu
2019-04-11  8:51 ` [PATCH 5/24] crypto: bcm " Herbert Xu
2019-04-11  8:51 ` [PATCH 6/24] crypto: caam " Herbert Xu
2019-04-16 12:52   ` Horia Geanta
2019-04-16 12:53   ` Iuliana Prodan
2019-04-11  8:51 ` [PATCH 7/24] crypto: cavium " Herbert Xu
2019-04-11  8:51 ` [PATCH 8/24] crypto: nitrox " Herbert Xu
2019-04-11  8:51 ` [PATCH 9/24] crypto: ccp " Herbert Xu
2019-04-11  8:51 ` [PATCH 10/24] crypto: ccree " Herbert Xu
2019-04-11  9:27   ` Stephan Mueller
2019-04-11  9:30     ` Herbert Xu
2019-04-11 11:07   ` Gilad Ben-Yossef
2019-04-11  8:51 ` [PATCH 11/24] crypto: hifn_795x " Herbert Xu
2019-04-11  8:51 ` [PATCH 12/24] crypto: hisilicon " Herbert Xu
2019-04-11  8:51 ` [PATCH 13/24] crypto: inside-secure " Herbert Xu
2019-04-11  8:51 ` [PATCH 14/24] crypto: ixp4xx " Herbert Xu
2019-04-11  8:51 ` [PATCH 15/24] crypto: marvell " Herbert Xu
2019-04-11  8:51 ` [PATCH 16/24] crypto: n2 " Herbert Xu
2019-04-11  8:51 ` [PATCH 17/24] crypto: omap " Herbert Xu
2019-04-11  8:51 ` [PATCH 18/24] crypto: picoxcell " Herbert Xu
2019-04-11  8:51 ` [PATCH 19/24] crypto: qce " Herbert Xu
2019-04-11  8:51 ` [PATCH 20/24] crypto: rockchip " Herbert Xu
2019-04-11  8:51 ` [PATCH 21/24] crypto: stm32 " Herbert Xu
2019-04-12 13:36   ` Lionel DEBIEVE
2019-04-13 13:50     ` Herbert Xu
2019-04-15  9:45       ` Lionel DEBIEVE
2019-04-11  8:51 ` [PATCH 22/24] crypto: sun4i-ss " Herbert Xu
2019-04-11 13:51   ` Corentin Labbe
2019-04-11  8:51 ` [PATCH 23/24] crypto: talitos " Herbert Xu
2019-04-11  8:51 ` [PATCH 24/24] crypto: ux500 " Herbert Xu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1hEVQ9-0006lY-RV@gondobar \
    --to=herbert@gondor.apana.org.au \
    --cc=linux-crypto@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox