X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fecdh%2Fecdh.h;h=8887102c0b56ebb9771ca491115db9d0488898fa;hb=247c3f60494e11c038595d7e5ae9e4edac181cc7;hp=cc6d858d619214bf24dcc433e5c36c6b2815565c;hpb=176f31ddec84a51d35871dc021a013df9f3cbccd;p=oweals%2Fopenssl.git diff --git a/crypto/ecdh/ecdh.h b/crypto/ecdh/ecdh.h index cc6d858d61..8887102c0b 100644 --- a/crypto/ecdh/ecdh.h +++ b/crypto/ecdh/ecdh.h @@ -69,50 +69,22 @@ #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)(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; -} 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 *); - - const ECDH_METHOD *ECDH_OpenSSL(void); void ECDH_set_default_method(const ECDH_METHOD *); @@ -120,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); @@ -137,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