Lines Matching refs:dh
172 dh_pub_is_valid(DH *dh, BIGNUM *dh_pub) in dh_pub_is_valid() argument
185 debug("bits set: %d/%d", bits_set, BN_num_bits(dh->p)); in dh_pub_is_valid()
188 if (bits_set > 1 && (BN_cmp(dh_pub, dh->p) == -1)) in dh_pub_is_valid()
190 log("invalid public DH value (%d/%d)", bits_set, BN_num_bits(dh->p)); in dh_pub_is_valid()
195 dh_gen_key(DH *dh, int need) in dh_gen_key() argument
199 if (dh->p == NULL) in dh_gen_key()
201 if (2*need >= BN_num_bits(dh->p)) in dh_gen_key()
203 BN_num_bits(dh->p), 2*need); in dh_gen_key()
205 if (dh->priv_key != NULL) in dh_gen_key()
206 BN_clear_free(dh->priv_key); in dh_gen_key()
207 if ((dh->priv_key = BN_new()) == NULL) in dh_gen_key()
210 if (!BN_rand(dh->priv_key, 2*need, 0, 0)) in dh_gen_key()
212 if (DH_generate_key(dh) == 0) in dh_gen_key()
214 for (i = 0; i <= BN_num_bits(dh->priv_key); i++) in dh_gen_key()
215 if (BN_is_bit_set(dh->priv_key, i)) in dh_gen_key()
218 bits_set, BN_num_bits(dh->priv_key)); in dh_gen_key()
221 } while (!dh_pub_is_valid(dh, dh->pub_key)); in dh_gen_key()
227 DH *dh; in dh_new_group_asc() local
229 if ((dh = DH_new()) == NULL) in dh_new_group_asc()
232 if (BN_hex2bn(&dh->p, modulus) == 0) in dh_new_group_asc()
234 if (BN_hex2bn(&dh->g, gen) == 0) in dh_new_group_asc()
237 return (dh); in dh_new_group_asc()
248 DH *dh; in dh_new_group() local
250 if ((dh = DH_new()) == NULL) in dh_new_group()
252 dh->p = modulus; in dh_new_group()
253 dh->g = gen; in dh_new_group()
255 return (dh); in dh_new_group()