mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-02 12:14:38 +02:00
Merge pull request #1965 from ejohnstown/vx-mg-updates
VxWorks/Mongoose Updates
This commit is contained in:
43
src/ssl.c
43
src/ssl.c
@@ -11421,16 +11421,22 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EXTRA)
|
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
void wolfSSL_CTX_set_client_CA_list(WOLFSSL_CTX* ctx,
|
void wolfSSL_CTX_set_client_CA_list(WOLFSSL_CTX* ctx,
|
||||||
WOLF_STACK_OF(WOLFSSL_X509_NAME)* names)
|
WOLF_STACK_OF(WOLFSSL_X509_NAME)* names)
|
||||||
{
|
{
|
||||||
WOLFSSL_ENTER("wolfSSL_SSL_CTX_set_client_CA_list");
|
WOLFSSL_ENTER("wolfSSL_SSL_CTX_set_client_CA_list");
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EXTRA)
|
||||||
if (ctx != NULL)
|
if (ctx != NULL)
|
||||||
ctx->ca_names = names;
|
ctx->ca_names = names;
|
||||||
|
#else
|
||||||
|
(void)ctx;
|
||||||
|
(void)names;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EXTRA)
|
||||||
WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_SSL_CTX_get_client_CA_list(
|
WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_SSL_CTX_get_client_CA_list(
|
||||||
const WOLFSSL_CTX *s)
|
const WOLFSSL_CTX *s)
|
||||||
{
|
{
|
||||||
@@ -11443,10 +11449,15 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef OPENSSL_EXTRA
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
#if !defined(NO_RSA) && !defined(NO_CERTS)
|
#if !defined(NO_RSA) && !defined(NO_CERTS)
|
||||||
WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_load_client_CA_file(const char* fname)
|
WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_load_client_CA_file(const char* fname)
|
||||||
{
|
{
|
||||||
|
/* The webserver build is using this to load a CA into the server
|
||||||
|
* for client authentication as an option. Have this return NULL in
|
||||||
|
* that case. If OPENSSL_EXTRA is enabled, go ahead and include
|
||||||
|
* the function. */
|
||||||
|
#ifdef OPENSSL_EXTRA
|
||||||
WOLFSSL_STACK *list = NULL;
|
WOLFSSL_STACK *list = NULL;
|
||||||
WOLFSSL_STACK *node;
|
WOLFSSL_STACK *node;
|
||||||
WOLFSSL_BIO* bio;
|
WOLFSSL_BIO* bio;
|
||||||
@@ -11493,8 +11504,16 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
|||||||
wolfSSL_X509_free(cert);
|
wolfSSL_X509_free(cert);
|
||||||
wolfSSL_BIO_free(bio);
|
wolfSSL_BIO_free(bio);
|
||||||
return list;
|
return list;
|
||||||
|
#else
|
||||||
|
(void)fname;
|
||||||
|
return NULL;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef OPENSSL_EXTRA
|
||||||
|
#if !defined(NO_RSA) && !defined(NO_CERTS)
|
||||||
int wolfSSL_CTX_add_client_CA(WOLFSSL_CTX* ctx, WOLFSSL_X509* x509)
|
int wolfSSL_CTX_add_client_CA(WOLFSSL_CTX* ctx, WOLFSSL_X509* x509)
|
||||||
{
|
{
|
||||||
WOLFSSL_STACK *node = NULL;
|
WOLFSSL_STACK *node = NULL;
|
||||||
@@ -11815,6 +11834,10 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
|||||||
return ctx->mask;
|
return ctx->mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
|
|
||||||
static long wolf_set_options(long old_op, long op);
|
static long wolf_set_options(long old_op, long op);
|
||||||
long wolfSSL_CTX_set_options(WOLFSSL_CTX* ctx, long opt)
|
long wolfSSL_CTX_set_options(WOLFSSL_CTX* ctx, long opt)
|
||||||
{
|
{
|
||||||
@@ -11828,6 +11851,10 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
|||||||
return ctx->mask;
|
return ctx->mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef OPENSSL_EXTRA
|
||||||
|
|
||||||
long wolfSSL_CTX_clear_options(WOLFSSL_CTX* ctx, long opt)
|
long wolfSSL_CTX_clear_options(WOLFSSL_CTX* ctx, long opt)
|
||||||
{
|
{
|
||||||
WOLFSSL_ENTER("SSL_CTX_clear_options");
|
WOLFSSL_ENTER("SSL_CTX_clear_options");
|
||||||
@@ -14451,7 +14478,9 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||||||
return WOLFSSL_SUCCESS;
|
return WOLFSSL_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
long wolfSSL_CTX_set_mode(WOLFSSL_CTX* ctx, long mode)
|
long wolfSSL_CTX_set_mode(WOLFSSL_CTX* ctx, long mode)
|
||||||
{
|
{
|
||||||
/* WOLFSSL_MODE_ACCEPT_MOVING_WRITE_BUFFER is wolfSSL default mode */
|
/* WOLFSSL_MODE_ACCEPT_MOVING_WRITE_BUFFER is wolfSSL default mode */
|
||||||
@@ -14462,6 +14491,9 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||||||
|
|
||||||
return mode;
|
return mode;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef OPENSSL_EXTRA
|
||||||
|
|
||||||
#ifndef NO_WOLFSSL_STUB
|
#ifndef NO_WOLFSSL_STUB
|
||||||
long wolfSSL_SSL_get_mode(WOLFSSL* ssl)
|
long wolfSSL_SSL_get_mode(WOLFSSL* ssl)
|
||||||
@@ -19998,6 +20030,9 @@ int wolfSSL_PEM_def_callback(char* name, int num, int w, void* key)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
static long wolf_set_options(long old_op, long op)
|
static long wolf_set_options(long old_op, long op)
|
||||||
{
|
{
|
||||||
/* if SSL_OP_ALL then turn all bug workarounds on */
|
/* if SSL_OP_ALL then turn all bug workarounds on */
|
||||||
@@ -20056,7 +20091,9 @@ static long wolf_set_options(long old_op, long op)
|
|||||||
|
|
||||||
return old_op | op;
|
return old_op | op;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef OPENSSL_EXTRA
|
||||||
long wolfSSL_set_options(WOLFSSL* ssl, long op)
|
long wolfSSL_set_options(WOLFSSL* ssl, long op)
|
||||||
{
|
{
|
||||||
word16 haveRSA = 1;
|
word16 haveRSA = 1;
|
||||||
|
@@ -753,6 +753,47 @@ int wolfSSL_CryptHwMutexUnLock(void) {
|
|||||||
return BAD_MUTEX_E;
|
return BAD_MUTEX_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#elif defined(WOLFSSL_VXWORKS)
|
||||||
|
|
||||||
|
int wc_InitMutex(wolfSSL_Mutex* m)
|
||||||
|
{
|
||||||
|
if (m) {
|
||||||
|
if ((*m = semMCreate(0)) != SEM_ID_NULL)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return BAD_MUTEX_E;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int wc_FreeMutex(wolfSSL_Mutex* m)
|
||||||
|
{
|
||||||
|
if (m) {
|
||||||
|
if (semDelete(*m) == OK)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return BAD_MUTEX_E;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int wc_LockMutex(wolfSSL_Mutex* m)
|
||||||
|
{
|
||||||
|
if (m) {
|
||||||
|
if (semTake(*m, WAIT_FOREVER) == OK)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return BAD_MUTEX_E;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int wc_UnLockMutex(wolfSSL_Mutex* m)
|
||||||
|
{
|
||||||
|
if (m) {
|
||||||
|
if (semGive(*m) == OK)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return BAD_MUTEX_E;
|
||||||
|
}
|
||||||
|
|
||||||
#elif defined(THREADX)
|
#elif defined(THREADX)
|
||||||
|
|
||||||
int wc_InitMutex(wolfSSL_Mutex* m)
|
int wc_InitMutex(wolfSSL_Mutex* m)
|
||||||
|
@@ -2555,10 +2555,12 @@ struct WOLFSSL_CTX {
|
|||||||
#if defined(HAVE_ECC) || defined(HAVE_ED25519)
|
#if defined(HAVE_ECC) || defined(HAVE_ED25519)
|
||||||
short minEccKeySz; /* minimum ECC key size */
|
short minEccKeySz; /* minimum ECC key size */
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
|
unsigned long mask; /* store SSL_OP_ flags */
|
||||||
|
#endif
|
||||||
#ifdef OPENSSL_EXTRA
|
#ifdef OPENSSL_EXTRA
|
||||||
byte sessionCtx[ID_LEN]; /* app session context ID */
|
byte sessionCtx[ID_LEN]; /* app session context ID */
|
||||||
word32 disabledCurves; /* curves disabled by user */
|
word32 disabledCurves; /* curves disabled by user */
|
||||||
unsigned long mask; /* store SSL_OP_ flags */
|
|
||||||
const unsigned char *alpn_cli_protos;/* ALPN client protocol list */
|
const unsigned char *alpn_cli_protos;/* ALPN client protocol list */
|
||||||
unsigned int alpn_cli_protos_len;
|
unsigned int alpn_cli_protos_len;
|
||||||
byte sessionCtxSz;
|
byte sessionCtxSz;
|
||||||
|
@@ -1014,11 +1014,11 @@ WOLFSSL_API long wolfSSL_ASN1_INTEGER_get(const WOLFSSL_ASN1_INTEGER*);
|
|||||||
#ifdef OPENSSL_EXTRA
|
#ifdef OPENSSL_EXTRA
|
||||||
WOLFSSL_API WOLFSSL_BIGNUM *wolfSSL_ASN1_INTEGER_to_BN(const WOLFSSL_ASN1_INTEGER *ai,
|
WOLFSSL_API WOLFSSL_BIGNUM *wolfSSL_ASN1_INTEGER_to_BN(const WOLFSSL_ASN1_INTEGER *ai,
|
||||||
WOLFSSL_BIGNUM *bn);
|
WOLFSSL_BIGNUM *bn);
|
||||||
WOLFSSL_API WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_load_client_CA_file(const char*);
|
|
||||||
WOLFSSL_API WOLFSSL_ASN1_TIME* wolfSSL_ASN1_TIME_adj(WOLFSSL_ASN1_TIME*, time_t,
|
WOLFSSL_API WOLFSSL_ASN1_TIME* wolfSSL_ASN1_TIME_adj(WOLFSSL_ASN1_TIME*, time_t,
|
||||||
int, long);
|
int, long);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
WOLFSSL_API WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_load_client_CA_file(const char*);
|
||||||
WOLFSSL_API WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_SSL_CTX_get_client_CA_list(
|
WOLFSSL_API WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_SSL_CTX_get_client_CA_list(
|
||||||
const WOLFSSL_CTX *s);
|
const WOLFSSL_CTX *s);
|
||||||
WOLFSSL_API void wolfSSL_CTX_set_client_CA_list(WOLFSSL_CTX*,
|
WOLFSSL_API void wolfSSL_CTX_set_client_CA_list(WOLFSSL_CTX*,
|
||||||
@@ -1115,7 +1115,7 @@ enum {
|
|||||||
WOLFSSL_CRL_CHECK = 27,
|
WOLFSSL_CRL_CHECK = 27,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef OPENSSL_EXTRA
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
/* seperated out from other enums because of size */
|
/* seperated out from other enums because of size */
|
||||||
enum {
|
enum {
|
||||||
SSL_OP_MICROSOFT_SESS_ID_BUG = 0x00000001,
|
SSL_OP_MICROSOFT_SESS_ID_BUG = 0x00000001,
|
||||||
|
@@ -398,7 +398,8 @@
|
|||||||
#ifdef VXWORKS_SIM
|
#ifdef VXWORKS_SIM
|
||||||
#define TFM_NO_ASM
|
#define TFM_NO_ASM
|
||||||
#endif
|
#endif
|
||||||
#define WOLFSSL_PTHREADS
|
/* For VxWorks pthreads wrappers for mutexes uncomment the next line. */
|
||||||
|
/* #define WOLFSSL_PTHREADS */
|
||||||
#define WOLFSSL_HAVE_MIN
|
#define WOLFSSL_HAVE_MIN
|
||||||
#define WOLFSSL_HAVE_MAX
|
#define WOLFSSL_HAVE_MAX
|
||||||
#define USE_FAST_MATH
|
#define USE_FAST_MATH
|
||||||
|
@@ -74,6 +74,8 @@
|
|||||||
/* do nothing */
|
/* do nothing */
|
||||||
#elif defined(FREESCALE_FREE_RTOS)
|
#elif defined(FREESCALE_FREE_RTOS)
|
||||||
#include "fsl_os_abstraction.h"
|
#include "fsl_os_abstraction.h"
|
||||||
|
#elif defined(WOLFSSL_VXWORKS)
|
||||||
|
#include <semLib.h>
|
||||||
#elif defined(WOLFSSL_uITRON4)
|
#elif defined(WOLFSSL_uITRON4)
|
||||||
#include "stddef.h"
|
#include "stddef.h"
|
||||||
#include "kernel.h"
|
#include "kernel.h"
|
||||||
@@ -151,6 +153,8 @@
|
|||||||
typedef MUTEX_STRUCT wolfSSL_Mutex;
|
typedef MUTEX_STRUCT wolfSSL_Mutex;
|
||||||
#elif defined(FREESCALE_FREE_RTOS)
|
#elif defined(FREESCALE_FREE_RTOS)
|
||||||
typedef mutex_t wolfSSL_Mutex;
|
typedef mutex_t wolfSSL_Mutex;
|
||||||
|
#elif defined(WOLFSSL_VXWORKS)
|
||||||
|
typedef SEM_ID wolfSSL_Mutex;
|
||||||
#elif defined(WOLFSSL_uITRON4)
|
#elif defined(WOLFSSL_uITRON4)
|
||||||
typedef struct wolfSSL_Mutex {
|
typedef struct wolfSSL_Mutex {
|
||||||
T_CSEM sem ;
|
T_CSEM sem ;
|
||||||
|
Reference in New Issue
Block a user