X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fecdh%2Fecdh.h;h=539e212c10dad3bdd66abe177a8c19811434c078;hp=1ab131cde980a75ddb96faa429611d85b4c616fc;hb=daddd9a950e491c31f9500d5e570bc7eb96b2823;hpb=259cdf2af9d729f41df09a5d938bc998fd9f5b5f diff --git a/crypto/ecdh/ecdh.h b/crypto/ecdh/ecdh.h index 1ab131cde9..539e212c10 100644 --- a/crypto/ecdh/ecdh.h +++ b/crypto/ecdh/ecdh.h @@ -69,48 +69,23 @@ #ifndef HEADER_ECDH_H #define HEADER_ECDH_H +#include + #ifdef OPENSSL_NO_ECDH #error ECDH is disabled. #endif -#include #include #include +#ifndef OPENSSL_NO_DEPRECATED +#include +#endif #ifdef __cplusplus extern "C" { #endif -typedef struct ecdh_method -{ - const char *name; - int (*compute_key)(unsigned char *key,const EC_POINT *pub_key, EC_KEY *ecdh); -#if 0 - int (*init)(EC_KEY *eckey); - int (*finish)(EC_KEY *eckey); -#endif - int flags; - char *app_data; -} ECDH_METHOD; - -typedef struct ecdh_data_st { - /* EC_KEY_METH_DATA part */ - int (*init)(EC_KEY *); - void (*finish)(EC_KEY *); - /* method specific part */ - ENGINE *engine; - int flags; - const ECDH_METHOD *meth; - CRYPTO_EX_DATA ex_data; -} ECDH_DATA; - -/* ECDH_DATA functions */ -ECDH_DATA *ECDH_DATA_new(void); -ECDH_DATA *ECDH_DATA_new_method(ENGINE *); -void ECDH_DATA_free(ECDH_DATA *); - -ECDH_DATA *ecdh_check(EC_KEY *); - +#define EC_FLAG_COFACTOR_ECDH 0x1000 const ECDH_METHOD *ECDH_OpenSSL(void); @@ -118,15 +93,19 @@ void ECDH_set_default_method(const ECDH_METHOD *); const ECDH_METHOD *ECDH_get_default_method(void); int ECDH_set_method(EC_KEY *, const ECDH_METHOD *); -int ECDH_size(const EC_KEY *); -int ECDH_compute_key(unsigned char *key,const EC_POINT *pub_key, EC_KEY *ecdh); - +int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, EC_KEY *ecdh, + void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen)); int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg); void *ECDH_get_ex_data(EC_KEY *d, int idx); +int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + const unsigned char *sinfo, size_t sinfolen, + const EVP_MD *md); + /* BEGIN ERROR CODES */ /* The following lines are auto generated by the script mkerr.pl. Any changes @@ -138,12 +117,12 @@ void ERR_load_ECDH_strings(void); /* Function codes. */ #define ECDH_F_ECDH_COMPUTE_KEY 100 -#define ECDH_F_ECDH_DATA_NEW 101 +#define ECDH_F_ECDH_DATA_NEW_METHOD 101 /* Reason codes. */ +#define ECDH_R_KDF_FAILED 102 #define ECDH_R_NO_PRIVATE_VALUE 100 #define ECDH_R_POINT_ARITHMETIC_FAILURE 101 -#define ECDH_R_SHA1_DIGEST_FAILED 102 #ifdef __cplusplus }