Lines Matching refs:dh

45 #include <dh.h>
88 DH *dh;
90 dh = calloc(1, sizeof(*dh));
91 if (dh == NULL)
94 dh->references = 1;
98 dh->engine = engine;
100 dh->engine = ENGINE_get_default_DH();
103 if (dh->engine) {
104 dh->meth = ENGINE_get_DH(dh->engine);
105 if (dh->meth == NULL) {
107 free(dh);
112 if (dh->meth == NULL)
113 dh->meth = DH_get_default_method();
115 (*dh->meth->init)(dh);
117 return dh;
124 * @param dh object to be freed.
130 DH_free(DH *dh)
132 if (dh->references <= 0)
135 if (--dh->references > 0)
138 (*dh->meth->finish)(dh);
140 if (dh->engine)
141 ENGINE_finish(dh->engine);
144 free_if(dh->p);
145 free_if(dh->g);
146 free_if(dh->pub_key);
147 free_if(dh->priv_key);
148 free_if(dh->q);
149 free_if(dh->j);
150 free_if(dh->counter);
153 memset(dh, 0, sizeof(*dh));
154 free(dh);
161 * @param dh the object to increase the reference count too.
170 DH_up_ref(DH *dh)
172 return ++dh->references;
178 * @param dh The DH object to get the size from.
186 DH_size(const DH *dh)
188 return BN_num_bytes(dh->p);
194 * @param dh DH object.
204 DH_set_ex_data(DH *dh, int idx, void *data)
206 dh->ex_data.sk = data;
213 * @param dh DH object.
222 DH_get_ex_data(DH *dh, int idx)
224 return dh->ex_data.sk;
230 * @param dh The DH object to generate parameters for.
241 DH_generate_parameters_ex(DH *dh, int prime_len, int generator, BN_GENCB *cb)
243 if (dh->meth->generate_params)
244 return dh->meth->generate_params(dh, prime_len, generator, cb);
251 * @param dh the local peer DH parameters.
262 DH_check_pubkey(const DH *dh, const BIGNUM *pub_key, int *codes)
298 if (BN_cmp(sum, dh->p) >= 0)
309 if (BN_cmp(bn, dh->g) == 0) {
334 * Generate a new DH private-public key pair. The dh parameter must be
335 * allocted first with DH_new(). dh->p and dp->g must be set.
337 * @param dh dh parameter.
345 DH_generate_key(DH *dh)
347 return dh->meth->generate_key(dh);
356 * @param dh the dh key pair.
365 const BIGNUM *peer_pub_key, DH *dh)
374 if (!DH_check_pubkey(dh, peer_pub_key, &codes) || codes != 0)
377 return dh->meth->compute_key(shared_key, peer_pub_key, dh);
383 * @param dh dh parameter.
392 DH_set_method(DH *dh, const DH_METHOD *method)
394 (*dh->meth->finish)(dh);
395 if (dh->engine) {
396 ENGINE_finish(dh->engine);
397 dh->engine = NULL;
399 dh->meth = method;
400 (*dh->meth->init)(dh);
409 dh_null_generate_key(DH *dh)
415 dh_null_compute_key(unsigned char *shared,const BIGNUM *pub, DH *dh)
421 dh_null_init(DH *dh)
427 dh_null_finish(DH *dh)
433 dh_null_generate_params(DH *dh, int prime_num, int len, BN_GENCB *cb)
518 i2d_DHparams(DH *dh, unsigned char **pp)
526 if (bn2heim_int(dh->p, &data.prime) ||
527 bn2heim_int(dh->g, &data.base))