Skip to content

Commit bbad32b

Browse files
Akhil Rgregkh
authored andcommitted
crypto: tegra - Fix IV usage for AES ECB
[ Upstream commit 1ddaff4 ] Modifying the crypto_request turns out to be not the right way to handle the stale value issue with the IV. Though the IV is not used for AES ECB, it eventually get used in algorithms like LRW in the next step after AES ECB encryption/decryption. Setting req->iv to NULL breaks the implementation of such algorithms. Hence modify only the local reqctx to check for IV. Fixes: bde5582 ("crypto: tegra - Set IV to NULL explicitly for AES ECB") Signed-off-by: Akhil R <akhilrajeev@nvidia.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 9ebc205 commit bbad32b

File tree

1 file changed

+1
-4
lines changed

1 file changed

+1
-4
lines changed

drivers/crypto/tegra/tegra-se-aes.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ static int tegra_aes_do_one_req(struct crypto_engine *engine, void *areq)
263263
unsigned int cmdlen;
264264
int ret;
265265

266-
rctx->iv = (u32 *)req->iv;
266+
rctx->iv = (ctx->alg == SE_ALG_ECB) ? NULL : (u32 *)req->iv;
267267
rctx->len = req->cryptlen;
268268

269269
/* Pad input to AES Block size */
@@ -443,9 +443,6 @@ static int tegra_aes_crypt(struct skcipher_request *req, bool encrypt)
443443
if (!req->cryptlen)
444444
return 0;
445445

446-
if (ctx->alg == SE_ALG_ECB)
447-
req->iv = NULL;
448-
449446
rctx->encrypt = encrypt;
450447
rctx->config = tegra234_aes_cfg(ctx->alg, encrypt);
451448
rctx->crypto_config = tegra234_aes_crypto_cfg(ctx->alg, encrypt);

0 commit comments

Comments
 (0)