X-Git-Url: https://git.openssl.org/?a=blobdiff_plain;f=include%2Fcrypto%2Fdh.h;h=1ae2c2f0a324da4336e1ce86e5b517bc83812541;hb=738ee1819e3bb94723701fb505ce2971afe47a9b;hp=b1f37c6018bb34556a21539067faacf4ca171c40;hpb=dc8de3e6f1eed18617dc42d41dec6c6566c2ac0c;p=openssl.git diff --git a/include/crypto/dh.h b/include/crypto/dh.h index b1f37c6018..1ae2c2f0a3 100644 --- a/include/crypto/dh.h +++ b/include/crypto/dh.h @@ -7,11 +7,28 @@ * https://www.openssl.org/source/license.html */ +#include #include #include "internal/ffc.h" -int dh_compute_key(OPENSSL_CTX *ctx, unsigned char *key, const BIGNUM *pub_key, - DH *dh); -int dh_compute_key_padded(OPENSSL_CTX *ctx, unsigned char *key, - const BIGNUM *pub_key, DH *dh); +DH *dh_new_by_nid_with_libctx(OPENSSL_CTX *libctx, int nid); +DH *dh_new_with_libctx(OPENSSL_CTX *libctx); + +int dh_generate_ffc_parameters(DH *dh, int type, int pbits, + int qbits, EVP_MD *md, BN_GENCB *cb); +int dh_generate_public_key(BN_CTX *ctx, DH *dh, const BIGNUM *priv_key, + BIGNUM *pub_key); +int dh_get_named_group_uid_from_size(int pbits); +const char *dh_gen_type_id2name(int id); +void dh_cache_named_group(DH *dh); + FFC_PARAMS *dh_get0_params(DH *dh); +int dh_get0_nid(const DH *dh); +int dh_ffc_params_fromdata(DH *dh, const OSSL_PARAM params[]); +int dh_key_fromdata(DH *dh, const OSSL_PARAM params[]); + +int dh_check_pub_key_partial(const DH *dh, const BIGNUM *pub_key, int *ret); +int dh_check_priv_key(const DH *dh, const BIGNUM *priv_key, int *ret); +int dh_check_pairwise(DH *dh); + +const DH_METHOD *dh_get_method(const DH *dh);