- context, the `g' is the public base generator used in the negotiation and
- the `p' is the public prime used in the negotiation. Returns NULL on error
- or allocated DH context on success. */
-SilcDH silc_dh_alloc(SilcRng rng, SilcInt *g, SilcInt *p);
+ context, the `g' is the public base generator used in the negotiation,
+ the `p' is the public prime used in the negotiation and the `lpf' is
+ largest prime factor of p defined publicly as well. The `lpf' is optional
+ and if it is not supplied then the private values generated satifies
+ 0 < x < p - 1 instead of 0 < x < lpf. Returns NULL on error or allocated
+ DH context on success. */
+SilcDH silc_dh_alloc(SilcRng rng, SilcInt *g, SilcInt *p, SilcInt *lpf);