int pgen_test(int rq, pgen_event *ev, void *p)
{
rabin *r = p;
+ mp *a = MP_NEW;
int rc = PGEN_ABORT;
switch (rq) {
rc = PGEN_TRY;
break;
case PGEN_TRY:
- if (!ev->tests)
- rc = rabin_rtest(r, MP_TWO);
- else {
- mp *a = mprand_range(MP_NEW, ev->m, ev->r, 0);
- rc = rabin_rtest(r, a);
- mp_drop(a);
- }
+ a = mprand_range(a, ev->m, ev->r, 0);
+ rc = rabin_rtest(r, a);
break;
case PGEN_DONE:
rabin_destroy(r);
break;
}
+ mp_drop(a);
return (rc);
}