mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-08-01 10:06:53 +03:00
Merged ECP improvements
This commit is contained in:
@ -50,10 +50,10 @@ ECP small subtraction #9
|
||||
ecp_small_sub:0:"14":"11":0:"14":"36":0:27:30
|
||||
|
||||
ECP small multiplication negative
|
||||
ecp_small_mul:-1:0:0:0:POLARSSL_ERR_ECP_BAD_INPUT_DATA
|
||||
ecp_small_mul:-1:0:0:0:POLARSSL_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECP small multiplication #0
|
||||
ecp_small_mul:0:1:0:0:0
|
||||
ecp_small_mul:0:1:0:0:POLARSSL_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECP small multiplication #1
|
||||
ecp_small_mul:1:0:17:42:0
|
||||
@ -92,16 +92,10 @@ ECP small multiplication #12
|
||||
ecp_small_mul:12:0:17:05:0
|
||||
|
||||
ECP small multiplication #13
|
||||
ecp_small_mul:13:1:0:0:0
|
||||
ecp_small_mul:13:1:0:0:POLARSSL_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECP small multiplication #14
|
||||
ecp_small_mul:1:0:17:42:0
|
||||
|
||||
ECP small multiplication #15
|
||||
ecp_small_mul:2:0:20:01:0
|
||||
|
||||
ECP small multiplication too big
|
||||
ecp_small_mul:-1:0:0:0:POLARSSL_ERR_ECP_BAD_INPUT_DATA
|
||||
ecp_small_mul:14:0:17:42:POLARSSL_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECP small check pubkey #1
|
||||
ecp_small_check_pub:1:1:0:POLARSSL_ERR_ECP_INVALID_KEY
|
||||
|
@ -115,12 +115,15 @@ void ecp_small_mul( int m_str, int r_zero, int x_r, int y_r, int ret )
|
||||
|
||||
TEST_ASSERT( ecp_mul( &grp, &R, &m, &grp.G, NULL, NULL ) == ret );
|
||||
|
||||
if( r_zero )
|
||||
TEST_ASSERT( mpi_cmp_int( &R.Z, 0 ) == 0 );
|
||||
else
|
||||
if( ret == 0 )
|
||||
{
|
||||
TEST_ASSERT( mpi_cmp_int( &R.X, x_r ) == 0 );
|
||||
TEST_ASSERT( mpi_cmp_int( &R.Y, y_r ) == 0 );
|
||||
if( r_zero )
|
||||
TEST_ASSERT( mpi_cmp_int( &R.Z, 0 ) == 0 );
|
||||
else
|
||||
{
|
||||
TEST_ASSERT( mpi_cmp_int( &R.X, x_r ) == 0 );
|
||||
TEST_ASSERT( mpi_cmp_int( &R.Y, y_r ) == 0 );
|
||||
}
|
||||
}
|
||||
|
||||
/* try again with randomization */
|
||||
@ -129,12 +132,15 @@ void ecp_small_mul( int m_str, int r_zero, int x_r, int y_r, int ret )
|
||||
TEST_ASSERT( ecp_mul( &grp, &R, &m, &grp.G,
|
||||
&rnd_pseudo_rand, &rnd_info ) == ret );
|
||||
|
||||
if( r_zero )
|
||||
TEST_ASSERT( mpi_cmp_int( &R.Z, 0 ) == 0 );
|
||||
else
|
||||
if( ret == 0 )
|
||||
{
|
||||
TEST_ASSERT( mpi_cmp_int( &R.X, x_r ) == 0 );
|
||||
TEST_ASSERT( mpi_cmp_int( &R.Y, y_r ) == 0 );
|
||||
if( r_zero )
|
||||
TEST_ASSERT( mpi_cmp_int( &R.Z, 0 ) == 0 );
|
||||
else
|
||||
{
|
||||
TEST_ASSERT( mpi_cmp_int( &R.X, x_r ) == 0 );
|
||||
TEST_ASSERT( mpi_cmp_int( &R.Y, y_r ) == 0 );
|
||||
}
|
||||
}
|
||||
|
||||
ecp_group_free( &grp );
|
||||
|
@ -181,6 +181,48 @@ mpi_copy_self:14
|
||||
Base test mpi_swap #1
|
||||
mpi_swap:0:1500
|
||||
|
||||
Test mpi_shrink #1
|
||||
mpi_shrink:2:2:4:4
|
||||
|
||||
Test mpi_shrink #2
|
||||
mpi_shrink:4:2:4:4
|
||||
|
||||
Test mpi_shrink #3
|
||||
mpi_shrink:8:2:4:4
|
||||
|
||||
Test mpi_shrink #4
|
||||
mpi_shrink:8:4:4:4
|
||||
|
||||
Test mpi_shrink #5
|
||||
mpi_shrink:8:6:4:6
|
||||
|
||||
Test mpi_shrink #6
|
||||
mpi_shrink:4:2:0:2
|
||||
|
||||
Test mpi_shrink #7
|
||||
mpi_shrink:4:1:0:1
|
||||
|
||||
Test mpi_shrink #8
|
||||
mpi_shrink:4:0:0:1
|
||||
|
||||
Test mpi_safe_cond_assign #1
|
||||
mpi_safe_cond_assign:+1:"01":+1:"02"
|
||||
|
||||
Test mpi_safe_cond_assign #2
|
||||
mpi_safe_cond_assign:+1:"FF000000000000000001":+1:"02"
|
||||
|
||||
Test mpi_safe_cond_assign #3
|
||||
mpi_safe_cond_assign:+1:"01":+1:"FF000000000000000002"
|
||||
|
||||
Test mpi_safe_cond_assign #4
|
||||
mpi_safe_cond_assign:+1:"01":-1:"02"
|
||||
|
||||
Test mpi_safe_cond_assign #5
|
||||
mpi_safe_cond_assign:-1:"01":+1:"02"
|
||||
|
||||
Test mpi_safe_cond_assign #6
|
||||
mpi_safe_cond_assign:-1:"01":-1:"02"
|
||||
|
||||
Base test mpi_add_abs #1
|
||||
mpi_add_abs:10:"12345678":10:"642531":10:"12988209"
|
||||
|
||||
|
@ -292,6 +292,45 @@ void mpi_copy_self( int input_X )
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_shrink( int before, int used, int min, int after )
|
||||
{
|
||||
mpi X;
|
||||
mpi_init( &X );
|
||||
|
||||
TEST_ASSERT( mpi_grow( &X, before ) == 0 );
|
||||
TEST_ASSERT( used <= before );
|
||||
memset( X.p, 0x2a, used * sizeof( t_uint ) );
|
||||
TEST_ASSERT( mpi_shrink( &X, min ) == 0 );
|
||||
TEST_ASSERT( X.n == (size_t) after );
|
||||
|
||||
mpi_free( &X );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_safe_cond_assign( int x_sign, char *x_str,
|
||||
int y_sign, char *y_str )
|
||||
{
|
||||
mpi X, Y, XX;
|
||||
mpi_init( &X ); mpi_init( &Y ); mpi_init( &XX );
|
||||
|
||||
TEST_ASSERT( mpi_read_string( &X, 16, x_str ) == 0 );
|
||||
X.s = x_sign;
|
||||
TEST_ASSERT( mpi_read_string( &Y, 16, y_str ) == 0 );
|
||||
Y.s = y_sign;
|
||||
TEST_ASSERT( mpi_copy( &XX, &X ) == 0 );
|
||||
|
||||
TEST_ASSERT( mpi_safe_cond_assign( &X, &Y, 0 ) == 0 );
|
||||
TEST_ASSERT( mpi_cmp_mpi( &X, &XX ) == 0 );
|
||||
|
||||
TEST_ASSERT( mpi_safe_cond_assign( &X, &Y, 1 ) == 0 );
|
||||
TEST_ASSERT( mpi_cmp_mpi( &X, &Y ) == 0 );
|
||||
|
||||
mpi_free( &X ); mpi_free( &Y ); mpi_free( &XX );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_swap( int input_X, int input_Y )
|
||||
{
|
||||
|
Reference in New Issue
Block a user