diff --git a/library/bignum.c b/library/bignum.c index 1422d5026..504f51bd4 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1480,7 +1480,7 @@ int mpi_exp_mod( mpi *X, const mpi *A, const mpi *E, const mpi *N, mpi *_RR ) for( i = 0; i < wsize - 1; i++ ) mpi_montmul( &W[j], &W[j], N, mm, &T ); - + /* * W[i] = W[i - 1] * W[1] */ @@ -1503,9 +1503,11 @@ int mpi_exp_mod( mpi *X, const mpi *A, const mpi *E, const mpi *N, mpi *_RR ) { if( bufsize == 0 ) { - if( nblimbs-- == 0 ) + if( nblimbs == 0 ) break; + nblimbs--; + bufsize = sizeof( t_uint ) << 3; }