crypto: remove CRYPTO_TFM_RES_BAD_BLOCK_LEN
authorEric Biggers <ebiggers@google.com>
Tue, 31 Dec 2019 03:19:35 +0000 (21:19 -0600)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 9 Jan 2020 03:30:52 +0000 (11:30 +0800)
The flag CRYPTO_TFM_RES_BAD_BLOCK_LEN is never checked for, and it's
only set by one driver.  And even that single driver's use is wrong
because the driver is setting the flag from ->encrypt() and ->decrypt()
with no locking, which is unsafe because ->encrypt() and ->decrypt() can
be executed by many threads in parallel on the same tfm.

Just remove this flag.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/ccree/cc_aead.c
drivers/crypto/ccree/cc_cipher.c
include/linux/crypto.h

index 64d318dc0d47b5e94efa98bf8648a2abfa5064a7..b0085db7e2114a7c2e5c5b0fc386bb7f47d73226 100644 (file)
@@ -1925,7 +1925,6 @@ static int cc_proc_aead(struct aead_request *req,
        if (validate_data_size(ctx, direct, req)) {
                dev_err(dev, "Unsupported crypt/assoc len %d/%d.\n",
                        req->cryptlen, areq_ctx->assoclen);
-               crypto_aead_set_flags(tfm, CRYPTO_TFM_RES_BAD_BLOCK_LEN);
                return -EINVAL;
        }
 
index 3112b58d0bb168b6f2ed86ca2d38c2702fd86f0e..61b9dcaa0c054eda5d068b3075a6d128a58f3249 100644 (file)
@@ -837,7 +837,6 @@ static int cc_cipher_process(struct skcipher_request *req,
        /* TODO: check data length according to mode */
        if (validate_data_size(ctx_p, nbytes)) {
                dev_err(dev, "Unsupported data size %d.\n", nbytes);
-               crypto_tfm_set_flags(tfm, CRYPTO_TFM_RES_BAD_BLOCK_LEN);
                rc = -EINVAL;
                goto exit_process;
        }
index 950b592947b2c77fc97bb5eaef973dd2c4a6ca61..719a301af3f2479874cf249a099221acc9c0a24f 100644 (file)
 #define CRYPTO_TFM_REQ_MAY_BACKLOG     0x00000400
 #define CRYPTO_TFM_RES_WEAK_KEY                0x00100000
 #define CRYPTO_TFM_RES_BAD_KEY_LEN     0x00200000
-#define CRYPTO_TFM_RES_BAD_BLOCK_LEN   0x00800000
 
 /*
  * Miscellaneous stuff.