- x = mprand(MP_NEW, pl - ql, r, 1);
+ x = mprand(x, pl - ql - 1, r, 1);
x = pgen("v", x, x, ev, ec,
steps, pgen_filter, &pf,
rabin_iters(pl - ql), pgen_test, &rb);
if (!x)
goto fail_0;
x = pgen("v", x, x, ev, ec,
steps, pgen_filter, &pf,
rabin_iters(pl - ql), pgen_test, &rb);
if (!x)
goto fail_0;
- x = mprand(MP_NEW, ql, r, 1);
+ do {
+ x = mprand(x, ql, r, 1);
+ t = mp_mul(t, x, sp[1].mul);
+ } while (mp_bits(t) != pl);
dp->q = pgen("p", MP_NEW, x, ev, ec,
steps, pgen_simulstep, &ss,
rabin_iters(ql), pgen_simultest, &ss);
mp_drop(sp[1].mul);
dp->q = pgen("p", MP_NEW, x, ev, ec,
steps, pgen_simulstep, &ss,
rabin_iters(ql), pgen_simultest, &ss);
mp_drop(sp[1].mul);
0, prim_step, &i, 1, prim_test, &pc);
mpmont_destroy(&pc.mm);
if (!dp->g)
0, prim_step, &i, 1, prim_test, &pc);
mpmont_destroy(&pc.mm);
if (!dp->g)