Lines Matching defs:pdhctx

83     PROV_DH_CTX *pdhctx;
88 pdhctx = OPENSSL_zalloc(sizeof(PROV_DH_CTX));
89 if (pdhctx == NULL)
91 pdhctx->libctx = PROV_LIBCTX_OF(provctx);
92 pdhctx->kdf_type = PROV_DH_KDF_NONE;
93 return pdhctx;
98 PROV_DH_CTX *pdhctx = (PROV_DH_CTX *)vpdhctx;
101 || pdhctx == NULL
105 DH_free(pdhctx->dh);
106 pdhctx->dh = vdh;
107 pdhctx->kdf_type = PROV_DH_KDF_NONE;
108 return dh_set_ctx_params(pdhctx, params)
109 && ossl_dh_check_key(pdhctx->libctx, vdh);
129 PROV_DH_CTX *pdhctx = (PROV_DH_CTX *)vpdhctx;
132 || pdhctx == NULL
134 || !dh_match_params(vdh, pdhctx->dh)
137 DH_free(pdhctx->dhpeer);
138 pdhctx->dhpeer = vdh;
146 PROV_DH_CTX *pdhctx = (PROV_DH_CTX *)vpdhctx;
151 if (pdhctx->dh == NULL || pdhctx->dhpeer == NULL) {
156 dhsize = (size_t)DH_size(pdhctx->dh);
166 DH_get0_key(pdhctx->dhpeer, &pub_key, NULL);
168 ret = DH_compute_key_padded(secret, pub_key, pdhctx->dh);
170 ret = DH_compute_key(secret, pub_key, pdhctx->dh);
181 PROV_DH_CTX *pdhctx = (PROV_DH_CTX *)vpdhctx;
187 *secretlen = pdhctx->kdf_outlen;
191 if (pdhctx->kdf_outlen > outlen) {
195 if (!dh_plain_derive(pdhctx, NULL, &stmplen, 0, 1))
201 if (!dh_plain_derive(pdhctx, stmp, &stmplen, stmplen, 1))
205 if (pdhctx->kdf_type == PROV_DH_KDF_X9_42_ASN1) {
206 if (!ossl_dh_kdf_X9_42_asn1(secret, pdhctx->kdf_outlen,
208 pdhctx->kdf_cekalg,
209 pdhctx->kdf_ukm,
210 pdhctx->kdf_ukmlen,
211 pdhctx->kdf_md,
212 pdhctx->libctx, NULL))
215 *secretlen = pdhctx->kdf_outlen;
225 PROV_DH_CTX *pdhctx = (PROV_DH_CTX *)vpdhctx;
230 switch (pdhctx->kdf_type) {
232 return dh_plain_derive(pdhctx, secret, psecretlen, outlen,
233 pdhctx->pad);
235 return dh_X9_42_kdf_derive(pdhctx, secret, psecretlen, outlen);
244 PROV_DH_CTX *pdhctx = (PROV_DH_CTX *)vpdhctx;
246 OPENSSL_free(pdhctx->kdf_cekalg);
247 DH_free(pdhctx->dh);
248 DH_free(pdhctx->dhpeer);
249 EVP_MD_free(pdhctx->kdf_md);
250 OPENSSL_clear_free(pdhctx->kdf_ukm, pdhctx->kdf_ukmlen);
252 OPENSSL_free(pdhctx);
311 PROV_DH_CTX *pdhctx = (PROV_DH_CTX *)vpdhctx;
317 if (pdhctx == NULL)
329 pdhctx->kdf_type = PROV_DH_KDF_NONE;
331 pdhctx->kdf_type = PROV_DH_KDF_X9_42_ASN1;
352 EVP_MD_free(pdhctx->kdf_md);
353 pdhctx->kdf_md = EVP_MD_fetch(pdhctx->libctx, name, mdprops);
354 if (!ossl_digest_is_allowed(pdhctx->libctx, pdhctx->kdf_md)) {
355 EVP_MD_free(pdhctx->kdf_md);
356 pdhctx->kdf_md = NULL;
358 if (pdhctx->kdf_md == NULL)
368 pdhctx->kdf_outlen = outlen;
376 OPENSSL_free(pdhctx->kdf_ukm);
377 pdhctx->kdf_ukm = NULL;
378 pdhctx->kdf_ukmlen = 0;
383 pdhctx->kdf_ukm = tmp_ukm;
384 pdhctx->kdf_ukmlen = tmp_ukmlen;
392 pdhctx->pad = pad ? 1 : 0;
399 OPENSSL_free(pdhctx->kdf_cekalg);
400 pdhctx->kdf_cekalg = NULL;
404 pdhctx->kdf_cekalg = OPENSSL_strdup(name);
405 if (pdhctx->kdf_cekalg == NULL)
447 PROV_DH_CTX *pdhctx = (PROV_DH_CTX *)vpdhctx;
450 if (pdhctx == NULL)
457 switch (pdhctx->kdf_type) {
474 && !OSSL_PARAM_set_utf8_string(p, pdhctx->kdf_md == NULL
476 : EVP_MD_get0_name(pdhctx->kdf_md))){
481 if (p != NULL && !OSSL_PARAM_set_size_t(p, pdhctx->kdf_outlen))
486 && !OSSL_PARAM_set_octet_ptr(p, pdhctx->kdf_ukm, pdhctx->kdf_ukmlen))
491 && !OSSL_PARAM_set_utf8_string(p, pdhctx->kdf_cekalg == NULL
492 ? "" : pdhctx->kdf_cekalg))