test_suite_pk: fix use of sig_len without initialization
In pk_sign_verify, if mbedtls_pk_sign() failed, sig_len was passed to mbedtls_pk_verify_restartable() without having been initialized. This worked only because in the only test case that expects signature to fail, the verify implementation doesn't look at sig_len before failing for the expected reason. The value of sig_len if sign() fails is undefined, so set sig_len to something sensible.
This commit is contained in:
parent
da252bed3c
commit
f85e4e67bd
@ -926,6 +926,8 @@ void pk_sign_verify( int type, int sign_ret, int verify_ret )
|
|||||||
TEST_ASSERT( mbedtls_pk_sign_restartable( &pk, MBEDTLS_MD_SHA256,
|
TEST_ASSERT( mbedtls_pk_sign_restartable( &pk, MBEDTLS_MD_SHA256,
|
||||||
hash, sizeof hash, sig, &sig_len,
|
hash, sizeof hash, sig, &sig_len,
|
||||||
rnd_std_rand, NULL, rs_ctx ) == sign_ret );
|
rnd_std_rand, NULL, rs_ctx ) == sign_ret );
|
||||||
|
if( sign_ret != 0 )
|
||||||
|
sig_len = MBEDTLS_PK_SIGNATURE_MAX_SIZE;
|
||||||
|
|
||||||
TEST_ASSERT( mbedtls_pk_verify( &pk, MBEDTLS_MD_SHA256,
|
TEST_ASSERT( mbedtls_pk_verify( &pk, MBEDTLS_MD_SHA256,
|
||||||
hash, sizeof hash, sig, sig_len ) == verify_ret );
|
hash, sizeof hash, sig, sig_len ) == verify_ret );
|
||||||
@ -945,6 +947,8 @@ void pk_sign_verify( int type, int sign_ret, int verify_ret )
|
|||||||
|
|
||||||
TEST_ASSERT( mbedtls_pk_sign( &pk, MBEDTLS_MD_SHA256, hash, sizeof hash,
|
TEST_ASSERT( mbedtls_pk_sign( &pk, MBEDTLS_MD_SHA256, hash, sizeof hash,
|
||||||
sig, &sig_len, rnd_std_rand, NULL ) == sign_ret );
|
sig, &sig_len, rnd_std_rand, NULL ) == sign_ret );
|
||||||
|
if( sign_ret != 0 )
|
||||||
|
sig_len = MBEDTLS_PK_SIGNATURE_MAX_SIZE;
|
||||||
|
|
||||||
TEST_ASSERT( mbedtls_pk_verify_restartable( &pk, MBEDTLS_MD_SHA256,
|
TEST_ASSERT( mbedtls_pk_verify_restartable( &pk, MBEDTLS_MD_SHA256,
|
||||||
hash, sizeof hash, sig, sig_len, rs_ctx ) == verify_ret );
|
hash, sizeof hash, sig, sig_len, rs_ctx ) == verify_ret );
|
||||||
|
Loading…
Reference in New Issue
Block a user