I have a suspicion that not doing this can do bad things to the
probability of returning a non-prime.
rc = PGEN_TRY;
break;
case PGEN_TRY: {
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);
rc = rabin_test(&c->p, m);
+ if (rc == PGEN_PASS) {
+ m = mprand_range(m, c->c.q.m, ev->r, 0);
rc = rabin_test(&c->q, m);
rc = rabin_test(&c->q, m);
mp_drop(m);
} break;
case PGEN_DONE:
mp_drop(m);
} break;
case PGEN_DONE: