From 191f16d5ddd637907ec076b11344512d1887a03a Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sat, 11 Feb 2006 12:41:26 +0000 Subject: [PATCH] pgen_safetest: Use a separate witness for each test. I have a suspicion that not doing this can do bad things to the probability of returning a non-prime. --- pgen-safe.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pgen-safe.c b/pgen-safe.c index 115f7b4..bd644dc 100644 --- a/pgen-safe.c +++ b/pgen-safe.c @@ -180,10 +180,12 @@ int pgen_safetest(int rq, pgen_event *ev, void *p) rc = PGEN_TRY; break; case PGEN_TRY: { - mp *m = mprand_range(MP_NEW, c->c.q.m, ev->r, 0); + mp *m = mprand_range(MP_NEW, c->c.p.m, ev->r, 0); rc = rabin_test(&c->p, m); - if (rc == PGEN_PASS) + if (rc == PGEN_PASS) { + m = mprand_range(m, c->c.q.m, ev->r, 0); rc = rabin_test(&c->q, m); + } mp_drop(m); } break; case PGEN_DONE: -- 2.11.0