72 #include <openssl/opensslconf.h>
74 #ifdef OPENSSL_NO_ECDH
75 #error ECDH is disabled.
78 #include <openssl/ec.h>
79 #include <openssl/ossl_typ.h>
80 #ifndef OPENSSL_NO_DEPRECATED
81 #include <openssl/bn.h>
88 const ECDH_METHOD *ECDH_OpenSSL(
void);
90 void ECDH_set_default_method(
const ECDH_METHOD *);
91 const ECDH_METHOD *ECDH_get_default_method(
void);
92 int ECDH_set_method(EC_KEY *,
const ECDH_METHOD *);
94 int ECDH_compute_key(
void *out,
size_t outlen,
const EC_POINT *pub_key, EC_KEY *ecdh,
95 void *(*KDF)(
const void *in,
size_t inlen,
void *out,
size_t *outlen));
97 int ECDH_get_ex_new_index(
long argl,
void *argp, CRYPTO_EX_new
98 *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
99 int ECDH_set_ex_data(EC_KEY *d,
int idx,
void *arg);
100 void *ECDH_get_ex_data(EC_KEY *d,
int idx);
107 void ERR_load_ECDH_strings(
void);
112 #define ECDH_F_ECDH_CHECK 102
113 #define ECDH_F_ECDH_COMPUTE_KEY 100
114 #define ECDH_F_ECDH_DATA_NEW_METHOD 101
117 #define ECDH_R_KDF_FAILED 102
118 #define ECDH_R_NON_FIPS_METHOD 103
119 #define ECDH_R_NO_PRIVATE_VALUE 100
120 #define ECDH_R_POINT_ARITHMETIC_FAILURE 101