Handle empty other secret when passed with input bytes
Signed-off-by: Przemek Stekiel <przemyslaw.stekiel@mobica.com>
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index e78fb9d..2634b56 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -5243,6 +5243,10 @@
memcpy( prf->other_secret, data, data_length );
prf->other_secret_length = data_length;
}
+ else
+ {
+ prf->other_secret_length = 0;
+ }
prf->state = PSA_TLS12_PRF_STATE_OTHER_KEY_SET;
@@ -5332,8 +5336,11 @@
{
*cur++ = MBEDTLS_BYTE_1( prf->other_secret_length );
*cur++ = MBEDTLS_BYTE_0( prf->other_secret_length );
- memcpy( cur, prf->other_secret, prf->other_secret_length );
- cur += prf->other_secret_length;
+ if ( prf->other_secret_length != 0 )
+ {
+ memcpy( cur, prf->other_secret, prf->other_secret_length );
+ cur += prf->other_secret_length;
+ }
}
else
{