aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAkhil R <akhilrajeev@nvidia.com>2025-02-24 14:46:08 +0530
committerHerbert Xu <herbert@gondor.apana.org.au>2025-03-08 16:22:24 +0800
commitbde558220866e74f19450e16d9a2472b488dfedf (patch)
tree559bf5a49421303205f6b5506f3959c9971f059e
parentce390d6c2675d2e24d798169a1a0e3cdbc076907 (diff)
downloadtip-bde558220866.tar.gz
crypto: tegra - Set IV to NULL explicitly for AES ECB
It may happen that the variable req->iv may have stale values or zero sized buffer by default and may end up getting used during encryption/decryption. This inturn may corrupt the results or break the operation. Set the req->iv variable to NULL explicitly for algorithms like AES-ECB where IV is not used. Fixes: 0880bb3b00c8 ("crypto: tegra - Add Tegra Security Engine driver") Signed-off-by: Akhil R <akhilrajeev@nvidia.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--drivers/crypto/tegra/tegra-se-aes.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/crypto/tegra/tegra-se-aes.c b/drivers/crypto/tegra/tegra-se-aes.c
index c3afa8344e4ad5..a1b469c3a55ba3 100644
--- a/drivers/crypto/tegra/tegra-se-aes.c
+++ b/drivers/crypto/tegra/tegra-se-aes.c
@@ -446,6 +446,9 @@ static int tegra_aes_crypt(struct skcipher_request *req, bool encrypt)
if (!req->cryptlen)
return 0;
+ if (ctx->alg == SE_ALG_ECB)
+ req->iv = NULL;
+
rctx->encrypt = encrypt;
rctx->config = tegra234_aes_cfg(ctx->alg, encrypt);
rctx->crypto_config = tegra234_aes_crypto_cfg(ctx->alg, encrypt);