All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
To: linux-crypto@vger.kernel.org
Cc: herbert@gondor.apana.org.au, ebiggers@kernel.org,
	horia.geanta@nxp.com, Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: [PATCH v4 10/30] crypto: ccree/des - switch to new verification routines
Date: Mon,  5 Aug 2019 20:00:17 +0300	[thread overview]
Message-ID: <20190805170037.31330-11-ard.biesheuvel@linaro.org> (raw)
In-Reply-To: <20190805170037.31330-1-ard.biesheuvel@linaro.org>

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 drivers/crypto/ccree/cc_aead.c   | 13 +++----------
 drivers/crypto/ccree/cc_cipher.c | 15 ++++-----------
 2 files changed, 7 insertions(+), 21 deletions(-)

diff --git a/drivers/crypto/ccree/cc_aead.c b/drivers/crypto/ccree/cc_aead.c
index ce302adc76c7..8174ff1d93d6 100644
--- a/drivers/crypto/ccree/cc_aead.c
+++ b/drivers/crypto/ccree/cc_aead.c
@@ -6,7 +6,7 @@
 #include <crypto/algapi.h>
 #include <crypto/internal/aead.h>
 #include <crypto/authenc.h>
-#include <crypto/des.h>
+#include <crypto/internal/des.h>
 #include <linux/rtnetlink.h>
 #include "cc_driver.h"
 #include "cc_buffer_mgr.h"
@@ -648,7 +648,6 @@ static int cc_des3_aead_setkey(struct crypto_aead *aead, const u8 *key,
 			       unsigned int keylen)
 {
 	struct crypto_authenc_keys keys;
-	u32 flags;
 	int err;
 
 	err = crypto_authenc_extractkeys(&keys, key, keylen);
@@ -659,14 +658,8 @@ static int cc_des3_aead_setkey(struct crypto_aead *aead, const u8 *key,
 	if (keys.enckeylen != DES3_EDE_KEY_SIZE)
 		goto badkey;
 
-	flags = crypto_aead_get_flags(aead);
-	err = __des3_verify_key(&flags, keys.enckey);
-	if (unlikely(err)) {
-		crypto_aead_set_flags(aead, flags);
-		goto out;
-	}
-
-	err = cc_aead_setkey(aead, key, keylen);
+	err = crypto_des3_ede_verify_key(crypto_aead_tfm(aead), keys.enckey) ?:
+	      cc_aead_setkey(aead, key, keylen);
 
 out:
 	memzero_explicit(&keys, sizeof(keys));
diff --git a/drivers/crypto/ccree/cc_cipher.c b/drivers/crypto/ccree/cc_cipher.c
index 5b58226ea24d..dc30f5aeca10 100644
--- a/drivers/crypto/ccree/cc_cipher.c
+++ b/drivers/crypto/ccree/cc_cipher.c
@@ -5,7 +5,7 @@
 #include <linux/module.h>
 #include <crypto/algapi.h>
 #include <crypto/internal/skcipher.h>
-#include <crypto/des.h>
+#include <crypto/internal/des.h>
 #include <crypto/xts.h>
 #include <crypto/sm4.h>
 #include <crypto/scatterwalk.h>
@@ -411,16 +411,9 @@ static int cc_cipher_setkey(struct crypto_skcipher *sktfm, const u8 *key,
 	 * HW does the expansion on its own.
 	 */
 	if (ctx_p->flow_mode == S_DIN_to_DES) {
-		u32 tmp[DES3_EDE_EXPKEY_WORDS];
-		if (keylen == DES3_EDE_KEY_SIZE &&
-		    __des3_ede_setkey(tmp, &tfm->crt_flags, key,
-				      DES3_EDE_KEY_SIZE)) {
-			dev_dbg(dev, "weak 3DES key");
-			return -EINVAL;
-		} else if (!des_ekey(tmp, key) &&
-			   (crypto_tfm_get_flags(tfm) &
-			    CRYPTO_TFM_REQ_FORBID_WEAK_KEYS)) {
-			tfm->crt_flags |= CRYPTO_TFM_RES_WEAK_KEY;
+		if ((keylen == DES3_EDE_KEY_SIZE &&
+		     crypto_des3_ede_verify_key(tfm, key)) ||
+		    crypto_des_verify_key(tfm, key)) {
 			dev_dbg(dev, "weak DES key");
 			return -EINVAL;
 		}
-- 
2.17.1


  parent reply	other threads:[~2019-08-05 17:01 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-05 17:00 [PATCH v4 00/30] crypto: DES/3DES cleanup Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 01/30] crypto: des/3des_ede - add new helpers to verify keys Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 02/30] crypto: s390/des - switch to new verification routines Ard Biesheuvel
2019-08-06  6:12   ` Harald Freudenberger
2019-08-05 17:00 ` [PATCH v4 03/30] crypto: sparc/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 04/30] crypto: atmel/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 05/30] crypto: bcm/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 06/30] crypto: caam/des " Ard Biesheuvel
2019-08-15  4:54   ` Herbert Xu
2019-08-15  5:01     ` Ard Biesheuvel
2019-08-15  5:43       ` Ard Biesheuvel
2019-08-15 11:37         ` Herbert Xu
2019-08-05 17:00 ` [PATCH v4 07/30] crypto: cpt/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 08/30] crypto: nitrox/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 09/30] crypto: ccp/des " Ard Biesheuvel
2019-08-05 17:00 ` Ard Biesheuvel [this message]
2019-08-05 17:00 ` [PATCH v4 11/30] crypto: hifn/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 12/30] crypto: hisilicon/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 13/30] crypto: safexcel/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 14/30] crypto: ixp4xx/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 15/30] crypto: cesa/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 16/30] crypto: n2/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 17/30] crypto: omap/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 18/30] crypto: picoxcell/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 19/30] crypto: qce/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 20/30] crypto: rk3288/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 21/30] crypto: stm32/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 22/30] crypto: sun4i/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 23/30] crypto: talitos/des " Ard Biesheuvel
2019-08-05 20:00   ` Christophe Leroy
2019-08-05 17:00 ` [PATCH v4 24/30] crypto: ux500/des " Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 25/30] crypto: 3des - move verification out of exported routine Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 26/30] crypto: des - remove unused function Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 27/30] crypto: des - split off DES library from generic DES cipher driver Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 28/30] crypto: x86/des - switch to library interface Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 29/30] crypto: des - remove now unused __des3_ede_setkey() Ard Biesheuvel
2019-08-05 17:00 ` [PATCH v4 30/30] fs: cifs: move from the crypto cipher API to the new DES library interface Ard Biesheuvel

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=20190805170037.31330-11-ard.biesheuvel@linaro.org \
    --to=ard.biesheuvel@linaro.org \
    --cc=ebiggers@kernel.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=horia.geanta@nxp.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.