mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-26 18:15:37 +01:00
Reduce stack usage of test_suite_pkcs1_v21
Reduce the stack usage of the `test_suite_pkcs1_v21` by reducing the size of the buffers used in the tests, to a reasonable big enough size, and change the size sent to the API to sizeof output.
This commit is contained in:
parent
fdc15bd581
commit
5b8f120fca
@ -14,7 +14,7 @@ void pkcs1_rsaes_oaep_encrypt( int mod, int radix_N, char * input_N,
|
||||
data_t * message_str, data_t * rnd_buf,
|
||||
data_t * result_hex_str, int result )
|
||||
{
|
||||
unsigned char output[1000];
|
||||
unsigned char output[256];
|
||||
mbedtls_rsa_context ctx;
|
||||
rnd_buf_info info;
|
||||
mbedtls_mpi N, E;
|
||||
@ -24,7 +24,7 @@ void pkcs1_rsaes_oaep_encrypt( int mod, int radix_N, char * input_N,
|
||||
|
||||
mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E );
|
||||
mbedtls_rsa_init( &ctx, MBEDTLS_RSA_PKCS_V21, hash );
|
||||
memset( output, 0x00, 1000 );
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &N, radix_N, input_N ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &E, radix_E, input_E ) == 0 );
|
||||
@ -54,7 +54,7 @@ void pkcs1_rsaes_oaep_decrypt( int mod, int radix_P, char * input_P,
|
||||
char * seed, data_t * message_str,
|
||||
int result )
|
||||
{
|
||||
unsigned char output[1000];
|
||||
unsigned char output[64];
|
||||
mbedtls_rsa_context ctx;
|
||||
size_t output_len;
|
||||
rnd_pseudo_info rnd_info;
|
||||
@ -66,7 +66,7 @@ void pkcs1_rsaes_oaep_decrypt( int mod, int radix_P, char * input_P,
|
||||
|
||||
mbedtls_rsa_init( &ctx, MBEDTLS_RSA_PKCS_V21, hash );
|
||||
|
||||
memset( output, 0x00, 1000 );
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
memset( &rnd_info, 0, sizeof( rnd_pseudo_info ) );
|
||||
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &P, radix_P, input_P ) == 0 );
|
||||
@ -81,11 +81,16 @@ void pkcs1_rsaes_oaep_decrypt( int mod, int radix_P, char * input_P,
|
||||
|
||||
if( result_hex_str->len == 0 )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_rsa_pkcs1_decrypt( &ctx, &rnd_pseudo_rand, &rnd_info, MBEDTLS_RSA_PRIVATE, &output_len, message_str->x, NULL, 0 ) == result );
|
||||
TEST_ASSERT( mbedtls_rsa_pkcs1_decrypt( &ctx, &rnd_pseudo_rand, &rnd_info,
|
||||
MBEDTLS_RSA_PRIVATE, &output_len,
|
||||
message_str->x, NULL, 0 ) == result );
|
||||
}
|
||||
else
|
||||
{
|
||||
TEST_ASSERT( mbedtls_rsa_pkcs1_decrypt( &ctx, &rnd_pseudo_rand, &rnd_info, MBEDTLS_RSA_PRIVATE, &output_len, message_str->x, output, 1000 ) == result );
|
||||
TEST_ASSERT( mbedtls_rsa_pkcs1_decrypt( &ctx, &rnd_pseudo_rand, &rnd_info,
|
||||
MBEDTLS_RSA_PRIVATE, &output_len,
|
||||
message_str->x, output,
|
||||
sizeof( output ) ) == result );
|
||||
if( result == 0 )
|
||||
{
|
||||
TEST_ASSERT( hexcmp( output, result_hex_str->x, output_len, result_hex_str->len ) == 0 );
|
||||
@ -106,8 +111,8 @@ void pkcs1_rsassa_pss_sign( int mod, int radix_P, char * input_P, int radix_Q,
|
||||
data_t * message_str, data_t * rnd_buf,
|
||||
data_t * result_hex_str, int result )
|
||||
{
|
||||
unsigned char hash_result[1000];
|
||||
unsigned char output[1000];
|
||||
unsigned char hash_result[MBEDTLS_MD_MAX_SIZE];
|
||||
unsigned char output[256];
|
||||
mbedtls_rsa_context ctx;
|
||||
rnd_buf_info info;
|
||||
mbedtls_mpi N, P, Q, E;
|
||||
@ -119,8 +124,8 @@ void pkcs1_rsassa_pss_sign( int mod, int radix_P, char * input_P, int radix_Q,
|
||||
mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E );
|
||||
mbedtls_rsa_init( &ctx, MBEDTLS_RSA_PKCS_V21, hash );
|
||||
|
||||
memset( hash_result, 0x00, 1000 );
|
||||
memset( output, 0x00, 1000 );
|
||||
memset( hash_result, 0x00, sizeof( hash_result ) );
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &P, radix_P, input_P ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &Q, radix_Q, input_Q ) == 0 );
|
||||
@ -157,14 +162,14 @@ void pkcs1_rsassa_pss_verify( int mod, int radix_N, char * input_N,
|
||||
int hash, data_t * message_str, char * salt,
|
||||
data_t * result_str, int result )
|
||||
{
|
||||
unsigned char hash_result[1000];
|
||||
unsigned char hash_result[MBEDTLS_MD_MAX_SIZE];
|
||||
mbedtls_rsa_context ctx;
|
||||
mbedtls_mpi N, E;
|
||||
((void) salt);
|
||||
|
||||
mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E );
|
||||
mbedtls_rsa_init( &ctx, MBEDTLS_RSA_PKCS_V21, hash );
|
||||
memset( hash_result, 0x00, 1000 );
|
||||
memset( hash_result, 0x00, sizeof( hash_result ) );
|
||||
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &N, radix_N, input_N ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &E, radix_E, input_E ) == 0 );
|
||||
@ -194,14 +199,14 @@ void pkcs1_rsassa_pss_verify_ext( int mod, int radix_N, char * input_N,
|
||||
data_t * result_str, int result_simple,
|
||||
int result_full )
|
||||
{
|
||||
unsigned char hash_result[1000];
|
||||
unsigned char hash_result[MBEDTLS_MD_MAX_SIZE];
|
||||
mbedtls_rsa_context ctx;
|
||||
size_t hash_len;
|
||||
mbedtls_mpi N, E;
|
||||
|
||||
mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E );
|
||||
mbedtls_rsa_init( &ctx, MBEDTLS_RSA_PKCS_V21, ctx_hash );
|
||||
memset( hash_result, 0x00, 1000 );
|
||||
memset( hash_result, 0x00, sizeof( hash_result ) );
|
||||
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &N, radix_N, input_N ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &E, radix_E, input_E ) == 0 );
|
||||
|
Loading…
Reference in New Issue
Block a user