Lines Matching defs:dh
1 /* $OpenBSD: dh.c,v 1.55 2015/01/20 23:14:00 deraadt Exp $ */
31 #include <openssl/dh.h>
39 #include "dh.h"
216 dh_pub_is_valid(DH *dh, BIGNUM *dh_pub)
236 if (!BN_sub(tmp, dh->p, BN_value_one()) ||
247 debug2("bits set: %d/%d", bits_set, BN_num_bits(dh->p));
253 logit("invalid public DH value (%d/%d)", bits_set, BN_num_bits(dh->p));
258 dh_gen_key(DH *dh, int need)
262 if (need < 0 || dh->p == NULL ||
263 (pbits = BN_num_bits(dh->p)) <= 0 ||
270 dh->length = MIN(need * 2, pbits - 1);
272 if (DH_generate_key(dh) == 0 ||
273 !dh_pub_is_valid(dh, dh->pub_key)) {
274 BN_clear_free(dh->priv_key);
283 DH *dh;
285 if ((dh = DH_new()) == NULL)
287 if (BN_hex2bn(&dh->p, modulus) == 0 ||
288 BN_hex2bn(&dh->g, gen) == 0) {
289 DH_free(dh);
292 return (dh);
303 DH *dh;
305 if ((dh = DH_new()) == NULL)
307 dh->p = modulus;
308 dh->g = gen;
310 return (dh);