forked from wolfSSL/wolfssl
Merge pull request #2431 from JacobBarthelmeh/coldfire
M68K (coldfire MCF5441X) wolfcrypt build and examples
This commit is contained in:
91
IDE/M68K/Makefile
Normal file
91
IDE/M68K/Makefile
Normal file
@ -0,0 +1,91 @@
|
||||
NAME = wolfssl
|
||||
DEVICE = -m5206e -gdwarf-2 -DMOD5441X -DMCF5441X
|
||||
OLEVEL = -O2
|
||||
NBHEADERS = -I"$(NBROOT)/include" -I"$(NBROOT)/MOD5441X/include"
|
||||
|
||||
# location to put wolfssl.a created
|
||||
OUTPUT = $(NBROOT)/lib
|
||||
|
||||
|
||||
CSRCS := ../../wolfcrypt/src/rsa.c \
|
||||
../../wolfcrypt/src/asn.c \
|
||||
../../wolfcrypt/src/aes.c \
|
||||
../../wolfcrypt/src/sha.c \
|
||||
../../wolfcrypt/src/sha256.c \
|
||||
../../wolfcrypt/src/sha512.c \
|
||||
../../wolfcrypt/src/integer.c \
|
||||
../../wolfcrypt/src/tfm.c \
|
||||
../../wolfcrypt/src/random.c \
|
||||
../../wolfcrypt/src/logging.c \
|
||||
../../wolfcrypt/src/memory.c \
|
||||
../../wolfcrypt/src/coding.c \
|
||||
../../wolfcrypt/src/hash.c \
|
||||
../../wolfcrypt/src/hmac.c \
|
||||
../../wolfcrypt/src/md5.c \
|
||||
../../wolfcrypt/src/wc_port.c \
|
||||
../../wolfcrypt/src/wc_encrypt.c \
|
||||
../../wolfcrypt/src/wolfmath.c \
|
||||
../../wolfcrypt/src/sp_c32.c \
|
||||
../../wolfcrypt/src/sp_int.c \
|
||||
../../wolfcrypt/src/signature.c \
|
||||
../../wolfcrypt/src/error.c \
|
||||
../../src/wolfio.c \
|
||||
../../src/ssl.c
|
||||
|
||||
INC = -I"./" -I"../../"
|
||||
EXTRACFLAGS = -DWOLFSSL_USER_SETTINGS $(INC) $(DEVICE) $(OLEVEL)
|
||||
EXTRACFLAGS += -DNBMINGW -Wall -fno-rtti -fno-exceptions -falign-functions=4
|
||||
EXTRACFLAGS += $(NBHEADERS)
|
||||
EXTRACXXFLAGS = $(EXTRACFLAGS)
|
||||
|
||||
#LDEXTRA =
|
||||
LIBOBJS = ./rsa.o \
|
||||
./asn.o \
|
||||
./aes.o \
|
||||
./sha.o \
|
||||
./sha256.o \
|
||||
./sha512.o \
|
||||
./integer.o \
|
||||
./tfm.o \
|
||||
./random.o \
|
||||
./logging.o \
|
||||
./memory.o \
|
||||
./coding.o \
|
||||
./hash.o \
|
||||
./hmac.o \
|
||||
./md5.o \
|
||||
./wc_port.o \
|
||||
./wc_encrypt.o \
|
||||
./wolfmath.o \
|
||||
./sp_c32.o \
|
||||
./sp_int.o \
|
||||
./signature.o \
|
||||
./wolfio.o \
|
||||
./ssl.o \
|
||||
./error.o
|
||||
|
||||
#include $(NBROOT)/make/libmain.mak
|
||||
|
||||
all: compile link rmo
|
||||
|
||||
# compiling using g++ compiler to avoid mangled name complications if linking
|
||||
# against other NetBurner libraries
|
||||
compile:
|
||||
m68k-elf-g++ $(EXTRACFLAGS) -c $(CSRCS)
|
||||
|
||||
link:
|
||||
m68k-elf-ar -cr $(OUTPUT)/$(NAME).a $(LIBOBJS)
|
||||
|
||||
rmo:
|
||||
rm -f *.o
|
||||
|
||||
clean: rmo
|
||||
rm -f $(OUTPUT)/$(NAME).a
|
||||
|
||||
help:
|
||||
@echo "all : exectue compile, link, rmo"
|
||||
@echo "compile : create .o files"
|
||||
@echo "link : create .a library from .o files"
|
||||
@echo "rmo : remove all .o files"
|
||||
@echo "clean : remove all .o files and .a library"
|
||||
|
46
IDE/M68K/README.md
Normal file
46
IDE/M68K/README.md
Normal file
@ -0,0 +1,46 @@
|
||||
This is makefile's for creating a wolfCrypt library using the m68k-elf-gcc
|
||||
toolchain and example benchmark/testwolfcrypt application linking to it. The
|
||||
examples and default builds where made to support a MCF5441X board.
|
||||
|
||||
Macros to define for use:
|
||||
WOLFSSL_MCF5441X /* arch settings i.e. sizeof long and endianess */
|
||||
WOLFSSL_NETBURNER /* for use of NetBurner headers and RNG seed */
|
||||
|
||||
|
||||
To build the wolfssl.a library (settings for wolfCrypt only by default) run
|
||||
"make" from the directory wolfssl-root/IDE/M68K/.
|
||||
By default this outputs the wolfssl.a library to be at $(NBROOT)/lib. This can
|
||||
be adjusted by adjusting the variable OUTPUT in Makefile.
|
||||
|
||||
If the macro WOLFSSL_MCF5441X is defined then
|
||||
wolfssl-root/wolfssl/wolfcrypt/settings.h sets the sizeof long and long long
|
||||
along with big endian macro.
|
||||
|
||||
The configuration for the build is located in wolfssl-root/IDE/M68K/user_settings.h
|
||||
Along with the defualt build there is 2 others BUILD_B (smaller resource use),
|
||||
and BUILD_C (faster runtime with more resource use).
|
||||
|
||||
RSA speeds of the builds
|
||||
|
||||
default:
|
||||
RSA 2048 public 3.333 ops/sec
|
||||
RSA 2048 private 0.190 ops/sec
|
||||
|
||||
BUILD_B
|
||||
RSA 2048 public 3.333 ops/sec
|
||||
RSA 2048 private 0.053 ops/sec
|
||||
|
||||
BUILD_C
|
||||
RSA 2048 public 7.619 ops/sec
|
||||
RSA 2048 private 0.276 ops/sec
|
||||
|
||||
###Building testwolfcryt/benchmark
|
||||
To build either testwolfcrypt or benchmark first build wolfssl.a, place it in
|
||||
$(NBROOT)/lib and then cd into the respective directory. Running "make" will
|
||||
then create a .s19 application that can be ran on the board.
|
||||
|
||||
When running either testwolfcrypt or the benchmark app the first thing they do
|
||||
is loop on calling RandomValid until getting a successful return. This is done
|
||||
in order to wait for a source of entropy. It could take several moments until
|
||||
completed.
|
||||
|
11
IDE/M68K/benchmark/Makefile
Normal file
11
IDE/M68K/benchmark/Makefile
Normal file
@ -0,0 +1,11 @@
|
||||
NAME = benchmark
|
||||
PLATFORM = MOD5441X
|
||||
CSRCS := ../../../wolfcrypt/benchmark/benchmark.c
|
||||
CXXSRCS := ./main.cpp
|
||||
XTRALIB += $(NBROOT)/lib/wolfssl.a
|
||||
|
||||
INC = -I"./../../../" -I"./../"
|
||||
EXTRACFLAGS = $(INC) -DWOLFSSL_USER_SETTINGS -DUSE_CERT_BUFFERS_2048 -DBENCH_EMBEDDED -DNO_MAIN_DRIVER
|
||||
EXTRACXXFLAGS = $(EXTRACFLAGS)
|
||||
|
||||
include $(NBROOT)/make/main.mak
|
79
IDE/M68K/benchmark/main.cpp
Normal file
79
IDE/M68K/benchmark/main.cpp
Normal file
@ -0,0 +1,79 @@
|
||||
/* main.c
|
||||
*
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||
*/
|
||||
|
||||
#include <predef.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <startnet.h>
|
||||
#include <autoupdate.h>
|
||||
#include <dhcpclient.h>
|
||||
#include <random.h>
|
||||
#include <init.h>
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#include <wolfcrypt/benchmark/benchmark.h>
|
||||
|
||||
extern "C" {
|
||||
void UserMain(void * pd);
|
||||
}
|
||||
|
||||
const char * AppName="benchmark";
|
||||
|
||||
typedef struct func_args {
|
||||
int argc;
|
||||
char** argv;
|
||||
int return_code;
|
||||
} func_args;
|
||||
|
||||
void UserMain(void * pd) {
|
||||
InitializeStack();
|
||||
GetDHCPAddressIfNecessary();
|
||||
OSChangePrio(MAIN_PRIO);
|
||||
EnableAutoUpdate();
|
||||
|
||||
|
||||
init();
|
||||
iprintf("wolfcrypt benchmark Application started\n");
|
||||
iprintf("waiting for sufficient entropy before starting...\n\r");
|
||||
iprintf("looks like NetBurner is using uart/tcp to seed GetRandomX so ..."
|
||||
" input enough uart characters.\n\r");
|
||||
{
|
||||
BYTE b;
|
||||
do {
|
||||
b = GetRandomByte();
|
||||
iprintf(".");
|
||||
} while (!RandomValid());
|
||||
iprintf("\n\r");
|
||||
(void)b;
|
||||
}
|
||||
|
||||
/* run wolfCrypt benchmarks */
|
||||
{
|
||||
func_args args;
|
||||
args.argc = 0;
|
||||
args.argv = NULL;
|
||||
|
||||
benchmark_test(&args);
|
||||
}
|
||||
while (1) {
|
||||
OSTimeDly(TICKS_PER_SECOND);
|
||||
}
|
||||
}
|
11
IDE/M68K/include.am
Normal file
11
IDE/M68K/include.am
Normal file
@ -0,0 +1,11 @@
|
||||
# vim:ft=automake
|
||||
# included from Top Level Makefile.am
|
||||
# All paths should be given relative to the root
|
||||
|
||||
EXTRA_DIST+= IDE/M68K/README.md
|
||||
EXTRA_DIST+= IDE/M68K/Makefile
|
||||
EXTRA_DIST+= IDE/M68K/user_settings.h
|
||||
EXTRA_DIST+= IDE/M68K/testwolfcrypt/main.cpp
|
||||
EXTRA_DIST+= IDE/M68K/testwolfcrypt/Makefile
|
||||
EXTRA_DIST+= IDE/M68K/benchmark/main.cpp
|
||||
EXTRA_DIST+= IDE/M68K/benchmark/Makefile
|
12
IDE/M68K/testwolfcrypt/Makefile
Normal file
12
IDE/M68K/testwolfcrypt/Makefile
Normal file
@ -0,0 +1,12 @@
|
||||
NAME = testwolfcyprt
|
||||
PLATFORM = MOD5441X
|
||||
CSRCS := ../../../wolfcrypt/test/test.c
|
||||
CXXSRCS := ./main.cpp
|
||||
XTRALIB += $(NBROOT)/lib/wolfssl.a
|
||||
|
||||
INC = -I"./../../../" -I"./../"
|
||||
EXTRACFLAGS = $(INC) -DWOLFSSL_USER_SETTINGS -DUSE_CERT_BUFFERS_1024 -DNO_MAIN_DRIVER
|
||||
EXTRACXXFLAGS = $(EXTRACFLAGS)
|
||||
|
||||
include $(NBROOT)/make/main.mak
|
||||
|
82
IDE/M68K/testwolfcrypt/main.cpp
Normal file
82
IDE/M68K/testwolfcrypt/main.cpp
Normal file
@ -0,0 +1,82 @@
|
||||
/* main.c
|
||||
*
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||
*/
|
||||
|
||||
#include <predef.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <startnet.h>
|
||||
#include <autoupdate.h>
|
||||
#include <dhcpclient.h>
|
||||
#include <random.h>
|
||||
#include <init.h>
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#include <wolfssl/wolfcrypt/logging.h>
|
||||
#include <wolfcrypt/test/test.h>
|
||||
|
||||
extern "C" {
|
||||
void UserMain(void * pd);
|
||||
}
|
||||
|
||||
const char * AppName="testwolfcrypt";
|
||||
|
||||
typedef struct func_args {
|
||||
int argc;
|
||||
char** argv;
|
||||
int return_code;
|
||||
} func_args;
|
||||
|
||||
|
||||
void UserMain(void * pd) {
|
||||
InitializeStack();
|
||||
GetDHCPAddressIfNecessary();
|
||||
OSChangePrio(MAIN_PRIO);
|
||||
EnableAutoUpdate();
|
||||
|
||||
|
||||
init();
|
||||
iprintf("wolfcrypt test Application started\n\r");
|
||||
|
||||
iprintf("waiting for sufficient entropy before starting...\n\r");
|
||||
iprintf("looks like NetBurner is using uart/tcp to seed GetRandomX so ..."
|
||||
" input enough uart characters.\n\r");
|
||||
{
|
||||
BYTE b;
|
||||
do {
|
||||
b = GetRandomByte();
|
||||
iprintf(".");
|
||||
} while (!RandomValid());
|
||||
iprintf("\n\r");
|
||||
(void)b;
|
||||
}
|
||||
|
||||
/* run wolfCrypt tests */
|
||||
{
|
||||
func_args args;
|
||||
args.argc = 0;
|
||||
args.argv = NULL;
|
||||
|
||||
wolfcrypt_test(&args);
|
||||
}
|
||||
while (1) {
|
||||
OSTimeDly(TICKS_PER_SECOND);
|
||||
}
|
||||
}
|
87
IDE/M68K/user_settings.h
Normal file
87
IDE/M68K/user_settings.h
Normal file
@ -0,0 +1,87 @@
|
||||
|
||||
#ifndef USER_SETTINGS_H
|
||||
#define USER_SETTINGS_H
|
||||
|
||||
|
||||
/* Default build with fast math */
|
||||
|
||||
|
||||
/* Slower build but uses less memory */
|
||||
//#define BUILD_B
|
||||
|
||||
/* Performant build but uses more memory */
|
||||
//#define BUILD_C
|
||||
|
||||
|
||||
|
||||
/* Used for getting random value for seeding RNG */
|
||||
#define WOLFSSL_NETBURNER
|
||||
#define WOLFSSL_MCF5441X
|
||||
|
||||
/* environment settings */
|
||||
#define NO_WRITEV
|
||||
#define WOLFSSL_NO_SOCK
|
||||
#define NO_WOLFSSL_DIR
|
||||
|
||||
/* with USE_FAST_MATH smallstack is used to fit in the default stack size */
|
||||
#define WOLFSSL_SMALL_STACK
|
||||
|
||||
|
||||
/* enable features off by default */
|
||||
#define WOLFSSL_SHA512
|
||||
// OPENSSL_EXTRA uses a lot more memory but is needed in order to enable
|
||||
// compatibility layer API
|
||||
#define OPENSSL_EXTRA
|
||||
|
||||
// additional RSA padding schemes
|
||||
#define WC_RSA_NO_PADDING
|
||||
#define WC_RSA_PSS
|
||||
|
||||
// uncomment and add wolfSSL_Debugging_ON() to app for debug messages
|
||||
//#define DEBUG_WOLFSSL
|
||||
|
||||
|
||||
/* disable features that are on by default */
|
||||
#define WOLFCRYPT_ONLY
|
||||
#define NO_FILESYSTEM
|
||||
#define SINGLE_THREADED
|
||||
|
||||
#define NO_ASN_TIME
|
||||
#define NO_PWDBASED
|
||||
#define NO_HC128
|
||||
#define NO_RABBIT
|
||||
#define NO_RC4
|
||||
#define NO_DSA
|
||||
#define NO_DES3
|
||||
#define NO_DH
|
||||
#define NO_MD4
|
||||
|
||||
|
||||
#define USE_FAST_MATH
|
||||
#ifdef BUILD_B
|
||||
#define RSA_LOW_MEM
|
||||
#define USE_SLOW_SHA
|
||||
#define USE_SLOW_SHA256
|
||||
#define NO_ERROR_STRINGS
|
||||
#define USE_FAST_MATH
|
||||
#endif
|
||||
|
||||
#ifdef BUILD_C
|
||||
#define WOLFSSL_HAVE_SP_RSA
|
||||
#define SP_WORD_SIZE 32
|
||||
#endif
|
||||
|
||||
/* hardening against side channel attacks */
|
||||
#if defined(USE_FAST_MATH)
|
||||
#define TFM_TIMING_RESISTANT
|
||||
#ifdef HAVE_ECC
|
||||
#define ECC_TIMING_RESISTANT
|
||||
#endif
|
||||
#endif /* USE_FAST_MATH */
|
||||
#ifndef NO_RSA
|
||||
/* this slows down RSA operations but increases side channel resistance */
|
||||
#define WC_RSA_BLINDING
|
||||
#endif
|
||||
|
||||
#endif /* USER_SETTINGS_H */
|
||||
|
@ -25,6 +25,7 @@ include IDE/Renesas/cs+/Projects/include.am
|
||||
include IDE/Renesas/e2studio/Projects/include.am
|
||||
include IDE/WICED-STUDIO/include.am
|
||||
include IDE/CRYPTOCELL/include.am
|
||||
include IDE/M68K/include.am
|
||||
include IDE/RISCV/include.am
|
||||
|
||||
EXTRA_DIST+= IDE/IAR-EWARM IDE/MDK-ARM IDE/MDK5-ARM IDE/MYSQL IDE/LPCXPRESSO IDE/HEXIWEAR IDE/Espressif IDE/zephyr
|
||||
|
@ -4888,7 +4888,7 @@ AM_CONDITIONAL([USE_VALGRIND],[test "x$ENABLED_VALGRIND" = "xyes"])
|
||||
AM_CONDITIONAL([BUILD_MD4],[test "x$ENABLED_MD4" = "xyes"])
|
||||
AM_CONDITIONAL([BUILD_PWDBASED],[test "x$ENABLED_PWDBASED" = "xyes"])
|
||||
AM_CONDITIONAL([BUILD_SCRYPT],[test "x$ENABLED_SCRYPT" = "xyes"])
|
||||
AM_CONDITIONAL([BUILD_CRYPTONLY],[test "x$ENABLED_CRYPTONLY" = "xyes"])
|
||||
AM_CONDITIONAL([BUILD_CRYPTONLY],[test "x$ENABLED_CRYPTONLY" = "xyes" && test "x$ENABLED_OPENSSLEXTRA" = "xno"])
|
||||
AM_CONDITIONAL([BUILD_FASTMATH],[test "x$ENABLED_FASTMATH" = "xyes"])
|
||||
AM_CONDITIONAL([BUILD_SLOWMATH],[test "x$ENABLED_SLOWMATH" = "xyes"])
|
||||
AM_CONDITIONAL([BUILD_EXAMPLE_SERVERS],[test "x$ENABLED_EXAMPLES" = "xyes" && test "x$ENABLED_LEANTLS" = "xno"])
|
||||
|
38
src/bio.c
38
src/bio.c
@ -124,6 +124,7 @@ static int wolfSSL_BIO_MEMORY_read(WOLFSSL_BIO* bio, void* buf, int len)
|
||||
}
|
||||
|
||||
|
||||
#ifndef WOLFCRYPT_ONLY
|
||||
/* Helper function to read from WOLFSSL_BIO_SSL type
|
||||
*
|
||||
* returns the number of bytes read on success
|
||||
@ -150,6 +151,7 @@ static int wolfSSL_BIO_SSL_read(WOLFSSL_BIO* bio, void* buf,
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif /* WOLFCRYPT_ONLY */
|
||||
|
||||
|
||||
|
||||
@ -209,9 +211,11 @@ int wolfSSL_BIO_read(WOLFSSL_BIO* bio, void* buf, int len)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef WOLFCRYPT_ONLY
|
||||
if (bio && bio->type == WOLFSSL_BIO_SSL) {
|
||||
ret = wolfSSL_BIO_SSL_read(bio, buf, len, front);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* case where front of list is done */
|
||||
if (bio == front) {
|
||||
@ -292,6 +296,7 @@ static int wolfSSL_BIO_BASE64_write(WOLFSSL_BIO* bio, const void* data,
|
||||
}
|
||||
|
||||
|
||||
#ifndef WOLFCRYPT_ONLY
|
||||
/* Helper function for writing to a WOLFSSL_BIO_SSL type
|
||||
*
|
||||
* returns the amount written in bytes on success
|
||||
@ -317,6 +322,7 @@ static int wolfSSL_BIO_SSL_write(WOLFSSL_BIO* bio, const void* data,
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#endif /* WOLFCRYPT_ONLY */
|
||||
|
||||
|
||||
/* Writes to a WOLFSSL_BIO_BIO type.
|
||||
@ -516,6 +522,7 @@ int wolfSSL_BIO_write(WOLFSSL_BIO* bio, const void* data, int len)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef WOLFCRYPT_ONLY
|
||||
if (bio && bio->type == WOLFSSL_BIO_SSL) {
|
||||
/* already got eof, again is error */
|
||||
if (bio && front->eof) {
|
||||
@ -525,6 +532,7 @@ int wolfSSL_BIO_write(WOLFSSL_BIO* bio, const void* data, int len)
|
||||
ret = wolfSSL_BIO_SSL_write(bio, data, len, front);
|
||||
}
|
||||
}
|
||||
#endif /* WOLFCRYPT_ONLY */
|
||||
|
||||
/* advance to the next bio in list */
|
||||
bio = bio->next;
|
||||
@ -841,9 +849,11 @@ size_t wolfSSL_BIO_ctrl_pending(WOLFSSL_BIO *bio)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef WOLFCRYPT_ONLY
|
||||
if (bio->type == WOLFSSL_BIO_SSL && bio->ptr != NULL) {
|
||||
return (long)wolfSSL_pending((WOLFSSL*)bio->ptr);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (bio->type == WOLFSSL_BIO_MEMORY) {
|
||||
return bio->wrSz;
|
||||
@ -1511,5 +1521,33 @@ int wolfSSL_BIO_meth_set_destroy(WOLFSSL_BIO_METHOD *biom,
|
||||
}
|
||||
|
||||
|
||||
/* this compatibility function can be used for multiple BIO types */
|
||||
int wolfSSL_BIO_get_mem_data(WOLFSSL_BIO* bio, void* p)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_BIO_get_mem_data");
|
||||
|
||||
if (bio == NULL)
|
||||
return WOLFSSL_FATAL_ERROR;
|
||||
|
||||
if (p) {
|
||||
*(byte**)p = (byte*)bio->ptr;
|
||||
}
|
||||
|
||||
return bio->num;
|
||||
}
|
||||
|
||||
int wolfSSL_BIO_pending(WOLFSSL_BIO* bio)
|
||||
{
|
||||
return (int)wolfSSL_BIO_ctrl_pending(bio);
|
||||
}
|
||||
|
||||
|
||||
int wolfSSL_BIO_flush(WOLFSSL_BIO* bio)
|
||||
{
|
||||
/* for wolfSSL no flushing needed */
|
||||
WOLFSSL_ENTER("BIO_flush");
|
||||
(void)bio;
|
||||
return 1;
|
||||
}
|
||||
#endif /* WOLFSSL_BIO_INCLUDED */
|
||||
|
||||
|
@ -5631,6 +5631,18 @@ exit_ed_verify:
|
||||
return (double)k_uptime_get() / 1000;
|
||||
}
|
||||
|
||||
#elif defined(WOLFSSL_NETBURNER)
|
||||
#include <predef.h>
|
||||
#include <utils.h>
|
||||
#include <constants.h>
|
||||
|
||||
double current_time(int reset)
|
||||
{
|
||||
DWORD ticks = TimeTick; /* ticks since system start */
|
||||
(void)reset;
|
||||
|
||||
return (double) ticks/TICKS_PER_SECOND;
|
||||
}
|
||||
#else
|
||||
|
||||
#include <sys/time.h>
|
||||
|
@ -8205,7 +8205,7 @@ static int CheckCertSignature_ex(const byte* cert, word32 certSz, void* heap,
|
||||
}
|
||||
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
sigCtx = XMALLOC(sizeof(*sigCtx), heap, DYNAMIC_TYPE_SIGNATURE);
|
||||
sigCtx = (SignatureCtx*)XMALLOC(sizeof(*sigCtx), heap, DYNAMIC_TYPE_SIGNATURE);
|
||||
if (sigCtx == NULL)
|
||||
return MEMORY_E;
|
||||
#endif
|
||||
|
@ -136,6 +136,10 @@ int wc_RNG_GenerateByte(WC_RNG* rng, byte* b)
|
||||
#include "fsl_rnga.h"
|
||||
#elif defined(WOLFSSL_WICED)
|
||||
#include "wiced_crypto.h"
|
||||
#elif defined(WOLFSSL_NETBURNER)
|
||||
#include <predef.h>
|
||||
#include <basictypes.h>
|
||||
#include <random.h>
|
||||
#elif defined(NO_DEV_RANDOM)
|
||||
#elif defined(CUSTOM_RAND_GENERATE)
|
||||
#elif defined(CUSTOM_RAND_GENERATE_BLOCK)
|
||||
@ -2100,6 +2104,27 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#elif defined(WOLFSSL_NETBURNER)
|
||||
#warning using NetBurner pseudo random GetRandomByte for seed
|
||||
int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
|
||||
{
|
||||
word32 i;
|
||||
(void)os;
|
||||
|
||||
if (output == NULL) {
|
||||
return BUFFER_E;
|
||||
}
|
||||
|
||||
for (i = 0; i < sz; i++) {
|
||||
output[i] = GetRandomByte();
|
||||
|
||||
/* check if was a valid random number */
|
||||
if (!RandomValid())
|
||||
return RNG_FAILURE_E;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#elif defined(IDIRECT_DEV_RANDOM)
|
||||
|
||||
extern int getRandom( int sz, unsigned char *output );
|
||||
|
@ -10850,6 +10850,8 @@ int rsa_no_pad_test(void)
|
||||
|
||||
#ifndef WOLFSSL_RSA_VERIFY_ONLY
|
||||
inLen = wc_RsaEncryptSize(&key);
|
||||
outSz = inLen;
|
||||
plainSz = inLen;
|
||||
XMEMSET(tmp, 7, inLen);
|
||||
do {
|
||||
#if defined(WOLFSSL_ASYNC_CRYPT)
|
||||
|
@ -180,7 +180,7 @@
|
||||
#define WOLFSSL_PTHREADS
|
||||
#include <pthread.h>
|
||||
#endif
|
||||
#ifdef OPENSSL_EXTRA
|
||||
#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM)
|
||||
#include <unistd.h> /* for close of BIO */
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1343,6 +1343,15 @@ extern void uITRON4_free(void *p) ;
|
||||
#endif
|
||||
#endif /* MICRIUM */
|
||||
|
||||
#ifdef WOLFSSL_MCF5441X
|
||||
#define BIG_ENDIAN_ORDER
|
||||
#ifndef SIZEOF_LONG
|
||||
#define SIZEOF_LONG 4
|
||||
#endif
|
||||
#ifndef SIZEOF_LONG_LONG
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_QL
|
||||
#ifndef WOLFSSL_SEP
|
||||
|
@ -145,7 +145,8 @@
|
||||
#define WOLFSSL_PTHREADS
|
||||
#include <pthread.h>
|
||||
#endif
|
||||
#if defined(OPENSSL_EXTRA) || defined(GOAHEAD_WS)
|
||||
#if (defined(OPENSSL_EXTRA) || defined(GOAHEAD_WS)) && \
|
||||
!defined(NO_FILESYSTEM)
|
||||
#include <unistd.h> /* for close of BIO */
|
||||
#endif
|
||||
#endif
|
||||
|
@ -42,7 +42,8 @@
|
||||
|
||||
#if !defined(WOLFSSL_USER_IO)
|
||||
/* Micrium uses NetSock I/O callbacks in wolfio.c */
|
||||
#if !defined(USE_WOLFSSL_IO) && !defined(MICRIUM) && !defined(WOLFSSL_CONTIKI)
|
||||
#if !defined(USE_WOLFSSL_IO) && !defined(MICRIUM) && \
|
||||
!defined(WOLFSSL_CONTIKI) && !defined(WOLFSSL_NO_SOCK)
|
||||
#define USE_WOLFSSL_IO
|
||||
#endif
|
||||
#endif
|
||||
@ -328,7 +329,7 @@ WOLFSSL_API int wolfIO_Recv(SOCKET_T sd, char *buf, int sz, int rdFlags);
|
||||
|
||||
#endif /* USE_WOLFSSL_IO || HAVE_HTTP_CLIENT */
|
||||
|
||||
|
||||
#ifndef WOLFSSL_NO_SOCK
|
||||
#ifdef USE_WINDOWS_API
|
||||
#ifndef CloseSocket
|
||||
#define CloseSocket(s) closesocket(s)
|
||||
@ -349,6 +350,7 @@ WOLFSSL_API int wolfIO_Recv(SOCKET_T sd, char *buf, int sz, int rdFlags);
|
||||
extern int close(int);
|
||||
#endif
|
||||
#endif
|
||||
#endif /* WOLFSSL_NO_SOCK */
|
||||
|
||||
|
||||
WOLFSSL_API int BioSend(WOLFSSL* ssl, char *buf, int sz, void *ctx);
|
||||
|
Reference in New Issue
Block a user