diff --git a/IDE/CSBENCH/.cproject b/IDE/CSBENCH/.cproject
new file mode 100644
index 000000000..ee9bc012b
--- /dev/null
+++ b/IDE/CSBENCH/.cproject
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/IDE/CSBENCH/.project b/IDE/CSBENCH/.project
new file mode 100644
index 000000000..f3da8d955
--- /dev/null
+++ b/IDE/CSBENCH/.project
@@ -0,0 +1,33 @@
+
+
+ wolfcrypt
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+ full,incremental,
+
+
+
+
+
+ org.eclipse.cdt.core.cnature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+
+
+
+ src
+ 2
+ PARENT-2-PROJECT_LOC../wolfcrypt
+
+
+
diff --git a/IDE/CSBENCH/include.am b/IDE/CSBENCH/include.am
new file mode 100644
index 000000000..2f9241596
--- /dev/null
+++ b/IDE/CSBENCH/include.am
@@ -0,0 +1,8 @@
+# vim:ft=automake
+# included from Top Level Makefile.am
+# All paths should be given relative to the root
+
+EXTRA_DIST+= IDE/CSBENCH/.project
+EXTRA_DIST+= IDE/CSBENCH/.cproject
+EXTRA_DIST+= IDE/CSBENCH/user_settings.h
+
diff --git a/IDE/CSBENCH/user_settings.h b/IDE/CSBENCH/user_settings.h
new file mode 100644
index 000000000..428d26df8
--- /dev/null
+++ b/IDE/CSBENCH/user_settings.h
@@ -0,0 +1,22 @@
+#ifndef WOLFSSL_CSBENCH_H
+#define WOLFSSL_CSBENCH_H
+
+/* wolfSSL settings */
+#define WOLFCRYPT_ONLY
+#define USE_FAST_MATH
+#define TFM_TIMING_RESISTANT
+#define WC_RSA_BLINDING
+
+#define SINGLE_THREADED
+#define HAVE_AESGCM
+#define NO_ASN_TIME
+
+#define HAVE_ECC
+#define ECC_TIMING_RESISTANT
+#define WOLFSSL_NUCLEUS
+
+/* wolfSSH settings */
+#define WOLFSSH_SFTP
+//#define DEBUG_WOLFSSH
+
+#endif
diff --git a/IDE/include.am b/IDE/include.am
index ebea79b3c..84f49290f 100644
--- a/IDE/include.am
+++ b/IDE/include.am
@@ -13,5 +13,6 @@ include IDE/INTIME-RTOS/include.am
include IDE/OPENSTM32/include.am
include IDE/VS-ARM/include.am
include IDE/GCC-ARM/include.am
+include IDE/CSBENCH/include.am
EXTRA_DIST+= IDE/IAR-EWARM IDE/MDK-ARM IDE/MDK5-ARM IDE/MYSQL IDE/LPCXPRESSO IDE/HEXIWEAR
diff --git a/wolfcrypt/src/random.c b/wolfcrypt/src/random.c
index 92234de52..4f6e5c951 100644
--- a/wolfcrypt/src/random.c
+++ b/wolfcrypt/src/random.c
@@ -1499,7 +1499,23 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
return 0;
}
+#elif defined(WOLFSSL_NUCLEUS)
+#include "nucleus.h"
+#include "kernel/plus_common.h"
+int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
+{
+ int i;
+ srand(NU_Get_Time_Stamp());
+ for (i = 0; i < sz; i++ ) {
+ output[i] = rand() % 256;
+ if ((i % 8) == 7) {
+ srand(NU_Get_Time_Stamp());
+ }
+ }
+
+ return 0;
+}
#elif defined(WOLFSSL_VXWORKS)
#include
diff --git a/wolfcrypt/src/wc_port.c b/wolfcrypt/src/wc_port.c
index 9b2868be0..ab1d1e73d 100644
--- a/wolfcrypt/src/wc_port.c
+++ b/wolfcrypt/src/wc_port.c
@@ -220,7 +220,8 @@ int wolfCrypt_Cleanup(void)
return ret;
}
-#if !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR)
+#if !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR) && \
+ !defined(WOLFSSL_NUCLEUS)
/* File Handling Helpers */
/* returns 0 if file found, -1 if no files or negative error */
diff --git a/wolfssl/wolfcrypt/wc_port.h b/wolfssl/wolfcrypt/wc_port.h
index de4f8d9e5..7a9aaf055 100644
--- a/wolfssl/wolfcrypt/wc_port.h
+++ b/wolfssl/wolfcrypt/wc_port.h
@@ -291,7 +291,8 @@ WOLFSSL_API int wolfCrypt_Cleanup(void);
#define XBADFILE NULL
#define XFGETS fgets
- #if !defined(USE_WINDOWS_API) && !defined(NO_WOLFSSL_DIR)
+ #if !defined(USE_WINDOWS_API) && !defined(NO_WOLFSSL_DIR)\
+ && !defined(WOLFSSL_NUCLEUS)
#include
#include
#include
@@ -305,7 +306,7 @@ WOLFSSL_API int wolfCrypt_Cleanup(void);
#define MAX_PATH 256
#endif
-#if !defined(NO_WOLFSSL_DIR)
+#if !defined(NO_WOLFSSL_DIR) && !defined(WOLFSSL_NUCLEUS)
typedef struct ReadDirCtx {
#ifdef USE_WINDOWS_API
WIN32_FIND_DATAA FindFileData;