Commit f02c5642 authored by Paul Bakker's avatar Paul Bakker
Browse files

- Allow R and A to point to same mpi in mpi_div_mpi

parent 36c4a678
...@@ -4,6 +4,8 @@ PolarSSL ChangeLog ...@@ -4,6 +4,8 @@ PolarSSL ChangeLog
Bugfixes Bugfixes
* Fixes for MSVC6 * Fixes for MSVC6
* Moved mpi_inv_mod() outside POLARSSL_GENPRIME * Moved mpi_inv_mod() outside POLARSSL_GENPRIME
* Allow R and A to point to same mpi in mpi_div_mpi (found by Manuel
Pégourié-Gonnard)
= Version 1.2.0 released 2012-10-31 = Version 1.2.0 released 2012-10-31
Features Features
......
...@@ -1195,9 +1195,9 @@ int mpi_div_mpi( mpi *Q, mpi *R, const mpi *A, const mpi *B ) ...@@ -1195,9 +1195,9 @@ int mpi_div_mpi( mpi *Q, mpi *R, const mpi *A, const mpi *B )
if( R != NULL ) if( R != NULL )
{ {
mpi_shift_r( &X, k ); mpi_shift_r( &X, k );
X.s = A->s;
mpi_copy( R, &X ); mpi_copy( R, &X );
R->s = A->s;
if( mpi_cmp_int( R, 0 ) == 0 ) if( mpi_cmp_int( R, 0 ) == 0 )
R->s = 1; R->s = 1;
} }
......
...@@ -514,21 +514,21 @@ END_CASE ...@@ -514,21 +514,21 @@ END_CASE
BEGIN_CASE BEGIN_CASE
mpi_mod_mpi:radix_X:input_X:radix_Y:input_Y:radix_A:input_A:div_result mpi_mod_mpi:radix_X:input_X:radix_Y:input_Y:radix_A:input_A:div_result
{ {
mpi X, Y, Z, A; mpi X, Y, A;
int res; int res;
mpi_init( &X ); mpi_init( &Y ); mpi_init( &Z ); mpi_init( &A ); mpi_init( &X ); mpi_init( &Y ); mpi_init( &A );
TEST_ASSERT( mpi_read_string( &X, {radix_X}, {input_X} ) == 0 ); TEST_ASSERT( mpi_read_string( &X, {radix_X}, {input_X} ) == 0 );
TEST_ASSERT( mpi_read_string( &Y, {radix_Y}, {input_Y} ) == 0 ); TEST_ASSERT( mpi_read_string( &Y, {radix_Y}, {input_Y} ) == 0 );
TEST_ASSERT( mpi_read_string( &A, {radix_A}, {input_A} ) == 0 ); TEST_ASSERT( mpi_read_string( &A, {radix_A}, {input_A} ) == 0 );
res = mpi_mod_mpi( &Z, &X, &Y ); res = mpi_mod_mpi( &X, &X, &Y );
TEST_ASSERT( res == {div_result} ); TEST_ASSERT( res == {div_result} );
if( res == 0 ) if( res == 0 )
{ {
TEST_ASSERT( mpi_cmp_mpi( &Z, &A ) == 0 ); TEST_ASSERT( mpi_cmp_mpi( &X, &A ) == 0 );
} }
mpi_free( &X ); mpi_free( &Y ); mpi_free( &Z ); mpi_free( &A ); mpi_free( &X ); mpi_free( &Y ); mpi_free( &A );
} }
END_CASE END_CASE
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment