diff mbox series

crypto/fsl: Clear the memory when blob decapsulation fails

Message ID 20220415112234.2583506-1-gaurav.jain@nxp.com
State Accepted
Commit cc84edddd17ed6eedbd17ad1ab9672854ec5fa27
Delegated to: Stefano Babic
Headers show
Series crypto/fsl: Clear the memory when blob decapsulation fails | expand

Commit Message

Gaurav Jain April 15, 2022, 11:22 a.m. UTC
issue: blob decapsulation operation store the decrypted data
       in memory even if ICV check failed.

fix: clear the blob data output memory.

Fixes: c5de15cbc8 (crypto/fsl: Add command for encapsulating/decapsulating blobs)
Signed-off-by: Gaurav Jain <gaurav.jain@nxp.com>
Reviewed-by: Kshitiz Varshney <kshitiz.varshney@nxp.com>
Tested-by: Kshitiz Varshney <kshitiz.varshney@nxp.com>
---
 drivers/crypto/fsl/fsl_blob.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Fabio Estevam April 16, 2022, 1:35 p.m. UTC | #1
On Fri, Apr 15, 2022 at 8:23 AM Gaurav Jain <gaurav.jain@nxp.com> wrote:
>
> issue: blob decapsulation operation store the decrypted data
>        in memory even if ICV check failed.
>
> fix: clear the blob data output memory.
>
> Fixes: c5de15cbc8 (crypto/fsl: Add command for encapsulating/decapsulating blobs)
> Signed-off-by: Gaurav Jain <gaurav.jain@nxp.com>
> Reviewed-by: Kshitiz Varshney <kshitiz.varshney@nxp.com>
> Tested-by: Kshitiz Varshney <kshitiz.varshney@nxp.com>

Reviewed-by: Fabio Estevam <festevam@denx.de>
Stefano Babic April 22, 2022, 8:46 a.m. UTC | #2
> issue: blob decapsulation operation store the decrypted data
>        in memory even if ICV check failed.
> fix: clear the blob data output memory.
> Fixes: c5de15cbc8 (crypto/fsl: Add command for encapsulating/decapsulating blobs)
> Signed-off-by: Gaurav Jain <gaurav.jain@nxp.com>
> Reviewed-by: Kshitiz Varshney <kshitiz.varshney@nxp.com>
> Tested-by: Kshitiz Varshney <kshitiz.varshney@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@denx.de>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic
diff mbox series

Patch

diff --git a/drivers/crypto/fsl/fsl_blob.c b/drivers/crypto/fsl/fsl_blob.c
index e8202cc569..9b6e4bca06 100644
--- a/drivers/crypto/fsl/fsl_blob.c
+++ b/drivers/crypto/fsl/fsl_blob.c
@@ -71,6 +71,10 @@  int blob_decap(u8 *key_mod, u8 *src, u8 *dst, u32 len)
 	ret = run_descriptor_jr(desc);
 
 	if (ret) {
+		/* clear the blob data output buffer */
+		memset(dst, 0x00, len);
+		size = ALIGN(len, ARCH_DMA_MINALIGN);
+		flush_dcache_range((unsigned long)dst, (unsigned long)dst + size);
 		printf("Error in blob decapsulation: %d\n", ret);
 	} else {
 		size = ALIGN(len, ARCH_DMA_MINALIGN);