unsigned nbits;
unsigned n = 0;
rsa_priv rp;
+ mp *e = 0;
pgev evt = { 0 };
- char *kwlist[] = { "class", "nbits", "event", "rng", "nsteps", 0 };
+ char *kwlist[] = { "class", "nbits", "event", "rng", "nsteps", "e", 0 };
PyObject *rc = 0;
- if (!PyArg_ParseTupleAndKeywords(arg, kw, "OO&|O&O&O&:generate", kwlist,
+ if (!PyArg_ParseTupleAndKeywords(arg, kw, "OO&|O&O&O&O&:generate", kwlist,
&me, convuint, &nbits, convpgev, &evt,
- convgrand, &r, convuint, &n))
+ convgrand, &r, convuint, &n,
+ convmp, &e))
goto end;
- if (rsa_gen(&rp, nbits, r, n, evt.proc, evt.ctx))
+ if (e) MP_COPY(e);
+ else e = mp_fromulong(MP_NEW, 65537);
+ if (rsa_gen_e(&rp, nbits, e, r, n, evt.proc, evt.ctx))
PGENERR;
rc = rsapriv_pywrap(&rp);
end:
droppgev(&evt);
+ mp_drop(e);
return (rc);
}