From: Atul Gupta Date: Thu, 2 May 2019 10:47:57 +0000 (-0700) Subject: crypto: chelsio - count incomplete block in IV X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=0a4491d3febe0b8c328870d1909fc91756970237;p=openwrt%2Fstaging%2Fblogic.git crypto: chelsio - count incomplete block in IV The partial block should count as one and appropriately appended to IV. eg 499B for AES CTR should count 32 block than 31 and correct count value is updated in iv out. Signed-off-by: Atul Gupta Signed-off-by: Herbert Xu --- diff --git a/drivers/crypto/chelsio/chcr_algo.c b/drivers/crypto/chelsio/chcr_algo.c index 73bbd499b6ff..177f572b9589 100644 --- a/drivers/crypto/chelsio/chcr_algo.c +++ b/drivers/crypto/chelsio/chcr_algo.c @@ -1094,8 +1094,8 @@ static int chcr_final_cipher_iv(struct ablkcipher_request *req, int ret = 0; if (subtype == CRYPTO_ALG_SUB_TYPE_CTR) - ctr_add_iv(iv, req->info, (reqctx->processed / - AES_BLOCK_SIZE)); + ctr_add_iv(iv, req->info, DIV_ROUND_UP(reqctx->processed, + AES_BLOCK_SIZE)); else if (subtype == CRYPTO_ALG_SUB_TYPE_XTS) ret = chcr_update_tweak(req, iv, 1); else if (subtype == CRYPTO_ALG_SUB_TYPE_CBC) {