65 static int generate_key(
DH *dh);
66 static int compute_key(
unsigned char *
key,
const BIGNUM *pub_key,
DH *dh);
67 static int dh_bn_mod_exp(
const DH *dh,
BIGNUM *r,
71 static int dh_init(
DH *dh);
72 static int dh_finish(
DH *dh);
117 static int generate_key(
DH *dh)
120 int generate_new_key=0;
124 BIGNUM *pub_key=NULL,*priv_key=NULL;
127 if (ctx == NULL)
goto err;
132 if (priv_key == NULL)
goto err;
141 if (pub_key == NULL)
goto err;
155 if (generate_new_key)
170 if (!
BN_rand(priv_key, l, 0, 0))
goto err;
187 if (!dh->
meth->
bn_mod_exp(dh, pub_key, dh->
g, prk, dh->
p, ctx, mont))
goto err;
203 static int compute_key(
unsigned char *
key,
const BIGNUM *pub_key,
DH *dh)
218 if (ctx == NULL)
goto err;
263 static int dh_bn_mod_exp(
const DH *dh,
BIGNUM *r,
273 BN_ULONG A = a->
d[0];
281 static int dh_init(
DH *dh)
287 static int dh_finish(
DH *dh)