From 41d13f4af8b6e18961b9fa2fd5401af8c4d449df Mon Sep 17 00:00:00 2001
From: Paul Bakker
Date: Tue, 16 Mar 2010 21:26:36 +0000
Subject: [PATCH] - Found algorithmic bug in mpi_is_prime()
---
ChangeLog | 2 ++
library/bignum.c | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index e13bf3e03b..3a63c44202 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,8 @@ Bug fixes
certificate in the chain in ssl_write_certificate() and
ssl_write_certificate_request() (Found by fatbob)
* Added small fixes for compiler warnings on a Mac
+ * Fixed algorithmic bug in mpi_is_prime() (Found by
+ Smbat Tonoyan)
= Version 0.12.1 released on 2009-10-04
Changes
diff --git a/library/bignum.c b/library/bignum.c
index 357dd4601d..fa9f1f1417 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -1720,8 +1720,8 @@ int mpi_is_prime( mpi *X, int (*f_rng)(void *), void *p_rng )
* W = |X| - 1
* R = W >> lsb( W )
*/
- s = mpi_lsb( &W );
MPI_CHK( mpi_sub_int( &W, X, 1 ) );
+ s = mpi_lsb( &W );
MPI_CHK( mpi_copy( &R, &W ) );
MPI_CHK( mpi_shift_r( &R, s ) );