Commit 4bab432cecd5e2d142ae3f1d8725cde7c3ae6b38

Steffen Jaeckel 2019-10-23T18:18:02

Merge pull request #397 from libtom/bbs-style mp_prime_next_prime: use mp_bool for bbs_style

diff --git a/demo/test.c b/demo/test.c
index bfe934b..0f0152a 100644
--- a/demo/test.c
+++ b/demo/test.c
@@ -1061,7 +1061,7 @@ static int test_mp_prime_next_prime(void)
 
    /* edge cases */
    mp_set(&a, 0u);
-   if ((err = mp_prime_next_prime(&a, 5, 0)) != MP_OKAY) {
+   if ((err = mp_prime_next_prime(&a, 5, MP_NO)) != MP_OKAY) {
       goto LBL_ERR;
    }
    if (mp_cmp_d(&a, 2u) != MP_EQ) {
@@ -1072,7 +1072,7 @@ static int test_mp_prime_next_prime(void)
    }
 
    mp_set(&a, 0u);
-   if ((err = mp_prime_next_prime(&a, 5, 1)) != MP_OKAY) {
+   if ((err = mp_prime_next_prime(&a, 5, MP_YES)) != MP_OKAY) {
       goto LBL_ERR;
    }
    if (mp_cmp_d(&a, 3u) != MP_EQ) {
@@ -1083,7 +1083,7 @@ static int test_mp_prime_next_prime(void)
    }
 
    mp_set(&a, 2u);
-   if ((err = mp_prime_next_prime(&a, 5, 0)) != MP_OKAY) {
+   if ((err = mp_prime_next_prime(&a, 5, MP_NO)) != MP_OKAY) {
       goto LBL_ERR;
    }
    if (mp_cmp_d(&a, 3u) != MP_EQ) {
@@ -1094,7 +1094,7 @@ static int test_mp_prime_next_prime(void)
    }
 
    mp_set(&a, 2u);
-   if ((err = mp_prime_next_prime(&a, 5, 1)) != MP_OKAY) {
+   if ((err = mp_prime_next_prime(&a, 5, MP_YES)) != MP_OKAY) {
       goto LBL_ERR;
    }
    if (mp_cmp_d(&a, 3u) != MP_EQ) {
@@ -1104,7 +1104,7 @@ static int test_mp_prime_next_prime(void)
       goto LBL_ERR;
    }
    mp_set(&a, 8);
-   if ((err = mp_prime_next_prime(&a, 5, 1)) != MP_OKAY) {
+   if ((err = mp_prime_next_prime(&a, 5, MP_YES)) != MP_OKAY) {
       goto LBL_ERR;
    }
    if (mp_cmp_d(&a, 11u) != MP_EQ) {
@@ -1130,7 +1130,7 @@ static int test_mp_prime_next_prime(void)
    if ((err = mp_add(&b, &c, &b)) != MP_OKAY) {
       goto LBL_ERR;
    }
-   if ((err = mp_prime_next_prime(&a, 5, 0)) != MP_OKAY) {
+   if ((err = mp_prime_next_prime(&a, 5, MP_NO)) != MP_OKAY) {
       goto LBL_ERR;
    }
    if (mp_cmp(&a, &b) != MP_EQ) {
@@ -1160,7 +1160,7 @@ static int test_mp_prime_next_prime(void)
    if ((err = mp_add(&b, &c, &b)) != MP_OKAY) {
       goto LBL_ERR;
    }
-   if ((err = mp_prime_next_prime(&a, 5, 1)) != MP_OKAY) {
+   if ((err = mp_prime_next_prime(&a, 5, MP_YES)) != MP_OKAY) {
       goto LBL_ERR;
    }
    if (mp_cmp(&a, &b) != MP_EQ) {
@@ -1284,7 +1284,7 @@ static int test_mp_read_radix(void)
       char *s = fgets(buf, sizeof(buf), stdin);
       if (s != buf) break;
       mp_read_radix(&a, buf, 10);
-      mp_prime_next_prime(&a, 5, 1);
+      mp_prime_next_prime(&a, 5, MP_YES);
       mp_to_radix(&a, buf, sizeof(buf), NULL, 10);
       printf("%s, %lu\n", buf, (unsigned long)a.dp[0] & 3uL);
    }
diff --git a/mp_prime_next_prime.c b/mp_prime_next_prime.c
index f8b2212..3256e37 100644
--- a/mp_prime_next_prime.c
+++ b/mp_prime_next_prime.c
@@ -6,9 +6,9 @@
 /* finds the next prime after the number "a" using "t" trials
  * of Miller-Rabin.
  *
- * bbs_style = 1 means the prime must be congruent to 3 mod 4
+ * bbs_style = MP_YES means the prime must be congruent to 3 mod 4
  */
-mp_err mp_prime_next_prime(mp_int *a, int t, int bbs_style)
+mp_err mp_prime_next_prime(mp_int *a, int t, mp_bool bbs_style)
 {
    int      x, y;
    mp_ord   cmp;
@@ -29,7 +29,7 @@ mp_err mp_prime_next_prime(mp_int *a, int t, int bbs_style)
             continue;
          }
          if (cmp != MP_GT) {
-            if ((bbs_style == 1) && ((s_mp_prime_tab[x] & 3u) != 3u)) {
+            if ((bbs_style == MP_YES) && ((s_mp_prime_tab[x] & 3u) != 3u)) {
                /* try again until we get a prime congruent to 3 mod 4 */
                continue;
             } else {
@@ -42,7 +42,7 @@ mp_err mp_prime_next_prime(mp_int *a, int t, int bbs_style)
    }
 
    /* generate a prime congruent to 3 mod 4 or 1/3 mod 4? */
-   if (bbs_style == 1) {
+   if (bbs_style == MP_YES) {
       kstep   = 4;
    } else {
       kstep   = 2;
@@ -50,7 +50,7 @@ mp_err mp_prime_next_prime(mp_int *a, int t, int bbs_style)
 
    /* at this point we will use a combination of a sieve and Miller-Rabin */
 
-   if (bbs_style == 1) {
+   if (bbs_style == MP_YES) {
       /* if a mod 4 != 3 subtract the correct value to make it so */
       if ((a->dp[0] & 3u) != 3u) {
          if ((err = mp_sub_d(a, (a->dp[0] & 3u) + 1u, a)) != MP_OKAY) {
diff --git a/tommath.h b/tommath.h
index a401be4..9421c6d 100644
--- a/tommath.h
+++ b/tommath.h
@@ -550,9 +550,9 @@ mp_err mp_prime_is_prime(const mp_int *a, int t, mp_bool *result) MP_WUR;
 /* finds the next prime after the number "a" using "t" trials
  * of Miller-Rabin.
  *
- * bbs_style = 1 means the prime must be congruent to 3 mod 4
+ * bbs_style = MP_YES means the prime must be congruent to 3 mod 4
  */
-mp_err mp_prime_next_prime(mp_int *a, int t, int bbs_style) MP_WUR;
+mp_err mp_prime_next_prime(mp_int *a, int t, mp_bool bbs_style) MP_WUR;
 
 /* makes a truly random prime of a given size (bits),
  *