crypto: omap-aes - reject invalid input sizes for block modes

Block modes such as ECB and CBC only support input sizes that are
a round multiple of the block size, so align with the generic code
which returns -EINVAL when encountering inputs that violate this
rule.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Tero Kristo <t-kristo@ti.com>
Tested-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Ard Biesheuvel 2019-11-05 16:01:00 +02:00 committed by Herbert Xu
parent 6585cd3683
commit dbb326fd00
1 changed files with 3 additions and 0 deletions

View File

@ -525,6 +525,9 @@ static int omap_aes_crypt(struct skcipher_request *req, unsigned long mode)
struct omap_aes_dev *dd; struct omap_aes_dev *dd;
int ret; int ret;
if ((req->cryptlen % AES_BLOCK_SIZE) && !(mode & FLAGS_CTR))
return -EINVAL;
pr_debug("nbytes: %d, enc: %d, cbc: %d\n", req->cryptlen, pr_debug("nbytes: %d, enc: %d, cbc: %d\n", req->cryptlen,
!!(mode & FLAGS_ENCRYPT), !!(mode & FLAGS_ENCRYPT),
!!(mode & FLAGS_CBC)); !!(mode & FLAGS_CBC));