pf.step = 2;
x = mprand(x, pl - ql - 1, r, 1);
x = pgen("v", x, x, ev, ec,
pf.step = 2;
x = mprand(x, pl - ql - 1, r, 1);
x = pgen("v", x, x, ev, ec,
sp[0].add = MP_ZERO; sp[0].mul = MP_ONE; sp[0].f = 0;
sp[1].add = MP_ONE; sp[1].mul = x; sp[1].f = PGENF_KEEP; x = MP_NEW;
ss.step = MP_TWO; ss.v = sp; ss.n = N(sp);
sp[0].add = MP_ZERO; sp[0].mul = MP_ONE; sp[0].f = 0;
sp[1].add = MP_ONE; sp[1].mul = x; sp[1].f = PGENF_KEEP; x = MP_NEW;
ss.step = MP_TWO; ss.v = sp; ss.n = N(sp);
- x = mprand(x, 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);
dp->q = pgen("p", MP_NEW, x, ev, ec,
steps, pgen_simulstep, &ss,
rabin_iters(ql), pgen_simultest, &ss);