diff --git a/3rdparty/monero_crypto/CMakeLists.txt b/3rdparty/monero_crypto/CMakeLists.txt
index 958edbd28327894497ea21c9c7b4bf6f6e8e4af9..34af01cb61fa4499f5fa863e4e87d835447432f7 100755
--- a/3rdparty/monero_crypto/CMakeLists.txt
+++ b/3rdparty/monero_crypto/CMakeLists.txt
@@ -109,6 +109,8 @@ else()
     message(STATUS "[*] Building on ${CMAKE_SYSTEM_PROCESSOR} for ${ARCH}")
     if(ARCH STREQUAL "default")
       set(ARCH_FLAG "")
+    elseif(ARCH STREQUAL "native")
+      set(ARCH_FLAG "")
     elseif(PPC64LE)
       set(ARCH_FLAG "-mcpu=${ARCH}")
     elseif(IOS AND ARCH STREQUAL "arm64")
diff --git a/3rdparty/wolfssl/cyassl/options.h b/3rdparty/wolfssl/cyassl/options.h
index e2e364e7b07848a76c297337dde5dbdb276ba3fb..5ba0ed638c285554c2c930d1d2f18dff9d47d852 100644
--- a/3rdparty/wolfssl/cyassl/options.h
+++ b/3rdparty/wolfssl/cyassl/options.h
@@ -113,9 +113,6 @@ extern "C" {
 #undef  WC_RSA_PSS
 #define WC_RSA_PSS
 
-#undef  WOLFSSL_BASE64_ENCODE
-#define WOLFSSL_BASE64_ENCODE
-
 #undef  NO_RC4
 #define NO_RC4
 
@@ -125,15 +122,6 @@ extern "C" {
 #undef  NO_RABBIT
 #define NO_RABBIT
 
-#undef  WOLFSSL_SHA224
-#define WOLFSSL_SHA224
-
-#undef  WOLFSSL_SHA3
-#define WOLFSSL_SHA3
-
-#undef  WOLFSSL_SHAKE256
-#define WOLFSSL_SHAKE256
-
 #undef  HAVE_POLY1305
 #define HAVE_POLY1305
 
@@ -173,12 +161,6 @@ extern "C" {
 #undef  NO_MD4
 #define NO_MD4
 
-#undef  USE_FAST_MATH
-#define USE_FAST_MATH
-
-#undef  WOLFSSL_X86_64_BUILD
-#define WOLFSSL_X86_64_BUILD
-
 #undef  WC_NO_ASYNC_THREADING
 #define WC_NO_ASYNC_THREADING
 
diff --git a/3rdparty/wolfssl/wolfssl/options.h b/3rdparty/wolfssl/wolfssl/options.h
index d6f39494f92ba9ec7d14c3163a7022520c978b2b..aa54bade2d2bee07571ea17a33ba8145daad7bbd 100644
--- a/3rdparty/wolfssl/wolfssl/options.h
+++ b/3rdparty/wolfssl/wolfssl/options.h
@@ -110,9 +110,6 @@ extern "C" {
 #undef  WC_RSA_PSS
 #define WC_RSA_PSS
 
-#undef  WOLFSSL_BASE64_ENCODE
-#define WOLFSSL_BASE64_ENCODE
-
 #undef  NO_RC4
 #define NO_RC4
 
@@ -122,15 +119,6 @@ extern "C" {
 #undef  NO_RABBIT
 #define NO_RABBIT
 
-#undef  WOLFSSL_SHA224
-#define WOLFSSL_SHA224
-
-#undef  WOLFSSL_SHA3
-#define WOLFSSL_SHA3
-
-#undef  WOLFSSL_SHAKE256
-#define WOLFSSL_SHAKE256
-
 #undef  HAVE_POLY1305
 #define HAVE_POLY1305
 
@@ -170,12 +158,6 @@ extern "C" {
 #undef  NO_MD4
 #define NO_MD4
 
-#undef  USE_FAST_MATH
-#define USE_FAST_MATH
-
-#undef  WOLFSSL_X86_64_BUILD
-#define WOLFSSL_X86_64_BUILD
-
 #undef  WC_NO_ASYNC_THREADING
 #define WC_NO_ASYNC_THREADING
 
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3eda61f1a80cb4a8820114c1b06f409ff285bc8e..4fde6a830131534bbb517067f6eaec3262b50e8b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -53,8 +53,9 @@ endif()
 add_subdirectory(dap-sdk)
 add_subdirectory(3rdparty/monero_crypto)
 add_subdirectory(3rdparty/cuttdb)
-add_subdirectory(3rdparty/wolfssl)
-
+if(DAPSDK_MODULES MATCHES "ssl-support")
+    add_subdirectory(3rdparty/wolfssl)
+endif()
 
 add_subdirectory(modules/)
 
diff --git a/cmake/OS_Detection.cmake b/cmake/OS_Detection.cmake
index daa8d412dd469c35b759a64d5fed87965a0f197a..161a5b8fa690764c43d26f5e2f027b1c8119834c 100644
--- a/cmake/OS_Detection.cmake
+++ b/cmake/OS_Detection.cmake
@@ -53,7 +53,14 @@ if(UNIX)
         set(BSD ON)
         if (${_CMAKE_OSX_SYSROOT_PATH} MATCHES "MacOS")
             set(MACOS ON)
-            add_definitions("-DDAP_OS_MAC")
+	    # on macOS "uname -m" returns the architecture (x86_64 or arm64)
+	    execute_process(
+		COMMAND uname -m
+		RESULT_VARIABLE result
+		OUTPUT_VARIABLE MACOS_ARCH
+		OUTPUT_STRIP_TRAILING_WHITESPACE
+	    )
+            add_definitions("-DDAP_OS_MAC -DDAP_OS_MAC_ARCH=${MACOS_ARCH}")
         endif()
         if (${_CMAKE_OSX_SYSROOT_PATH} MATCHES "iOS")
             set(IOS ON)
diff --git a/dap-sdk/CMakeLists.txt b/dap-sdk/CMakeLists.txt
index d327eb51f2fb6f7ae09d68e9746e1e8b850a1a5a..9a6f3fa6394bd90cbc3d3d93c2aae300b843a209 100644
--- a/dap-sdk/CMakeLists.txt
+++ b/dap-sdk/CMakeLists.txt
@@ -1,4 +1,12 @@
-set(DAP_SDK_NATIVE_VERSION "2.2-1")
+set(DAP_SDK_NATIVE_VERSION "2.2-2")
+
+# We switch off SSL until its not switched on back
+if(DAPSDK_MODULES MATCHES "ssl-support")
+    add_definitions("-DDAP_NET_CLIENT_SSL")
+else()
+    add_definitions("-DDAP_NET_CLIENT_NO_SSL")
+endif()
+
 # Core, add it always
 add_subdirectory(core)
 if (DAPSDK_MODULES MATCHES "crypto")
diff --git a/dap-sdk/core/libdap.pri b/dap-sdk/core/libdap.pri
index 0842a446f947c580a624d8c0f89024c03374b4de..e7b623806bf0cd51818aa5029f0135470e2ccb05 100755
--- a/dap-sdk/core/libdap.pri
+++ b/dap-sdk/core/libdap.pri
@@ -47,7 +47,9 @@ win32 {
 HEADERS += $$PWD/../../3rdparty/uthash/src/utlist.h \
            $$PWD/../../3rdparty/uthash/src/uthash.h
 
-#include($$PWD/../../3rdparty/wolfssl/wolfssl.pri)
+if(DAPSDK_MODULES MATCHES "ssl-support")
+    include($$PWD/../../3rdparty/wolfssl/wolfssl.pri)
+endif()
 
 # Sources itself
 HEADERS += $$PWD/include/dap_common.h \
diff --git a/dap-sdk/crypto/CMakeLists.txt b/dap-sdk/crypto/CMakeLists.txt
index 0aa772704dde0a443c34cae77a926f11a21769c8..3badd0046895a28ec855633f5e2ba59e44263a7f 100755
--- a/dap-sdk/crypto/CMakeLists.txt
+++ b/dap-sdk/crypto/CMakeLists.txt
@@ -74,7 +74,11 @@ if(UNIX)
 	endif()
     elseif(APPLE)
 	if(BUILD_64)
-	    file( GLOB XKCP_SRCS2 src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-x86-64-gas_Apple.s )
+	    if((MACOS) AND(MACOS_ARCH STREQUAL "x86_64") )
+		file( GLOB XKCP_SRCS2 src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-x86-64-gas_Apple.s )
+	    else()
+		file( GLOB XKCP_SRCS2 src/XKCP/lib/low/KeccakP-1600/Compact64/KeccakP-1600-compact64.c )
+	    endif()
 	else()
 	    file( GLOB XKCP_SRCS2 src/XKCP/lib/low/KeccakP-1600/Inplace32BI/KeccakP-1600-inplace32BI.c )
 	endif()
diff --git a/dap-sdk/net/client/CMakeLists.txt b/dap-sdk/net/client/CMakeLists.txt
index 1b51802e4b5ce2b8fd26dac1326a05bea91ce3e5..39185cc300f9dfda0ef43ae046d0adc278dbd018 100644
--- a/dap-sdk/net/client/CMakeLists.txt
+++ b/dap-sdk/net/client/CMakeLists.txt
@@ -7,8 +7,12 @@ file(GLOB DAP_CLIENT_HEADERS FILES include/*.h)
 
 add_library(${PROJECT_NAME} STATIC ${DAP_CLIENT_HEADERS} ${DAP_CLIENT_SOURCES})
 
-target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_server_core dap_http_server dap_enc_server dap_stream dap_session dap_stream_ch json-c wolfssl)
 
+if(DAPSDK_MODULES MATCHES "ssl-support")
+    target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_server_core dap_http_server dap_enc_server dap_stream dap_session dap_stream_ch json-c wolfssl)
+else()
+    target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_server_core dap_http_server dap_enc_server dap_stream dap_session dap_stream_ch json-c)
+endif()
 if(UNIX AND NOT ANDROID AND NOT DARWIN)
     target_link_libraries(${PROJECT_NAME} rt)
 endif()
diff --git a/dap-sdk/net/core/CMakeLists.txt b/dap-sdk/net/core/CMakeLists.txt
index f3b6a5e2c93c96955b542c6f8c77dc6d6eb620c9..5ed51a7bfb0e11bfeeee142d2e78146cc2833d7a 100644
--- a/dap-sdk/net/core/CMakeLists.txt
+++ b/dap-sdk/net/core/CMakeLists.txt
@@ -19,13 +19,13 @@ endif()
 
 add_library(${PROJECT_NAME} STATIC ${DAP_SERVER_CORE_HEADERS} ${DAP_SERVER_CORE_SOURCES})
 
-if(WIN32)
+if(DAPSDK_MODULES MATCHES "ssl-support")
   target_link_libraries(${PROJECT_NAME} dap_core dap_crypto wolfssl)
+else()
+  target_link_libraries(${PROJECT_NAME} dap_core dap_crypto)
 endif()
 
 if(UNIX)
-  target_link_libraries(${PROJECT_NAME} dap_core dap_crypto wolfssl)
-
   if(NOT ANDROID)
       target_link_libraries(${PROJECT_NAME} pthread)
   endif()