Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
---
 drivers/crypto/qce/ablkcipher.c | 23 ++++++--------------
 1 file changed, 7 insertions(+), 16 deletions(-)

diff --git a/drivers/crypto/qce/ablkcipher.c b/drivers/crypto/qce/ablkcipher.c
index 8d3493855a70..e646e90f93ed 100644
--- a/drivers/crypto/qce/ablkcipher.c
+++ b/drivers/crypto/qce/ablkcipher.c
@@ -15,7 +15,7 @@
 #include <linux/interrupt.h>
 #include <linux/types.h>
 #include <crypto/aes.h>
-#include <crypto/des.h>
+#include <crypto/internal/des.h>
 #include <crypto/internal/skcipher.h>
 
 #include "cipher.h"
@@ -177,12 +177,9 @@ static int qce_ablkcipher_setkey(struct crypto_ablkcipher 
*ablk, const u8 *key,
                        goto fallback;
                }
        } else if (IS_DES(flags)) {
-               u32 tmp[DES_EXPKEY_WORDS];
-
-               ret = des_ekey(tmp, key);
-               if (!ret && (crypto_ablkcipher_get_flags(ablk) &
-                            CRYPTO_TFM_REQ_FORBID_WEAK_KEYS))
-                       goto weakkey;
+               if (crypto_des_verify_key(crypto_ablkcipher_tfm(ablk), key,
+                                         keylen))
+                       return -EINVAL;
        }
 
        ctx->enc_keylen = keylen;
@@ -193,24 +190,18 @@ static int qce_ablkcipher_setkey(struct crypto_ablkcipher 
*ablk, const u8 *key,
        if (!ret)
                ctx->enc_keylen = keylen;
        return ret;
-weakkey:
-       crypto_ablkcipher_set_flags(ablk, CRYPTO_TFM_RES_WEAK_KEY);
-       return -EINVAL;
 }
 
 static int qce_des3_setkey(struct crypto_ablkcipher *ablk, const u8 *key,
                           unsigned int keylen)
 {
        struct qce_cipher_ctx *ctx = crypto_ablkcipher_ctx(ablk);
-       u32 flags;
        int err;
 
-       flags = crypto_ablkcipher_get_flags(ablk);
-       err = __des3_verify_key(&flags, key);
-       if (unlikely(err)) {
-               crypto_ablkcipher_set_flags(ablk, flags);
+       err = crypto_des3_ede_verify_key(crypto_ablkcipher_tfm(ablk), key,
+                                        keylen);
+       if (unlikely(err))
                return err;
-       }
 
        ctx->enc_keylen = keylen;
        memcpy(ctx->enc_key, key, keylen);
-- 
2.20.1

Reply via email to