- Corrected is_prime() results for 0, 1 and 2 (found by code coverage tests)
diff --git a/ChangeLog b/ChangeLog
index 5dc686e..b72b055 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,8 @@
value in mpi_mod_mpi() and mpi_mod_int(). Resulting
change also affects mpi_write_string() (found by code
coverage tests).
+ * Corrected is_prime() results for 0, 1 and 2 (found by
+ code coverage tests).
= Version 0.11.1 released on 2009-05-17
* Fixed missing functionality for SHA-224, SHA-256, SHA384,
diff --git a/library/bignum.c b/library/bignum.c
index d1646f0..aa7230f 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -1683,7 +1683,11 @@
mpi W, R, T, A, RR;
unsigned char *p;
- if( mpi_cmp_int( X, 0 ) == 0 )
+ if( mpi_cmp_int( X, 0 ) == 0 ||
+ mpi_cmp_int( X, 1 ) == 0 )
+ return( POLARSSL_ERR_MPI_NOT_ACCEPTABLE );
+
+ if( mpi_cmp_int( X, 2 ) == 0 )
return( 0 );
mpi_init( &W, &R, &T, &A, &RR, NULL );