Lines Matching defs:dh

85 	REQUIRE(pub->keydata.dh != NULL);
86 REQUIRE(priv->keydata.dh != NULL);
88 dhpub = pub->keydata.dh;
89 dhpriv = priv->keydata.dh;
108 dh1 = key1->keydata.dh;
109 dh2 = key2->keydata.dh;
137 dh1 = key1->keydata.dh;
138 dh2 = key2->keydata.dh;
158 DH *dh = NULL;
165 dh = DH_new();
166 if (dh == NULL)
169 dh->p = &bn768;
171 dh->p = &bn1024;
173 dh->p = &bn1536;
174 dh->g = &bn2;
181 dh = DH_new();
182 if (dh == NULL)
187 if (!DH_generate_parameters_ex(dh, key->key_size, generator,
189 DH_free(dh);
195 dh = DH_generate_parameters(key->key_size, generator,
200 if (dh == NULL)
204 if (DH_generate_key(dh) == 0) {
205 DH_free(dh);
209 dh->flags &= ~DH_FLAG_CACHE_MONT_P;
211 key->keydata.dh = dh;
218 DH *dh = key->keydata.dh;
219 return (ISC_TF(dh != NULL && dh->priv_key != NULL));
224 DH *dh = key->keydata.dh;
226 if (dh == NULL)
229 if (dh->p == &bn768 || dh->p == &bn1024 || dh->p == &bn1536)
230 dh->p = NULL;
231 if (dh->g == &bn2)
232 dh->g = NULL;
233 DH_free(dh);
234 key->keydata.dh = NULL;
257 DH *dh;
261 REQUIRE(key->keydata.dh != NULL);
263 dh = key->keydata.dh;
267 if (dh->g == &bn2 &&
268 (dh->p == &bn768 || dh->p == &bn1024 || dh->p == &bn1536)) {
273 plen = BN_num_bytes(dh->p);
274 glen = BN_num_bytes(dh->g);
276 publen = BN_num_bytes(dh->pub_key);
283 if (dh->p == &bn768)
285 else if (dh->p == &bn1024)
291 BN_bn2bin(dh->p, r.base);
296 BN_bn2bin(dh->g, r.base);
300 BN_bn2bin(dh->pub_key, r.base);
310 DH *dh;
319 dh = DH_new();
320 if (dh == NULL)
322 dh->flags &= ~DH_FLAG_CACHE_MONT_P;
329 DH_free(dh);
334 DH_free(dh);
338 DH_free(dh);
348 dh->p = &bn768;
351 dh->p = &bn1024;
354 dh->p = &bn1536;
357 DH_free(dh);
362 dh->p = BN_bin2bn(r.base, plen, NULL);
372 DH_free(dh);
377 DH_free(dh);
382 dh->g = &bn2;
384 dh->g = BN_bin2bn(r.base, glen, NULL);
385 if (BN_cmp(dh->g, &bn2) == 0) {
386 BN_free(dh->g);
387 dh->g = &bn2;
390 DH_free(dh);
397 DH_free(dh);
400 dh->g = BN_bin2bn(r.base, glen, NULL);
405 DH_free(dh);
410 DH_free(dh);
413 dh->pub_key = BN_bin2bn(r.base, publen, NULL);
416 key->key_size = BN_num_bits(dh->p);
420 key->keydata.dh = dh;
428 DH *dh;
433 if (key->keydata.dh == NULL)
436 dh = key->keydata.dh;
440 bufs[i] = isc_mem_get(key->mctx, BN_num_bytes(dh->p));
450 priv.elements[i].length = BN_num_bytes(dh->p);
451 BN_bn2bin(dh->p, bufs[i]);
456 priv.elements[i].length = BN_num_bytes(dh->g);
457 BN_bn2bin(dh->g, bufs[i]);
462 priv.elements[i].length = BN_num_bytes(dh->priv_key);
463 BN_bn2bin(dh->priv_key, bufs[i]);
468 priv.elements[i].length = BN_num_bytes(dh->pub_key);
469 BN_bn2bin(dh->pub_key, bufs[i]);
479 isc_mem_put(key->mctx, bufs[i], BN_num_bytes(dh->p));
489 DH *dh = NULL;
500 dh = DH_new();
501 if (dh == NULL)
503 dh->flags &= ~DH_FLAG_CACHE_MONT_P;
504 key->keydata.dh = dh;
515 dh->p = bn;
518 dh->g = bn;
521 dh->priv_key = bn;
524 dh->pub_key = bn;
530 key->key_size = BN_num_bits(dh->p);
535 BN_cmp(dh->g, &bn2) == 0)
537 if (key->key_size == 768 && BN_cmp(dh->p, &bn768) == 0) {
538 BN_free(dh->p);
539 BN_free(dh->g);
540 dh->p = &bn768;
541 dh->g = &bn2;
543 BN_cmp(dh->p, &bn1024) == 0) {
544 BN_free(dh->p);
545 BN_free(dh->g);
546 dh->p = &bn1024;
547 dh->g = &bn2;
549 BN_cmp(dh->p, &bn1536) == 0) {
550 BN_free(dh->p);
551 BN_free(dh->g);
552 dh->p = &bn1536;
553 dh->g = &bn2;