X-Git-Url: https://git.openssl.org/?a=blobdiff_plain;f=crypto%2Fecdh%2Fecdh.h;h=8887102c0b56ebb9771ca491115db9d0488898fa;hb=af454b5bb09bf647b4854dc277f2eefc151b2608;hp=1a62a214b3d4bc3403168851668aec63050e7e05;hpb=3a87a9b9db07f8d3c6d9aa7f20e01f053007a703;p=openssl.git diff --git a/crypto/ecdh/ecdh.h b/crypto/ecdh/ecdh.h index 1a62a214b3..8887102c0b 100644 --- a/crypto/ecdh/ecdh.h +++ b/crypto/ecdh/ecdh.h @@ -75,49 +75,16 @@ #error ECDH is disabled. #endif -#include #include #include +#ifndef OPENSSL_NO_DEPRECATED +#include +#endif #ifdef __cplusplus extern "C" { #endif -/* Already defined in ossl_typ.h */ -/* typedef struct ecdh_method ECDH_METHOD; */ - -struct ecdh_method - { - const char *name; - int (*compute_key)(void *key, size_t outlen, const EC_POINT *pub_key, EC_KEY *ecdh, - void *(*KDF)(void *in, size_t inlen, void *out, size_t outlen)); -#if 0 - int (*init)(EC_KEY *eckey); - int (*finish)(EC_KEY *eckey); -#endif - int flags; - char *app_data; - }; - -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 *); - - const ECDH_METHOD *ECDH_OpenSSL(void); void ECDH_set_default_method(const ECDH_METHOD *); @@ -125,7 +92,7 @@ const ECDH_METHOD *ECDH_get_default_method(void); int ECDH_set_method(EC_KEY *, const ECDH_METHOD *); int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, EC_KEY *ecdh, - void *(*KDF)(void *in, size_t inlen, void *out, size_t outlen)); + 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); @@ -142,11 +109,13 @@ void ERR_load_ECDH_strings(void); /* Error codes for the ECDH functions. */ /* Function codes. */ +#define ECDH_F_ECDH_CHECK 102 #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_NON_FIPS_METHOD 103 #define ECDH_R_NO_PRIVATE_VALUE 100 #define ECDH_R_POINT_ARITHMETIC_FAILURE 101