forked from wolfSSL/wolfssl
Merge pull request #3822 from TakayukiMatsuo/os_ecdh
Add CTX_set_ecdh_auto
This commit is contained in:
37
src/ssl.c
37
src/ssl.c
@@ -54348,4 +54348,41 @@ int wolfSSL_set_ephemeral_key(WOLFSSL* ssl, int keyAlgo,
|
||||
|
||||
#endif /* WOLFSSL_STATIC_EPHEMERAL */
|
||||
|
||||
#if defined(OPENSSL_EXTRA)
|
||||
/* wolfSSL_THREADID_current is provided as a compat API with
|
||||
* CRYPTO_THREADID_current to register current thread id into given id object.
|
||||
* However, CRYPTO_THREADID_current API has been deprecated and no longer
|
||||
* exists in the OpenSSL 1.0.0 or later.This API only works as a stub
|
||||
* like as existing wolfSSL_THREADID_set_numeric.
|
||||
*/
|
||||
void wolfSSL_THREADID_current(WOLFSSL_CRYPTO_THREADID* id)
|
||||
{
|
||||
(void)id;
|
||||
return;
|
||||
}
|
||||
/* wolfSSL_THREADID_hash is provided as a compatible API with
|
||||
* CRYPTO_THREADID_hash which returns a hash value calcurated from the
|
||||
* specified thread id. However, CRYPTO_THREADID_hash API has been
|
||||
* deprecated and no longer exists in the OpenSSL 1.0.0 or later.
|
||||
* This API only works as a stub to returns 0. This behavior is
|
||||
* equivalent to the latest OpenSSL CRYPTO_THREADID_hash.
|
||||
*/
|
||||
unsigned long wolfSSL_THREADID_hash(const WOLFSSL_CRYPTO_THREADID* id)
|
||||
{
|
||||
(void)id;
|
||||
return 0UL;
|
||||
}
|
||||
/* wolfSSL_CTX_set_ecdh_auto is provided as compatible API with
|
||||
* SSL_CTX_set_ecdh_auto to enable auto ecdh curve selection functionality.
|
||||
* Since this functionality is enabled by default in wolfSSL,
|
||||
* this API exists as a stub.
|
||||
*/
|
||||
int wolfSSL_CTX_set_ecdh_auto(WOLFSSL_CTX* ctx, int onoff)
|
||||
{
|
||||
(void)ctx;
|
||||
(void)onoff;
|
||||
return WOLFSSL_SUCCESS;
|
||||
}
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
|
||||
#endif /* !WOLFCRYPT_ONLY */
|
||||
|
34
tests/api.c
34
tests/api.c
@@ -40912,6 +40912,38 @@ static void test_export_keying_material(void)
|
||||
}
|
||||
#endif /* HAVE_KEYING_MATERIAL */
|
||||
|
||||
static int test_wolfSSL_THREADID_hash(void)
|
||||
{
|
||||
int ret = 0;
|
||||
WOLFSSL_CRYPTO_THREADID id;
|
||||
unsigned long res;
|
||||
#if defined(OPENSSL_EXTRA)
|
||||
printf(testingFmt, "wolfSSL_THREADID_hash");
|
||||
res = wolfSSL_THREADID_hash(NULL);
|
||||
AssertTrue( res == 0UL);
|
||||
res = wolfSSL_THREADID_hash(&id);
|
||||
AssertTrue( res == 0UL);
|
||||
printf(resultFmt, passed);
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
(void)id;
|
||||
(void)res;
|
||||
return ret;
|
||||
}
|
||||
static int test_wolfSSL_CTX_set_ecdh_auto(void)
|
||||
{
|
||||
int ret = 0;
|
||||
WOLFSSL_CTX* ctx = NULL;
|
||||
#if defined(OPENSSL_EXTRA)
|
||||
printf(testingFmt, "wolfSSL_CTX_set_ecdh_auto");
|
||||
AssertIntEQ( wolfSSL_CTX_set_ecdh_auto(NULL,0),1);
|
||||
AssertIntEQ( wolfSSL_CTX_set_ecdh_auto(NULL,1),1);
|
||||
AssertIntEQ( wolfSSL_CTX_set_ecdh_auto(ctx,0),1);
|
||||
AssertIntEQ( wolfSSL_CTX_set_ecdh_auto(ctx,1),1);
|
||||
printf(resultFmt, passed);
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
(void)ctx;
|
||||
return ret;
|
||||
}
|
||||
static void test_wolfSSL_CTX_get_min_proto_version(void)
|
||||
{
|
||||
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL)
|
||||
@@ -41162,6 +41194,8 @@ void ApiTest(void)
|
||||
test_wolfSSL_CTX_add_client_CA();
|
||||
test_wolfSSL_CTX_set_srp_username();
|
||||
test_wolfSSL_CTX_set_srp_password();
|
||||
test_wolfSSL_CTX_set_ecdh_auto();
|
||||
test_wolfSSL_THREADID_hash();
|
||||
test_wolfSSL_RAND_bytes();
|
||||
test_wolfSSL_pseudo_rand();
|
||||
test_wolfSSL_PKCS8_Compat();
|
||||
|
@@ -50,7 +50,13 @@ WOLFSSL_API void *wolfSSL_OPENSSL_malloc(size_t a);
|
||||
WOLFSSL_API int wolfSSL_OPENSSL_init_crypto(word64 opts, const OPENSSL_INIT_SETTINGS *settings);
|
||||
#endif
|
||||
|
||||
#define CRYPTO_THREADID void
|
||||
typedef struct WOLFSSL_CRYPTO_THREADID {
|
||||
int dummy;
|
||||
}WOLFSSL_CRYPTO_THREADID;
|
||||
typedef struct crypto_threadid_st CRYPTO_THREADID;
|
||||
|
||||
#define crypto_threadid_st WOLFSSL_CRYPTO_THREADID
|
||||
#define CRYPTO_THREADID WOLFSSL_CRYPTO_THREADID
|
||||
|
||||
#define SSLeay_version wolfSSLeay_version
|
||||
#define SSLeay wolfSSLeay
|
||||
@@ -88,6 +94,8 @@ typedef void (CRYPTO_free_func)(void*parent, void*ptr, CRYPTO_EX_DATA *ad, int i
|
||||
long argl, void* argp);
|
||||
#define CRYPTO_THREADID_set_callback wolfSSL_THREADID_set_callback
|
||||
#define CRYPTO_THREADID_set_numeric wolfSSL_THREADID_set_numeric
|
||||
#define CRYPTO_THREADID_current wolfSSL_THREADID_current
|
||||
#define CRYPTO_THREADID_hash wolfSSL_THREADID_hash
|
||||
|
||||
#define CRYPTO_r_lock wc_LockMutex_ex
|
||||
#define CRYPTO_unlock wc_LockMutex_ex
|
||||
|
@@ -191,6 +191,7 @@ typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS;
|
||||
#define i2d_PKCS8PrivateKey_bio wolfSSL_PEM_write_bio_PKCS8PrivateKey
|
||||
#define PKCS8_PRIV_KEY_INFO_free wolfSSL_EVP_PKEY_free
|
||||
#define d2i_PKCS12_fp wolfSSL_d2i_PKCS12_fp
|
||||
#define SSL_CTX_set_ecdh_auto wolfSSL_CTX_set_ecdh_auto
|
||||
|
||||
#define i2d_PUBKEY wolfSSL_i2d_PUBKEY
|
||||
#define d2i_PUBKEY wolfSSL_d2i_PUBKEY
|
||||
@@ -1280,7 +1281,6 @@ wolfSSL_X509_STORE_set_verify_cb((WOLFSSL_X509_STORE *)(s), (WOLFSSL_X509_STORE_
|
||||
#define OPENSSL_cleanse wolfSSL_OPENSSL_cleanse
|
||||
#define SSL_CTX_get_timeout wolfSSL_SSL_CTX_get_timeout
|
||||
#define SSL_CTX_set_tmp_ecdh wolfSSL_SSL_CTX_set_tmp_ecdh
|
||||
#define SSL_CTX_set_ecdh_auto(...)
|
||||
#define SSL_CTX_remove_session wolfSSL_SSL_CTX_remove_session
|
||||
#define SSL_get_rbio wolfSSL_SSL_get_rbio
|
||||
#define SSL_get_wbio wolfSSL_SSL_get_wbio
|
||||
|
@@ -882,6 +882,7 @@ WOLFSSL_API WOLFSSL_CTX* wolfSSL_CTX_new_ex(WOLFSSL_METHOD* method, void* heap);
|
||||
WOLFSSL_ABI WOLFSSL_API WOLFSSL_CTX* wolfSSL_CTX_new(WOLFSSL_METHOD*);
|
||||
#ifdef OPENSSL_EXTRA
|
||||
WOLFSSL_API int wolfSSL_CTX_up_ref(WOLFSSL_CTX*);
|
||||
WOLFSSL_API int wolfSSL_CTX_set_ecdh_auto(WOLFSSL_CTX* ctx, int onoff);
|
||||
#endif
|
||||
WOLFSSL_ABI WOLFSSL_API WOLFSSL* wolfSSL_new(WOLFSSL_CTX*);
|
||||
WOLFSSL_API WOLFSSL_CTX* wolfSSL_get_SSL_CTX(WOLFSSL* ssl);
|
||||
@@ -3890,6 +3891,9 @@ WOLFSSL_API void wolfSSL_print_all_errors_fp(XFILE fp);
|
||||
WOLFSSL_API void wolfSSL_THREADID_set_callback(void (*threadid_func)(void*));
|
||||
|
||||
WOLFSSL_API void wolfSSL_THREADID_set_numeric(void* id, unsigned long val);
|
||||
WOLFSSL_API void wolfSSL_THREADID_current(WOLFSSL_CRYPTO_THREADID* id);
|
||||
WOLFSSL_API unsigned long wolfSSL_THREADID_hash(
|
||||
const WOLFSSL_CRYPTO_THREADID* id);
|
||||
|
||||
WOLFSSL_API WOLF_STACK_OF(WOLFSSL_X509)* wolfSSL_X509_STORE_get1_certs(
|
||||
WOLFSSL_X509_STORE_CTX*, WOLFSSL_X509_NAME*);
|
||||
@@ -4179,6 +4183,8 @@ WOLFSSL_API int wolfSSL_set_ephemeral_key(WOLFSSL* ssl, int keyAlgo,
|
||||
const char* key, unsigned int keySz, int format);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user