Add buffer zeroization when ecp_write_key fails
Signed-off-by: Steven Cooreman <steven.cooreman@silabs.com>
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index 43f6205..d931a50 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -863,9 +863,9 @@
data,
PSA_BITS_TO_BYTES( ecp->grp.nbits ) ) );
if( status == PSA_SUCCESS )
- {
*data_length = PSA_BITS_TO_BYTES( ecp->grp.nbits );
- }
+ else
+ memset( data, 0, data_size );
return( status );
}
@@ -5974,8 +5974,10 @@
mbedtls_ecp_write_key( &ecp, slot->data.key.data, bytes ) );
mbedtls_ecp_keypair_free( &ecp );
- if( status != PSA_SUCCESS )
+ if( status != PSA_SUCCESS ) {
+ memset( slot->data.key.data, 0, bytes );
psa_remove_key_data_from_memory( slot );
+ }
return( status );
}
else