From c39cdbea549547de3f01d60bdda81dff2c264f29 Mon Sep 17 00:00:00 2001 From: toddouska Date: Mon, 3 Mar 2014 12:18:26 -0800 Subject: [PATCH] make sure enable-webserver (HAVE_WEBSERVER) can handle password callbacks as well as opensslextra unless NO_PWDBASED defined --- configure.ac | 30 +++++++++++++++--------------- cyassl/test.h | 2 +- examples/client/client.c | 2 +- examples/echoclient/echoclient.c | 2 +- examples/echoserver/echoserver.c | 2 +- examples/server/server.c | 2 +- src/internal.c | 2 +- src/ssl.c | 4 ++-- 8 files changed, 23 insertions(+), 23 deletions(-) diff --git a/configure.ac b/configure.ac index 32da5f401..d10f6c9f7 100644 --- a/configure.ac +++ b/configure.ac @@ -985,6 +985,19 @@ fi AM_CONDITIONAL([BUILD_MD4], [test "x$ENABLED_MD4" = "xyes"]) +# Web Server Build +AC_ARG_ENABLE([webserver], + [ --enable-webserver Enable Web Server (default: disabled)], + [ ENABLED_WEBSERVER=$enableval ], + [ ENABLED_WEBSERVER=no ] + ) + +if test "$ENABLED_WEBSERVER" = "yes" +then + AM_CFLAGS="$AM_CFLAGS -DHAVE_WEBSERVER" +fi + + # PWDBASED AC_ARG_ENABLE([pwdbased], [ --enable-pwdbased Enable PWDBASED (default: disabled)], @@ -994,9 +1007,9 @@ AC_ARG_ENABLE([pwdbased], if test "$ENABLED_PWDBASED" = "no" then - if test "$ENABLED_OPENSSLEXTRA" = "yes" + if test "$ENABLED_OPENSSLEXTRA" = "yes" || test "$ENABLED_WEBSERVER" = "yes" then - # opensslextra needs pwdbased + # opensslextra and webserver needs pwdbased ENABLED_PWDBASED=yes else AM_CFLAGS="$AM_CFLAGS -DNO_PWDBASED" @@ -1040,19 +1053,6 @@ fi AM_CONDITIONAL([BUILD_RABBIT], [test "x$ENABLED_RABBIT" = "xyes"]) -# Web Server Build -AC_ARG_ENABLE([webserver], - [ --enable-webserver Enable Web Server (default: disabled)], - [ ENABLED_WEBSERVER=$enableval ], - [ ENABLED_WEBSERVER=no ] - ) - -if test "$ENABLED_WEBSERVER" = "yes" -then - AM_CFLAGS="$AM_CFLAGS -DHAVE_WEBSERVER" -fi - - # Filesystem Build AC_ARG_ENABLE([filesystem], [ --enable-filesystem Enable Filesystem support (default: enabled)], diff --git a/cyassl/test.h b/cyassl/test.h index 91ef89692..a59924823 100644 --- a/cyassl/test.h +++ b/cyassl/test.h @@ -282,7 +282,7 @@ static INLINE int mygetopt(int argc, char** argv, const char* optstring) } -#ifdef OPENSSL_EXTRA +#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER) static INLINE int PasswordCallBack(char* passwd, int sz, int rw, void* userdata) { diff --git a/examples/client/client.c b/examples/client/client.c index 807d7e91e..edc601e48 100644 --- a/examples/client/client.c +++ b/examples/client/client.c @@ -490,7 +490,7 @@ THREAD_RETURN CYASSL_THREAD client_test(void* args) useClientCert = 0; } -#ifdef OPENSSL_EXTRA +#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER) CyaSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack); #endif diff --git a/examples/echoclient/echoclient.c b/examples/echoclient/echoclient.c index ee654d481..903af3563 100644 --- a/examples/echoclient/echoclient.c +++ b/examples/echoclient/echoclient.c @@ -139,7 +139,7 @@ void echoclient_test(void* args) #endif } -#ifdef OPENSSL_EXTRA +#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER) SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack); #endif diff --git a/examples/echoserver/echoserver.c b/examples/echoserver/echoserver.c index 1eac9b5a9..10bd3bab4 100644 --- a/examples/echoserver/echoserver.c +++ b/examples/echoserver/echoserver.c @@ -125,7 +125,7 @@ THREAD_RETURN CYASSL_THREAD echoserver_test(void* args) ctx = CyaSSL_CTX_new(method); /* CyaSSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF); */ -#ifdef OPENSSL_EXTRA +#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER) CyaSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack); #endif diff --git a/examples/server/server.c b/examples/server/server.c index f99be0aa2..5c6920a00 100644 --- a/examples/server/server.c +++ b/examples/server/server.c @@ -374,7 +374,7 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args) if (fewerPackets) CyaSSL_CTX_set_group_messages(ctx); -#ifdef OPENSSL_EXTRA +#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER) SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack); #endif diff --git a/src/internal.c b/src/internal.c index 1adabdd4a..5a4dfd564 100644 --- a/src/internal.c +++ b/src/internal.c @@ -367,7 +367,7 @@ int InitSSL_Ctx(CYASSL_CTX* ctx, CYASSL_METHOD* method) ctx->eccTempKeySz = ECDHE_SIZE; #endif -#ifdef OPENSSL_EXTRA +#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER) ctx->passwd_cb = 0; ctx->userdata = 0; #endif /* OPENSSL_EXTRA */ diff --git a/src/ssl.c b/src/ssl.c index c34878541..8bd06a7e7 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -1193,7 +1193,7 @@ int CyaSSL_KeyPemToDer(const unsigned char* pem, int pemSz, unsigned char* buff, info.consumed = 0; der.buffer = NULL; -#ifdef OPENSSL_EXTRA +#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER) if (pass) { info.ctx = CyaSSL_CTX_new(CyaSSLv23_client_method()); if (info.ctx == NULL) @@ -1829,7 +1829,7 @@ int CyaSSL_Init(void) } } -#if defined(OPENSSL_EXTRA) && !defined(NO_PWDBASED) +#if (defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)) && !defined(NO_PWDBASED) if (pkcs8Enc) { int passwordSz; char password[80];