From 17fd82ffa1fbfb4e052ba40e54c5c8450feee3d4 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Thu, 7 Jun 2012 15:37:40 +0900 Subject: [PATCH] Revert "improve bignum" This reverts commit 3fa01ef7a98d12544b416f9338d401a8ad4e7da6. --- polarssl-0.14.0/library/bignum.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/polarssl-0.14.0/library/bignum.c b/polarssl-0.14.0/library/bignum.c index 05606ed..5ef7351 100644 --- a/polarssl-0.14.0/library/bignum.c +++ b/polarssl-0.14.0/library/bignum.c @@ -1813,10 +1813,13 @@ int mpi_gen_prime( mpi *X, int nbits, int dh_flag, { int ret, k, n; unsigned char *p; + mpi Y; if( nbits < 3 ) return( POLARSSL_ERR_MPI_BAD_INPUT_DATA ); + mpi_init( &Y, NULL ); + n = BITS_TO_LIMBS( nbits ); MPI_CHK( mpi_grow( X, n ) ); @@ -1837,16 +1840,13 @@ int mpi_gen_prime( mpi *X, int nbits, int dh_flag, while( ( ret = mpi_is_prime( X, f_rng, p_rng ) ) != 0 ) { if( ret != POLARSSL_ERR_MPI_NOT_ACCEPTABLE ) - break; + goto cleanup; MPI_CHK( mpi_add_int( X, X, 2 ) ); } } else { - mpi Y; - mpi_init( &Y, NULL ); - MPI_CHK( mpi_sub_int( &Y, X, 1 ) ); MPI_CHK( mpi_shift_r( &Y, 1 ) ); @@ -1858,20 +1858,22 @@ int mpi_gen_prime( mpi *X, int nbits, int dh_flag, break; if( ret != POLARSSL_ERR_MPI_NOT_ACCEPTABLE ) - break; + goto cleanup; } if( ret != POLARSSL_ERR_MPI_NOT_ACCEPTABLE ) - break; + goto cleanup; MPI_CHK( mpi_add_int( &Y, X, 1 ) ); MPI_CHK( mpi_add_int( X, X, 2 ) ); MPI_CHK( mpi_shift_r( &Y, 1 ) ); } - - mpi_free( &Y, NULL ); } +cleanup: + + mpi_free( &Y, NULL ); + return( ret ); }