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: