forked from wolfSSL/wolfssl
extended method function
This commit is contained in:
@@ -585,18 +585,18 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args)
|
|||||||
#ifndef NO_OLD_TLS
|
#ifndef NO_OLD_TLS
|
||||||
#ifdef WOLFSSL_ALLOW_SSLV3
|
#ifdef WOLFSSL_ALLOW_SSLV3
|
||||||
case 0:
|
case 0:
|
||||||
method = SSLv3_server_method;
|
method = wolfSSLv3_server_method_ex;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef NO_TLS
|
#ifndef NO_TLS
|
||||||
case 1:
|
case 1:
|
||||||
method = TLSv1_server_method;
|
method = wolfTLSv1_server_method_ex;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
method = TLSv1_1_server_method;
|
method = wolfTLSv1_1_server_method_ex;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -604,19 +604,19 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args)
|
|||||||
|
|
||||||
#ifndef NO_TLS
|
#ifndef NO_TLS
|
||||||
case 3:
|
case 3:
|
||||||
method = TLSv1_2_server_method;
|
method = wolfTLSv1_2_server_method_ex;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CYASSL_DTLS
|
#ifdef CYASSL_DTLS
|
||||||
#ifndef NO_OLD_TLS
|
#ifndef NO_OLD_TLS
|
||||||
case -1:
|
case -1:
|
||||||
method = DTLSv1_server_method;
|
method = wolfDTLSv1_server_method_ex;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case -2:
|
case -2:
|
||||||
method = DTLSv1_2_server_method;
|
method = wolfDTLSv1_2_server_method_ex;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -638,7 +638,7 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args)
|
|||||||
!= SSL_SUCCESS)
|
!= SSL_SUCCESS)
|
||||||
err_sys("unable to load static memory and create ctx");
|
err_sys("unable to load static memory and create ctx");
|
||||||
#else
|
#else
|
||||||
ctx = SSL_CTX_new(method());
|
ctx = SSL_CTX_new(method(NULL));
|
||||||
#endif
|
#endif
|
||||||
if (ctx == NULL)
|
if (ctx == NULL)
|
||||||
err_sys("unable to get ctx");
|
err_sys("unable to get ctx");
|
||||||
|
77
src/ssl.c
77
src/ssl.c
@@ -664,81 +664,6 @@ int wolfSSL_init_memory_heap(WOLFSSL_HEAP* heap)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static WOLFSSL_METHOD* GetMethod(wolfSSL_method_func method, void* heap)
|
|
||||||
{
|
|
||||||
#ifndef NO_WOLFSSL_SERVER
|
|
||||||
#ifndef NO_OLD_TLS
|
|
||||||
#ifdef WOLFSSL_ALLOW_SSLV3
|
|
||||||
if (method == wolfSSLv3_server_method) {
|
|
||||||
return wolfSSLv3_server_method_ex(heap);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (method == wolfTLSv1_server_method) {
|
|
||||||
return wolfTLSv1_server_method_ex(heap);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (method == wolfTLSv1_1_server_method) {
|
|
||||||
return wolfTLSv1_1_server_method_ex(heap);
|
|
||||||
}
|
|
||||||
#endif /* ! NO_OLD_TLS */
|
|
||||||
#ifndef NO_SHA256 /* can't use without SHA256 */
|
|
||||||
if (method == wolfTLSv1_2_server_method) {
|
|
||||||
return wolfTLSv1_2_server_method_ex(heap);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (method == wolfSSLv23_server_method) {
|
|
||||||
return wolfSSLv23_server_method_ex(heap);
|
|
||||||
}
|
|
||||||
#endif /* NO_WOLFSSL_SERVER */
|
|
||||||
|
|
||||||
#ifndef NO_WOLFSSL_CLIENT
|
|
||||||
#ifndef NO_OLD_TLS
|
|
||||||
#ifdef WOLFSSL_ALLOW_SSLV3
|
|
||||||
if (method == wolfSSLv3_client_method) {
|
|
||||||
return wolfSSLv3_client_method_ex(heap);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (method == wolfTLSv1_client_method) {
|
|
||||||
return wolfTLSv1_client_method_ex(heap);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (method == wolfTLSv1_1_client_method) {
|
|
||||||
return wolfTLSv1_1_client_method_ex(heap);
|
|
||||||
}
|
|
||||||
#endif /* ! NO_OLD_TLS */
|
|
||||||
#ifndef NO_SHA256 /* can't use without SHA256 */
|
|
||||||
if (method == wolfTLSv1_2_client_method) {
|
|
||||||
return wolfTLSv1_2_client_method_ex(heap);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (method == wolfSSLv23_client_method) {
|
|
||||||
return wolfSSLv23_client_method_ex(heap);
|
|
||||||
}
|
|
||||||
#endif /* NO_WOLFSSL_CLIENT */
|
|
||||||
|
|
||||||
#ifdef WOLFSSL_DTLS
|
|
||||||
if (method == wolfDTLSv1_client_method) {
|
|
||||||
return wolfDTLSv1_client_method_ex(heap);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (method == wolfDTLSv1_server_method) {
|
|
||||||
return wolfDTLSv1_server_method_ex(heap);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (method == wolfDTLSv1_2_client_method) {
|
|
||||||
return wolfDTLSv1_2_client_method_ex(heap);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (method == wolfDTLSv1_2_server_method) {
|
|
||||||
return wolfDTLSv1_2_server_method_ex(heap);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
WOLFSSL_MSG("Method function not found");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int wolfSSL_CTX_load_static_memory(WOLFSSL_CTX** ctx, wolfSSL_method_func method,
|
int wolfSSL_CTX_load_static_memory(WOLFSSL_CTX** ctx, wolfSSL_method_func method,
|
||||||
unsigned char* buf, unsigned int sz,
|
unsigned char* buf, unsigned int sz,
|
||||||
int flag, int max)
|
int flag, int max)
|
||||||
@@ -795,7 +720,7 @@ int wolfSSL_CTX_load_static_memory(WOLFSSL_CTX** ctx, wolfSSL_method_func method
|
|||||||
|
|
||||||
/* create ctx if needed */
|
/* create ctx if needed */
|
||||||
if (*ctx == NULL) {
|
if (*ctx == NULL) {
|
||||||
*ctx = wolfSSL_CTX_new_ex(GetMethod(method, hint), hint);
|
*ctx = wolfSSL_CTX_new_ex(method(hint), hint);
|
||||||
if (*ctx == NULL) {
|
if (*ctx == NULL) {
|
||||||
WOLFSSL_MSG("Error creating ctx");
|
WOLFSSL_MSG("Error creating ctx");
|
||||||
return SSL_FAILURE;
|
return SSL_FAILURE;
|
||||||
|
@@ -1208,25 +1208,6 @@ WOLFSSL_LOCAL ProtocolVersion MakeTLSv1(void);
|
|||||||
WOLFSSL_LOCAL ProtocolVersion MakeTLSv1_1(void);
|
WOLFSSL_LOCAL ProtocolVersion MakeTLSv1_1(void);
|
||||||
WOLFSSL_LOCAL ProtocolVersion MakeTLSv1_2(void);
|
WOLFSSL_LOCAL ProtocolVersion MakeTLSv1_2(void);
|
||||||
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfSSLv3_server_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfSSLv3_client_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfTLSv1_server_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfTLSv1_client_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfTLSv1_1_server_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfTLSv1_1_client_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfTLSv1_2_server_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfTLSv1_2_client_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfSSLv23_server_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfSSLv23_client_method_ex(void* heap);
|
|
||||||
|
|
||||||
#ifdef WOLFSSL_DTLS
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfDTLSv1_client_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfDTLSv1_server_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfDTLSv1_2_client_method_ex(void* heap);
|
|
||||||
WOLFSSL_LOCAL WOLFSSL_METHOD *wolfDTLSv1_2_server_method_ex(void* heap);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef WOLFSSL_DTLS
|
#ifdef WOLFSSL_DTLS
|
||||||
WOLFSSL_LOCAL ProtocolVersion MakeDTLSv1(void);
|
WOLFSSL_LOCAL ProtocolVersion MakeDTLSv1(void);
|
||||||
WOLFSSL_LOCAL ProtocolVersion MakeDTLSv1_2(void);
|
WOLFSSL_LOCAL ProtocolVersion MakeDTLSv1_2(void);
|
||||||
|
@@ -203,7 +203,24 @@ enum AlertLevel {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
typedef WOLFSSL_METHOD* (*wolfSSL_method_func)(void);
|
typedef WOLFSSL_METHOD* (*wolfSSL_method_func)(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfSSLv3_server_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfSSLv3_client_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfTLSv1_server_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfTLSv1_client_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfTLSv1_1_server_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfTLSv1_1_client_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfTLSv1_2_server_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfTLSv1_2_client_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfSSLv23_server_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfSSLv23_client_method_ex(void* heap);
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_DTLS
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfDTLSv1_client_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfDTLSv1_server_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfDTLSv1_2_client_method_ex(void* heap);
|
||||||
|
WOLFSSL_API WOLFSSL_METHOD *wolfDTLSv1_2_server_method_ex(void* heap);
|
||||||
|
#endif
|
||||||
WOLFSSL_API WOLFSSL_METHOD *wolfSSLv3_server_method(void);
|
WOLFSSL_API WOLFSSL_METHOD *wolfSSLv3_server_method(void);
|
||||||
WOLFSSL_API WOLFSSL_METHOD *wolfSSLv3_client_method(void);
|
WOLFSSL_API WOLFSSL_METHOD *wolfSSLv3_client_method(void);
|
||||||
WOLFSSL_API WOLFSSL_METHOD *wolfTLSv1_server_method(void);
|
WOLFSSL_API WOLFSSL_METHOD *wolfTLSv1_server_method(void);
|
||||||
|
Reference in New Issue
Block a user