crypto: atmel-aes - Add XTS input length constraint
authorTudor Ambarus <tudor.ambarus@microchip.com>
Tue, 20 Jul 2021 08:55:30 +0000 (11:55 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 30 Jul 2021 02:58:33 +0000 (10:58 +0800)
Input length smaller than block size does not make sense for XTS.

Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/atmel-aes.c

index 9c6d80d1d7a0ee9fbb656ec24b19522658d19127..4e9515e8dd25ba3c1bbaf7cca9bf0a1ce76279bc 100644 (file)
@@ -1091,6 +1091,9 @@ static int atmel_aes_crypt(struct skcipher_request *req, unsigned long mode)
        struct atmel_aes_dev *dd;
        u32 opmode = mode & AES_FLAGS_OPMODE_MASK;
 
+       if (opmode == AES_FLAGS_XTS && req->cryptlen < XTS_BLOCK_SIZE)
+               return -EINVAL;
+
        if ((opmode == AES_FLAGS_ECB || opmode == AES_FLAGS_CBC) &&
            !IS_ALIGNED(req->cryptlen, crypto_skcipher_blocksize(skcipher)))
                return -EINVAL;