]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
crypto: tegra - Set IV to NULL explicitly for AES ECB
authorAkhil R <akhilrajeev@nvidia.com>
Mon, 24 Feb 2025 09:16:08 +0000 (14:46 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Apr 2025 12:39:18 +0000 (14:39 +0200)
[ Upstream commit bde558220866e74f19450e16d9a2472b488dfedf ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/tegra/tegra-se-aes.c

index 3308962f11c595bab570a92a201e9671569fbeb4..0ed0515e1ed54c07052be8751bd0ed76e0f77b47 100644 (file)
@@ -443,6 +443,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);