mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-08 14:20:51 +02:00
@@ -4,6 +4,11 @@ This directory contains project files for IAR EWARM IDE. These
|
||||
projects have been set up to generic ARM Cortex-M MPUs.
|
||||
In order to generate project for specific target MPU, take following steps.
|
||||
|
||||
** Note ** regarding Segger Embedded Operating System (embOS)
|
||||
The directory embOS contains projects specifically for embOS on IAR-EWARM.
|
||||
Only use this directory if you are building an IAR Workbench project that
|
||||
uses embOS
|
||||
|
||||
|
||||
Included Project Files
|
||||
-----------------------
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
*.bat
|
||||
*.xcl
|
||||
*.crun
|
||||
*.dbgdt
|
||||
*.dni
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
#-----------------------------------------------------------------------------#
|
||||
wolfSSL + embOS + IAR Workbench
|
||||
#-----------------------------------------------------------------------------#
|
||||
|
||||
#-----------------------------------------------------------------------------#
|
||||
For building the existing examples on a SAMV71_Explained_Ultra with Cortex M7
|
||||
#-----------------------------------------------------------------------------#
|
||||
|
||||
See SAMV71_XULT\<example>\README_<example>
|
||||
|
||||
I.E. SAMV71_XULT\embOS_wolfcrypt_lib_SAMV71_XULT\README_wolfcrypt_lib
|
||||
|
||||
#-----------------------------------------------------------------------------#
|
||||
For building wolfssl on a new CPU that is supported by embOS in IAR Workbench
|
||||
#-----------------------------------------------------------------------------#
|
||||
|
||||
See custom_port\README_custom_port
|
||||
|
||||
#-----------------------------------------------------------------------------#
|
||||
#-----------------------------------------------------------------------------#
|
||||
|
||||
Thank you for choosing wolfSSL if you ever have any questions please contact us!
|
||||
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
Each example project here has it's own README please follow them in detail.
|
||||
|
||||
embOS_wolfcrypt_benchmark_SAMV71_XULT\README_wolfcrypt_benchmark
|
||||
embOS_wolfcrypt_lib_SAMV71_XULT\README_wolfcrypt_lib
|
||||
embOS_wolfcrypt_test_SAMV71_XULT\README_wolfcrypt_test
|
||||
|
||||
|
||||
Thank you for using this guide and we hope this is helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* A simple example for evaluation purposes written from scratch by wolfSSL Inc
|
||||
*/
|
||||
|
||||
/*###ICF### ****/
|
||||
/*-Editor annotation file-*/
|
||||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
|
||||
/*-Specials-*/
|
||||
define symbol __ICFEDIT_intvec_start__ = 0x00400000;
|
||||
/*-Memory Regions-*/
|
||||
define symbol __ICFEDIT_region_RAM_start__ = 0x20400000;
|
||||
define symbol __ICFEDIT_region_RAM_end__ = 0x20459999;
|
||||
define symbol __ICFEDIT_region_ROM_start__ = 0x00400000;
|
||||
define symbol __ICFEDIT_region_ROM_end__ = 0x00599999;
|
||||
/*-Sizes-*/
|
||||
define symbol __ICFEDIT_size_cstack__ = 0x400;
|
||||
define symbol __ICFEDIT_size_heap__ = 0x13000;
|
||||
/**** ###ICF###*/
|
||||
|
||||
define memory mem with size = 4G;
|
||||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
|
||||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
|
||||
|
||||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
|
||||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
|
||||
|
||||
initialize by copy { readwrite };
|
||||
do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
place in ROM_region { readonly };
|
||||
place in RAM_region { readwrite, block CSTACK, block HEAP };
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
#ifndef _EMBOS_USER_SETTINGS_H_
|
||||
#define _EMBOS_USER_SETTINGS_H_
|
||||
|
||||
#undef WOLFSSL_EMBOS
|
||||
#define WOLFSSL_EMBOS
|
||||
|
||||
#undef WOLFCRYPT_ONLY
|
||||
#define WOLFCRYPT_ONLY
|
||||
|
||||
#undef NO_64BIT
|
||||
#define NO_64BIT
|
||||
|
||||
#undef SIZEOF_LONG
|
||||
#define SIZEOF_LONG 4
|
||||
|
||||
#undef SIZEOF_LONG_LONG
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
||||
#undef USE_FAST_MATH
|
||||
#define USE_FAST_MATH
|
||||
|
||||
#undef HAVE_CHACHA
|
||||
#define HAVE_CHACHA
|
||||
|
||||
#undef HAVE_POLY1305
|
||||
#define HAVE_POLY1305
|
||||
|
||||
#undef ECC_SHAMIR
|
||||
#define ECC_SHAMIR
|
||||
|
||||
#undef HAVE_ECC
|
||||
#define HAVE_ECC
|
||||
|
||||
#undef ECC_USER_CURVES
|
||||
#define ECC_USER_CURVES
|
||||
|
||||
#undef ECC_ALT_SIZE
|
||||
#define ECC_ALT_SIZE
|
||||
|
||||
#undef FP_MAX_BITS_ECC
|
||||
#define FP_MAX_BITS_ECC 528
|
||||
|
||||
#undef TFM_TIMING_RESISTANT
|
||||
#define TFM_TIMING_RESISTANT
|
||||
|
||||
#undef WOLFSSL_SHA512
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
#undef WOLFSSL_SHA384
|
||||
#define WOLFSSL_SHA384
|
||||
|
||||
#undef HAVE_AESGCM
|
||||
#define HAVE_AESGCM
|
||||
|
||||
#undef NO_INLINE
|
||||
#define NO_INLINE
|
||||
|
||||
#undef BENCH_EMBEDDED
|
||||
#define BENCH_EMBEDDED
|
||||
|
||||
#undef WOLFSSL_SMALL_STACK
|
||||
#define WOLFSSL_SMALL_STACK
|
||||
|
||||
#undef USE_WOLFSSL_MEMORY
|
||||
#define USE_WOLFSSL_MEMORY
|
||||
|
||||
#endif /* _EMBOS_USER_SETTINGS_H_ */
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
#ifndef _EMBOS_USER_SETTINGS_H_
|
||||
#define _EMBOS_USER_SETTINGS_H_
|
||||
|
||||
#undef WOLFCRYPT_ONLY
|
||||
#define WOLFCRYPT_ONLY
|
||||
|
||||
#undef NO_64BIT
|
||||
#define NO_64BIT
|
||||
|
||||
#undef SIZEOF_LONG
|
||||
#define SIZEOF_LONG 4
|
||||
|
||||
#undef SIZEOF_LONG_LONG
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
||||
#undef HAVE_CHACHA
|
||||
#define HAVE_CHACHA
|
||||
|
||||
#undef HAVE_POLY1305
|
||||
#define HAVE_POLY1305
|
||||
|
||||
#undef ECC_SHAMIR
|
||||
#define ECC_SHAMIR
|
||||
|
||||
#undef HAVE_ECC
|
||||
#define HAVE_ECC
|
||||
|
||||
#undef WOLFSSL_SHA512
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
#undef WOLFSSL_SHA384
|
||||
#define WOLFSSL_SHA384
|
||||
|
||||
#undef HAVE_AESGCM
|
||||
#define HAVE_AESGCM
|
||||
|
||||
#undef NO_INLINE
|
||||
#define NO_INLINE
|
||||
|
||||
#undef BENCH_EMBEDDED
|
||||
#define BENCH_EMBEDDED
|
||||
|
||||
#endif /* _EMBOS_USER_SETTINGS_H_ */
|
||||
+191
@@ -0,0 +1,191 @@
|
||||
#ifndef _EMBOS_USER_SETTINGS_H_
|
||||
#define _EMBOS_USER_SETTINGS_H_
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Platform */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
#undef NO_INLINE
|
||||
#define NO_INLINE
|
||||
|
||||
#undef SINGLE_THREADED
|
||||
#define SINGLE_THREADED
|
||||
|
||||
#undef WOLFSSL_SMALL_STACK
|
||||
#define WOLFSSL_SMALL_STACK
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Math Configuration */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
#undef NO_64BIT
|
||||
#define NO_64BIT
|
||||
|
||||
#ifndef SIZEOF_LONG
|
||||
#define SIZEOF_LONG 4
|
||||
#endif
|
||||
#ifndef SIZEOF_LONG_LONG
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
#endif
|
||||
|
||||
#undef USE_FAST_MATH
|
||||
#define USE_FAST_MATH
|
||||
|
||||
#ifdef USE_FAST_MATH
|
||||
#undef TFM_TIMING_RESISTANT
|
||||
// #define TFM_TIMING_RESISTANT
|
||||
|
||||
/* Optimizations (TFM_ARM, TFM_ASM or none) */
|
||||
#undef TFM_ARM
|
||||
// #define TFM_ARM
|
||||
|
||||
#undef TFM_ASM
|
||||
//#define TFM_ASM
|
||||
#endif
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Crypto */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
#undef WOLFCRYPT_ONLY
|
||||
#define WOLFCRYPT_ONLY
|
||||
|
||||
/* ECC */
|
||||
#if 1
|
||||
#undef HAVE_ECC
|
||||
#define HAVE_ECC
|
||||
|
||||
/* Manually define enabled curves */
|
||||
#undef ECC_USER_CURVES
|
||||
#define ECC_USER_CURVES
|
||||
|
||||
#define HAVE_ECC192
|
||||
#define HAVE_ECC224
|
||||
#undef NO_ECC256
|
||||
#define HAVE_ECC384
|
||||
#define HAVE_ECC521
|
||||
|
||||
/* Fixed point cache (speeds repeated operations against same private key) */
|
||||
#undef FP_ECC
|
||||
//#define FP_ECC
|
||||
#ifdef FP_ECC
|
||||
/* Bits / Entries */
|
||||
#undef FP_ENTRIES
|
||||
#define FP_ENTRIES 2
|
||||
#undef FP_LUT
|
||||
#define FP_LUT 4
|
||||
#endif
|
||||
|
||||
/* Optional ECC calculation method */
|
||||
/* Note: doubles heap usage, but slightly faster */
|
||||
#undef ECC_SHAMIR
|
||||
#define ECC_SHAMIR
|
||||
|
||||
/* Reduces heap usage, but slower */
|
||||
#undef ECC_TIMING_RESISTANT
|
||||
#define ECC_TIMING_RESISTANT
|
||||
|
||||
#ifdef USE_FAST_MATH
|
||||
/* Max ECC bits (curve size * 8). ECC521 is (66*8) = 528. */
|
||||
#undef ALT_ECC_SIZE
|
||||
#define ALT_ECC_SIZE
|
||||
#undef FP_MAX_BITS_ECC
|
||||
#define FP_MAX_BITS_ECC 528
|
||||
|
||||
/* Enable TFM optimizations for ECC */
|
||||
#define TFM_ECC192
|
||||
#define TFM_ECC224
|
||||
#define TFM_ECC256
|
||||
#define TFM_ECC384
|
||||
#define TFM_ECC521
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* RSA */
|
||||
#undef NO_RSA
|
||||
#if 1
|
||||
#ifdef USE_FAST_MATH
|
||||
/* Maximum math bits (Max RSA key bits * 2) */
|
||||
#undef FP_MAX_BITS
|
||||
#define FP_MAX_BITS 4096
|
||||
#endif
|
||||
|
||||
/* half as much memory but twice as slow */
|
||||
#undef RSA_LOW_MEM
|
||||
//#define RSA_LOW_MEM
|
||||
#else
|
||||
#define NO_RSA
|
||||
#endif
|
||||
|
||||
/* AES */
|
||||
#undef NO_AES
|
||||
#if 1
|
||||
#undef HAVE_AESGCM
|
||||
#define HAVE_AESGCM
|
||||
|
||||
/* GCM Method: GCM_SMALL, GCM_WORD32 or GCM_TABLE */
|
||||
#undef GCM_SMALL
|
||||
#define GCM_SMALL
|
||||
#else
|
||||
#define NO_AES
|
||||
#endif
|
||||
|
||||
/* ChaCha20 / Poly1305 */
|
||||
#undef HAVE_CHACHA
|
||||
#undef HAVE_POLY1305
|
||||
#if 1
|
||||
#define HAVE_CHACHA
|
||||
#define HAVE_POLY1305
|
||||
|
||||
/* Needed for Poly1305 */
|
||||
#undef HAVE_ONE_TIME_AUTH
|
||||
#define HAVE_ONE_TIME_AUTH
|
||||
#endif
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Hashing */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Sha */
|
||||
#undef NO_SHA
|
||||
#if 1
|
||||
#else
|
||||
#define NO_SHA
|
||||
#endif
|
||||
|
||||
/* Sha256 */
|
||||
#undef NO_SHA256
|
||||
#if 1
|
||||
/* over twice as small, but 50% slower */
|
||||
//#define USE_SLOW_SHA2
|
||||
#else
|
||||
#define NO_SHA256
|
||||
#endif
|
||||
|
||||
/* Sha512 */
|
||||
#undef WOLFSSL_SHA512
|
||||
#if 1
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
/* Sha384 */
|
||||
#undef WOLFSSL_SHA384
|
||||
#if 1
|
||||
#define WOLFSSL_SHA384
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* MD5 */
|
||||
#undef NO_MD5
|
||||
#if 1
|
||||
#define NO_MD5
|
||||
#endif
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Benchmark / Test */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Use reduced benchmark / test sizes */
|
||||
#undef BENCH_EMBEDDED
|
||||
#define BENCH_EMBEDDED
|
||||
|
||||
#undef USE_CERT_BUFFERS_2048
|
||||
#define USE_CERT_BUFFERS_2048
|
||||
|
||||
#endif /* _EMBOS_USER_SETTINGS_H_ */
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
#include "RTOS.h"
|
||||
#include "BSP.h"
|
||||
#include <stdio.h>
|
||||
#include <wolfcrypt/benchmark/benchmark.h>
|
||||
|
||||
static OS_STACKPTR int WLFSTACK[20000]; /* Stack Size for Task */
|
||||
static OS_TASK WLFTASK; /* Task */
|
||||
|
||||
static void wolfTask(void) {
|
||||
printf("Begin Benchmark Tests\n");
|
||||
benchmark_test(NULL);
|
||||
printf("Benchmark Tests Complete\n");
|
||||
while (1) {
|
||||
BSP_ToggleLED(1);
|
||||
OS_Delay(200);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main(void) {
|
||||
OS_IncDI(); /* Disable interrupts */
|
||||
OS_InitKern(); /* Initialize OS */
|
||||
OS_InitHW(); /* Initialize Hardware */
|
||||
BSP_Init(); /* Initialize LED ports */
|
||||
/* You need to create at least one task before calling OS_Start() */
|
||||
OS_CREATETASK(&WLFTASK, "Tests task", wolfTask, 100, WLFSTACK);
|
||||
OS_Start(); /* Start the OS */
|
||||
return 0;
|
||||
}
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
Steps taken to evaluate wolfSSL with the following:
|
||||
|
||||
Required Software for this guide:
|
||||
IAR Embedded Workbench IDE - ARM v7.60.1 (or similar version)
|
||||
embOS v4.16 (for Cortex-M and IAR compiler)
|
||||
wolfssl (latest version)
|
||||
|
||||
Required items (Hardware) for this guide:
|
||||
Atmel SAM V71 Xplained Ultra (Or equivelent Cortex-M Evaluation Board)
|
||||
Note: Must have J-Trace adapter (SWD or SWD + ETM)
|
||||
j-Trace for ARM Cortex-M Processors
|
||||
Note: You can see here: https://www.segger.com/j-trace-for-cortex-m.html
|
||||
Note: You can also purchase other models, we used one from IAR v3.2
|
||||
20 pin target ribbon cable
|
||||
USB Cable with j-Trace adapter end
|
||||
Micro usb cable
|
||||
|
||||
#--!! NOTE !!--#
|
||||
For this guide "**SAMV71_DIR" will signify the directory:
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\SAMV71_XULT\
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# Setup file system to evaluate wolfssl in embOS project:
|
||||
# (If you have not already done so)
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. In wolfssl you will notice the directory:
|
||||
wolfssl\IDE\IAR-EWARM\embOS\extract_trial_here
|
||||
|
||||
2. go to embOS website and download a trial for your platform
|
||||
https://www.segger.com/downloads/embos ->
|
||||
embOS trial for Cortex-M and IAR compiler
|
||||
|
||||
3. Extract (unzip) the download to
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\extract_trial_here\
|
||||
(Note: you do not need to do anything further in this directory, the
|
||||
wolfSSL evaluation projects will simply link against it)
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# Evaluate wolfcrypt_benchmarks in embOS project:
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. In IAR Workbench go to Project -> Add Existing Project
|
||||
a. Browse to **SAMV71_DIR\embOS_wolfcrypt_benchmark_SAMV71_XULT\
|
||||
b. Choose wolfcrypt_benchmark.ewp and click "Open"
|
||||
|
||||
2. Go to Project -> Rebuild All
|
||||
|
||||
3. Connect your SAMV71 Xplained Ultra to your PC with micro USB in the "Debug"
|
||||
port for power and the J-Link hooked up to SWD pins and your PC
|
||||
|
||||
4. Go to Project -> Download and Debug
|
||||
|
||||
5. Once the "Debug" environment has loaded go to: View -> Terminal I/O
|
||||
(This is where the printf's will be directed to)
|
||||
|
||||
6. Hit "Go" (Debug option with 3 right arrows "→→→")
|
||||
|
||||
7. You should observe the benchmark times for the configured algorithms.
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
Thank you for using this guide and we hope this was helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
[BREAKPOINTS]
|
||||
ForceImpTypeAny = 0
|
||||
ShowInfoWin = 1
|
||||
EnableFlashBP = 2
|
||||
BPDuringExecution = 0
|
||||
[CFI]
|
||||
CFISize = 0x00
|
||||
CFIAddr = 0x00
|
||||
[CPU]
|
||||
MonModeVTableAddr = 0xFFFFFFFF
|
||||
MonModeDebug = 0
|
||||
MaxNumAPs = 0
|
||||
LowPowerHandlingMode = 0
|
||||
OverrideMemMap = 0
|
||||
AllowSimulation = 1
|
||||
ScriptFile=""
|
||||
[FLASH]
|
||||
CacheExcludeSize = 0x00
|
||||
CacheExcludeAddr = 0x00
|
||||
MinNumBytesFlashDL = 0
|
||||
SkipProgOnCRCMatch = 1
|
||||
VerifyDownload = 1
|
||||
AllowCaching = 1
|
||||
EnableFlashDL = 2
|
||||
Override = 1
|
||||
Device="ATSAMV71Q21"
|
||||
[GENERAL]
|
||||
WorkRAMSize = 0x00
|
||||
WorkRAMAddr = 0x00
|
||||
RAMUsageLimit = 0x00
|
||||
[SWO]
|
||||
SWOLogFile=""
|
||||
[MEM]
|
||||
RdOverrideOrMask = 0x00
|
||||
RdOverrideAndMask = 0xFFFFFFFF
|
||||
RdOverrideAddr = 0xFFFFFFFF
|
||||
WrOverrideOrMask = 0x00
|
||||
WrOverrideAndMask = 0xFFFFFFFF
|
||||
WrOverrideAddr = 0xFFFFFFFF
|
||||
+3163
File diff suppressed because it is too large
Load Diff
+1995
File diff suppressed because it is too large
Load Diff
+2382
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,44 @@
|
||||
Steps taken to evaluate wolfSSL with the following:
|
||||
|
||||
Required Software for this guide:
|
||||
IAR Embedded Workbench IDE - ARM v7.60.1 (or similar version)
|
||||
embOS v4.16 (for Cortex-M and IAR compiler)
|
||||
wolfssl (latest version)
|
||||
|
||||
Required items (Hardware) for this guide:
|
||||
Atmel SAM V71 Xplained Ultra (Or equivelent Cortex-M Evaluation Board)
|
||||
Note: Must have J-Trace adapter (SWD or SWD + ETM)
|
||||
j-Trace for ARM Cortex-M Processors
|
||||
Note: You can see here: https://www.segger.com/j-trace-for-cortex-m.html
|
||||
Note: You can also purchase other models, we used one from IAR v3.2
|
||||
20 pin target ribbon cable
|
||||
USB Cable with j-Trace adapter end
|
||||
Micro usb cable
|
||||
|
||||
#--!! NOTE !!--#
|
||||
For this guide "**SAMV71_DIR" will signify the directory:
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\SAMV71_XULT\
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# Create wolfcrypt_lib.a
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. Open IAR Workbench -> Project -> Add Existing Project
|
||||
a. Browse to **SAMV71_DIR\embOS_wolfcrypt_lib
|
||||
c. Choose wolfcrypt_lib.ewp and click "Open"
|
||||
|
||||
2. Go to Project -> Rebuild All
|
||||
|
||||
3. Verify the library built, you should now have:
|
||||
**SAMV71_DIR\embOS_wolfcrypt_lib\Debug\Bin\wolfcrypt_lib.a
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
Thank you for using this guide and we hope this was helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+29
@@ -0,0 +1,29 @@
|
||||
#include "RTOS.h"
|
||||
#include "BSP.h"
|
||||
#include <stdio.h>
|
||||
#include <wolfcrypt/test/test.h>
|
||||
|
||||
static OS_STACKPTR int WLFSTACK[20000]; /* Stack Size for Task */
|
||||
static OS_TASK WLFTASK; /* Task */
|
||||
|
||||
static void wolfTask(void) {
|
||||
printf("Begin wolfcrypt tests\n");
|
||||
wolfcrypt_test(NULL);
|
||||
printf("wolfcrypt tests complete.\n");
|
||||
while (1) {
|
||||
BSP_ToggleLED(1);
|
||||
OS_Delay(200);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main(void) {
|
||||
OS_IncDI(); /* Disable interrupts */
|
||||
OS_InitKern(); /* Initialize OS */
|
||||
OS_InitHW(); /* Initialize Hardware for OS */
|
||||
BSP_Init(); /* Initialize LED ports */
|
||||
/* You need to create at least one task before calling OS_Start() */
|
||||
OS_CREATETASK(&WLFTASK, "Tests task", wolfTask, 100, WLFSTACK);
|
||||
OS_Start(); /* Start the OS */
|
||||
return 0;
|
||||
}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
Steps taken to evaluate wolfSSL with the following:
|
||||
|
||||
Required Software for this guide:
|
||||
IAR Embedded Workbench IDE - ARM v7.60.1 (or similar version)
|
||||
embOS v4.16 (for Cortex-M and IAR compiler)
|
||||
wolfssl (latest version)
|
||||
|
||||
Required items (Hardware) for this guide:
|
||||
Atmel SAM V71 Xplained Ultra (Or equivelent Cortex-M Evaluation Board)
|
||||
Note: Must have J-Trace adapter (SWD or SWD + ETM)
|
||||
j-Trace for ARM Cortex-M Processors
|
||||
Note: You can see here: https://www.segger.com/j-trace-for-cortex-m.html
|
||||
Note: You can also purchase other models, we used one from IAR v3.2
|
||||
20 pin target ribbon cable
|
||||
USB Cable with j-Trace adapter end
|
||||
Micro usb cable
|
||||
|
||||
#--!! NOTE !!--#
|
||||
For this guide "**SAMV71_DIR" will signify the directory:
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\SAMV71_XULT\
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# Setup file system to evaluate wolfssl in embOS project:
|
||||
# (If you have not already done so)
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. In wolfssl you will notice the directory:
|
||||
wolfssl\IDE\IAR-EWARM\embOS\extract_trial_here
|
||||
|
||||
2. go to embOS website and download a trial for your platform
|
||||
https://www.segger.com/downloads/embos ->
|
||||
embOS trial for Cortex-M and IAR compiler
|
||||
|
||||
3. Extract (unzip) the download to
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\extract_trial_here\
|
||||
(Note: you do not need to do anything further in this directory, the
|
||||
wolfSSL evaluation projects will simply link against it)
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# Evaluate wolfcrypt_tests in embOS project:
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. In IAR Workbench go to Project -> Add Existing Project
|
||||
a. Browse to **SAMV71_DIR\embOS_wolfcrypt_test_SAMV71_XULT\
|
||||
b. Choose wolfcrypt_test.ewp and click "Open"
|
||||
|
||||
2. Go to Project -> Rebuild All
|
||||
|
||||
3. Connect your SAMV71 Xplained Ultra to your PC with micro USB in the "Debug"
|
||||
port for power and the J-Link hooked up to SWD pins and your PC
|
||||
|
||||
4. Go to Project -> Download and Debug
|
||||
|
||||
5. Once the "Debug" environment has loaded go to: View -> Terminal I/O
|
||||
(This is where the printf's will be directed to)
|
||||
|
||||
6. Hit "Go" (Debug option with 3 right arrows "→→→")
|
||||
|
||||
7. You should observe the tests run and pass.
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
Thank you for using this guide and we hope this was helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
[BREAKPOINTS]
|
||||
ForceImpTypeAny = 0
|
||||
ShowInfoWin = 1
|
||||
EnableFlashBP = 2
|
||||
BPDuringExecution = 0
|
||||
[CFI]
|
||||
CFISize = 0x00
|
||||
CFIAddr = 0x00
|
||||
[CPU]
|
||||
MonModeVTableAddr = 0xFFFFFFFF
|
||||
MonModeDebug = 0
|
||||
MaxNumAPs = 0
|
||||
LowPowerHandlingMode = 0
|
||||
OverrideMemMap = 0
|
||||
AllowSimulation = 1
|
||||
ScriptFile=""
|
||||
[FLASH]
|
||||
CacheExcludeSize = 0x00
|
||||
CacheExcludeAddr = 0x00
|
||||
MinNumBytesFlashDL = 0
|
||||
SkipProgOnCRCMatch = 1
|
||||
VerifyDownload = 1
|
||||
AllowCaching = 1
|
||||
EnableFlashDL = 2
|
||||
Override = 1
|
||||
Device="ATSAMV71Q21"
|
||||
[GENERAL]
|
||||
WorkRAMSize = 0x00
|
||||
WorkRAMAddr = 0x00
|
||||
RAMUsageLimit = 0x00
|
||||
[SWO]
|
||||
SWOLogFile=""
|
||||
[MEM]
|
||||
RdOverrideOrMask = 0x00
|
||||
RdOverrideAndMask = 0xFFFFFFFF
|
||||
RdOverrideAddr = 0xFFFFFFFF
|
||||
WrOverrideOrMask = 0x00
|
||||
WrOverrideAndMask = 0xFFFFFFFF
|
||||
WrOverrideAddr = 0xFFFFFFFF
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,222 @@
|
||||
Steps taken to evaluate wolfSSL with the following:
|
||||
|
||||
Required Software for this guide:
|
||||
IAR Embedded Workbench IDE - ARM v7.60.1 (or similar version)
|
||||
embOS (version that supports your CPU)
|
||||
wolfssl (latest version)
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# SECTION 1:
|
||||
# Setting up the file system
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. Browse to wolfssl/IDE/IAR-EWARM/embOS/
|
||||
a. copy/paste the directory custom_port and re-name it to the CPU
|
||||
you intend to target. For now we will just use the term CUSTOM_DIR
|
||||
to signify a copy of the custom_port directory
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# SECTION 2:
|
||||
# Create wolfcrypt_lib.a
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
1. Open IAR Workbench -> Project -> Create New Project -> Empty Project
|
||||
c. Browse to CUSTOM_DIR/wolfcrypt_lib_custom_port/ (from section 1)
|
||||
d. Called it "wolfcrypt_lib" and hit "Save"
|
||||
|
||||
2. Go to Project -> Add Group...
|
||||
a. call group wolfcrypt_sources
|
||||
|
||||
3. Right click on wolfcrypt_sources group -> Add -> Add Files...
|
||||
|
||||
4. Browse to wolfssl/wolfcrypt/src directory and select the following files:
|
||||
|
||||
#---------------------------------------------#
|
||||
# aes.c memory.c #
|
||||
# asn.c misc.c #
|
||||
# chacha.c poly1305.c #
|
||||
# chacha20_poly1305.c pwdbased.c #
|
||||
# coding.c rabbit.c #
|
||||
# des3.c random.c #
|
||||
# dh.c rsa.c #
|
||||
# dsa.c sha.c #
|
||||
# ecc.c sha256.c #
|
||||
# hash.c sha512.c #
|
||||
# hmac.c tfm.c #
|
||||
# md4.c wc_encrypt.c #
|
||||
# md5.c wc_port.c #
|
||||
#---------------------------------------------#
|
||||
|
||||
5. Once those are all added go to
|
||||
Project -> Properties C/C++ Compiler -> Preprocessor (Tab)
|
||||
a. In the field "Defined symbols:" add WOLFSSL_USER_SETTINGS
|
||||
b. In the field "Additional include directories:"
|
||||
put in this line: $PROJ_DIR$\..\..\..\..\..\
|
||||
and this line: $PROJ_DIR$\..\custom_port_user_settings
|
||||
#---------------------------------------------
|
||||
#(Or alternately you can use the browse option to navigate to
|
||||
#C:\<path-to>\wolfssl and
|
||||
#C:\<path-to>\wolfssl\IDE\IAR-EWARM\CUSTOM_DIR\
|
||||
# custom_port_user_settings\)
|
||||
#(If you ever need to change or customize your build settings this
|
||||
#is the file that should be modified:
|
||||
#CUSTOM_DIR\custom_port_user_settings\user_settings.h)
|
||||
#---------------------------------------------
|
||||
|
||||
7. In Project -> Options -> General Options -> Output (Tab)
|
||||
Check the option for "Library" instead of "Executable"
|
||||
Click "OK"
|
||||
|
||||
8. Go to Project -> Rebuild all (The library should build)
|
||||
|
||||
9. Confirm the library is now located here:
|
||||
C:\<path to>\wolfssl\IDE\IAR-EWARM\CUSTOM_DIR\wolfcrypt_lib_custom_port\
|
||||
Debug\Exe\wolfcrypt_lib.a
|
||||
|
||||
We are now set to link to this library in the evaluation project
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# SECTION 3:
|
||||
# Evaluate wolfcrypt tests in embOS project:
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
|
||||
1. go to embOS website and download a trial for your platform
|
||||
https://www.segger.com/downloads/embos ->
|
||||
embOS trial for Cortex-M and IAR compiler
|
||||
|
||||
2. After downloading, extract the zip to:
|
||||
C:\<path-to>\wolfssl\IDE\IAR-EWARM\embOS\extract_trial_here\
|
||||
|
||||
3. Open IAR Workbench -> Project -> Create New Project -> Empty Project
|
||||
c. Browse to CUSTOM_DIR\wolfcrypt_test_custom_port\ (from section 1)
|
||||
d. Called it "wolfcrypt_test" and hit "Save"
|
||||
|
||||
4. Go to Project -> Options -> C/C++ Compiler -> Preprocessor (Tab)
|
||||
a. Add these to the field "Defined symbols:"
|
||||
DEBUG=1
|
||||
__CPU-YOU-ARE-TARGETING__ (For example: __SAMV71Q21__)
|
||||
WOLFSSL_USER_SETTINGS
|
||||
|
||||
b. Now in the field "Additional include directories:"
|
||||
$PROJ_DIR$\..\..\..\..\..\
|
||||
$PROJ_DIR$\..\custom_port_user_settings
|
||||
#---------------------------------------------
|
||||
#(Or alternately you can use the browse option to navigate to
|
||||
#C:\<path-to>\wolfssl and
|
||||
#C:\<path-to>\wolfssl\IDE\IAR-EWARM\CUSTOM_DIR\
|
||||
# custom_port_user_settings\)
|
||||
#---------------------------------------------
|
||||
|
||||
5. Go to Project -> Options -> Linker -> Library (Tab)
|
||||
Add to the field "Additonal libraries:"
|
||||
$PROJ_DIR$\..\embOS_wolfcrypt_lib_SAMV71_XULT\Debug\Exe\wolfcrypt_lib.a
|
||||
$PROJ_DIR$\..\..\extract_trial_here\Start\Lib\os7m_tlv_dp.a
|
||||
|
||||
6. The main project file is located here:
|
||||
CUSTOM_DIR\wolfcrypt_test_custom_port\Application\runWolfcryptTests.c
|
||||
|
||||
7. Right Click the project name: Add -> Add Group
|
||||
add a group called "Application"
|
||||
8. Right Click that group and Add -> Add files
|
||||
browse to the main project file in step 5 above
|
||||
|
||||
9. Create Groups and add files for your CPU's support. These will be .c
|
||||
files found in the extracted directory in two places:
|
||||
|
||||
extract_trial_here\Start\BoardSupport\<vendor>\<CPU>\DeviceSupport
|
||||
extract_trial_here\Start\BoardSupport\<vendor>\<CPU>\Setup
|
||||
#---------------------------------------------
|
||||
# For example:
|
||||
# extract_trial_here\Start\BoardSupport\Atmel\SAMV71_XPlainedUltra\
|
||||
# DeviceSupport
|
||||
# extract_trial_here\Start\BoardSupport\Atmel\SAMV71_XPlainedUltra\Setup
|
||||
#---------------------------------------------
|
||||
|
||||
10. To get Logging working for seeing test results:
|
||||
a. Go to Project -> Options -> General Options -> Library Configuration
|
||||
b. In the field "Library low-level interface implementation"
|
||||
Check the radio button for Semihosted
|
||||
Then in the inner field marked "stdout/stderr"
|
||||
Check the radio button for "Via semihosting" and click "OK"
|
||||
|
||||
11. Now we're ready to build and debug the project.
|
||||
a. Project -> Options -> Debugger
|
||||
In the field marked "Driver" Select drop-down and choose J-Link/J-Trace
|
||||
Click "OK"
|
||||
b. Project -> Rebuild All
|
||||
c. Connect your Cortex-M evaluation board to j-Trace and j-Trace to PC
|
||||
d. Connect the micro-USB to the debug port of the Cortex-M and PC for power
|
||||
e. Project -> Download and Debug
|
||||
|
||||
12. Once the Debug environment spawns go to View -> Terminal I/O
|
||||
This is where the "printf" to stdout will be directed
|
||||
|
||||
13. In the Debug Menu bar look for the little square with three arrows pointing
|
||||
to the right. When you mouse over it should say "GO"
|
||||
Click this option and in the Terminal I/O Window you should see something
|
||||
like this (depends on which functionality you set in user_settings.h)
|
||||
|
||||
SEE NOTE 1 BELOW IF YOU OBSERVE AN ERROR (-40) IN RSA TEST
|
||||
|
||||
Begin wolfcrypt tests
|
||||
MD5 test passed!
|
||||
MD4 test passed!
|
||||
SHA test passed!
|
||||
SHA-256 test passed!
|
||||
SHA-384 test passed!
|
||||
SHA-512 test passed!
|
||||
HMAC-MD5 test passed!
|
||||
HMAC-SHA test passed!
|
||||
HMAC-SHA256 test passed!
|
||||
HMAC-SHA384 test passed!
|
||||
HMAC-SHA512 test passed!
|
||||
GMAC test passed!
|
||||
HC-128 test passed!
|
||||
Rabbit test passed!
|
||||
Chacha test passed!
|
||||
POLY1305 test passed!
|
||||
ChaCha20-Poly1305 AEAD test passed!
|
||||
DES test passed!
|
||||
DES3 test passed!
|
||||
AES test passed!
|
||||
AES-GCM test passed!
|
||||
RANDOM test passed!
|
||||
RSA test passed!
|
||||
DH test passed!
|
||||
DSA test passed!
|
||||
PWDBASED test passed!
|
||||
ECC test passed!
|
||||
wolfcrypt tests complete.
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# SECTION 4:
|
||||
# Evaluate benchmark tests in embOS project:
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
Follow the steps from section 3 only using
|
||||
CUSTOM_DIR\wolfcrypt_benchmark_custom_port\
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
#----------------------------------------------------------------------------#
|
||||
|
||||
Thank you for using this guide and we hope this was helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
/* --------------------------------------------------------------------------*/
|
||||
#### NOTE 1: ####
|
||||
|
||||
If you are working off of a base example project and you observe memory errors
|
||||
when malloc is called, make sure that the linker script has set the HEAP high
|
||||
enough.
|
||||
Project -> Options -> Linker -> (Config Tab) -> Linker configuration file
|
||||
|
||||
Check this file for __size_heap__ it is typically set to 0x200 by default.
|
||||
There are places in wolfSSL that malloc as much as 4k at a time and peak usage
|
||||
can be as high as 29K if using full functionality.
|
||||
/* --------------------------------------------------------------------------*/
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* A simple example for evaluation purposes written from scratch by wolfSSL Inc
|
||||
*/
|
||||
|
||||
/*###ICF### ****/
|
||||
/*-Editor annotation file-*/
|
||||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
|
||||
/*-Specials-*/
|
||||
define symbol __ICFEDIT_intvec_start__ = 0x00400000;
|
||||
/*-Memory Regions-*/
|
||||
define symbol __ICFEDIT_region_RAM_start__ = 0x20400000;
|
||||
define symbol __ICFEDIT_region_RAM_end__ = 0x20459999;
|
||||
define symbol __ICFEDIT_region_ROM_start__ = 0x00400000;
|
||||
define symbol __ICFEDIT_region_ROM_end__ = 0x00599999;
|
||||
/*-Sizes-*/
|
||||
define symbol __ICFEDIT_size_cstack__ = 0x400;
|
||||
define symbol __ICFEDIT_size_heap__ = 0x13000;
|
||||
/**** ###ICF###*/
|
||||
|
||||
define memory mem with size = 4G;
|
||||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
|
||||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
|
||||
|
||||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
|
||||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
|
||||
|
||||
initialize by copy { readwrite };
|
||||
do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
place in ROM_region { readonly };
|
||||
place in RAM_region { readwrite, block CSTACK, block HEAP };
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
#ifndef _EMBOS_USER_SETTINGS_H_
|
||||
#define _EMBOS_USER_SETTINGS_H_
|
||||
|
||||
#undef WOLFSSL_EMBOS
|
||||
#define WOLFSSL_EMBOS
|
||||
|
||||
#undef WOLFCRYPT_ONLY
|
||||
#define WOLFCRYPT_ONLY
|
||||
|
||||
#undef NO_64BIT
|
||||
#define NO_64BIT
|
||||
|
||||
#undef SIZEOF_LONG
|
||||
#define SIZEOF_LONG 4
|
||||
|
||||
#undef SIZEOF_LONG_LONG
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
||||
#undef HAVE_CHACHA
|
||||
#define HAVE_CHACHA
|
||||
|
||||
#undef HAVE_POLY1305
|
||||
#define HAVE_POLY1305
|
||||
|
||||
#undef ECC_SHAMIR
|
||||
#define ECC_SHAMIR
|
||||
|
||||
#undef HAVE_ECC
|
||||
#define HAVE_ECC
|
||||
|
||||
#undef ECC_USER_CURVES
|
||||
#define ECC_USER_CURVES
|
||||
|
||||
#undef ECC_ALT_SIZE
|
||||
#define ECC_ALT_SIZE
|
||||
|
||||
#undef FP_MAX_BITS_ECC
|
||||
#define FP_MAX_BITS_ECC 528
|
||||
|
||||
#undef TFM_TIMING_RESISTANT
|
||||
#define TFM_TIMING_RESISTANT
|
||||
|
||||
#undef WOLFSSL_SHA512
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
#undef WOLFSSL_SHA384
|
||||
#define WOLFSSL_SHA384
|
||||
|
||||
#undef HAVE_AESGCM
|
||||
#define HAVE_AESGCM
|
||||
|
||||
#undef NO_INLINE
|
||||
#define NO_INLINE
|
||||
|
||||
#undef BENCH_EMBEDDED
|
||||
#define BENCH_EMBEDDED
|
||||
|
||||
#undef WOLFSSL_SMALL_STACK
|
||||
#define WOLFSSL_SMALL_STACK
|
||||
|
||||
#undef USE_WOLFSSL_MEMORY
|
||||
#define USE_WOLFSSL_MEMORY
|
||||
|
||||
#endif /* _EMBOS_USER_SETTINGS_H_ */
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
#include "RTOS.h"
|
||||
#include "BSP.h"
|
||||
#include <stdio.h>
|
||||
#include <wolfcrypt/benchmark/benchmark.h>
|
||||
|
||||
static OS_STACKPTR int WLFSTACK[20000]; /* Stack Size for Task */
|
||||
static OS_TASK WLFTASK; /* Task */
|
||||
|
||||
static void wolfTask(void) {
|
||||
printf("Begin benchmark tests\n");
|
||||
wolfcrypt_test(NULL);
|
||||
printf("benchmark tests complete.\n");
|
||||
while (1) {
|
||||
BSP_ToggleLED(1);
|
||||
OS_Delay(200);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main(void) {
|
||||
OS_IncDI(); /* Disable interrupts */
|
||||
OS_InitKern(); /* Initialize OS */
|
||||
OS_InitHW(); /* Initialize Hardware */
|
||||
BSP_Init(); /* Initialize LED ports */
|
||||
/* You need to create at least one task before calling OS_Start() */
|
||||
OS_CREATETASK(&WLFTASK, "Tests task", wolfTask, 100, WLFSTACK);
|
||||
OS_Start(); /* Start the OS */
|
||||
return 0;
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
#include "RTOS.h"
|
||||
#include "BSP.h"
|
||||
#include <stdio.h>
|
||||
#include <wolfcrypt/test/test.h>
|
||||
|
||||
static OS_STACKPTR int WLFSTACK[20000]; /* Stack Size for Task */
|
||||
static OS_TASK WLFTASK; /* Task */
|
||||
|
||||
static void wolfTask(void) {
|
||||
printf("Begin wolfcrypt tests\n");
|
||||
wolfcrypt_test(NULL);
|
||||
printf("wolfcrypt tests complete.\n");
|
||||
while (1) {
|
||||
BSP_ToggleLED(1);
|
||||
OS_Delay(200);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main(void) {
|
||||
OS_IncDI(); /* Disable interrupts */
|
||||
OS_InitKern(); /* Initialize OS */
|
||||
OS_InitHW(); /* Initialize Hardware for OS */
|
||||
BSP_Init(); /* Initialize LED ports */
|
||||
/* You need to create at least one task before calling OS_Start() */
|
||||
OS_CREATETASK(&WLFTASK, "Tests task", wolfTask, 100, WLFSTACK);
|
||||
OS_Start(); /* Start the OS */
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
An empty directory used when extracting segger trial.
|
||||
|
||||
|
||||
|
||||
*** For SAMV71_XULT project ***
|
||||
This trial can be found here:
|
||||
|
||||
https://www.segger.com/downloads/embos
|
||||
|
||||
Look for the Download for IAR compiler and Cortex M
|
||||
|
||||
The title should be: "embOS trial for Cortex-M and IAR compiler"
|
||||
|
||||
|
||||
|
||||
*** For custom port ***
|
||||
The trial will still be located at: https://www.segger.com/downloads/embos
|
||||
|
||||
However you will need to identify and download the correct project for your
|
||||
target CPU
|
||||
|
||||
|
||||
|
||||
|
||||
Thank you for using this guide and we hope this is helpful to you. If you have
|
||||
any suggestions / feedback for us please contact us:
|
||||
support@wolfssl.com
|
||||
info@wolfssl.com
|
||||
|
||||
Copyright © 2016 wolfSSL Inc. All rights reserved.
|
||||
|
||||
|
||||
@@ -1409,7 +1409,7 @@ void bench_dh(void)
|
||||
int i ;
|
||||
size_t bytes;
|
||||
word32 idx = 0, pubSz, privSz = 0, pubSz2, privSz2, agreeSz;
|
||||
const byte* tmp;
|
||||
const byte* tmp = NULL;
|
||||
|
||||
byte pub[256]; /* for 2048 bit */
|
||||
byte pub2[256]; /* for 2048 bit */
|
||||
@@ -2108,6 +2108,22 @@ void bench_ed25519KeySign(void)
|
||||
return (double)tv.SECONDS + (double)tv.MILLISECONDS / 1000;
|
||||
}
|
||||
|
||||
#elif defined(WOLFSSL_EMBOS)
|
||||
|
||||
#include "RTOS.h"
|
||||
|
||||
double current_time(int reset)
|
||||
{
|
||||
double time_now;
|
||||
double current_s = OS_GetTime() / 1000.0;
|
||||
double current_us = OS_GetTime_us() / 1000000.0;
|
||||
time_now = (double)( current_s + current_us);
|
||||
|
||||
(void) reset;
|
||||
|
||||
return time_now;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#include <sys/time.h>
|
||||
|
||||
@@ -145,7 +145,8 @@ int wc_FreeRng(WC_RNG* rng)
|
||||
#else
|
||||
#if !defined(NO_DEV_RANDOM) && !defined(CUSTOM_RAND_GENERATE) && \
|
||||
!defined(WOLFSSL_GENSEED_FORTEST) && !defined(WOLFSSL_MDK_ARM) && \
|
||||
!defined(WOLFSSL_IAR_ARM) && !defined(WOLFSSL_ROWLEY_ARM)
|
||||
!defined(WOLFSSL_IAR_ARM) && !defined(WOLFSSL_ROWLEY_ARM) && \
|
||||
!defined(WOLFSSL_EMBOS)
|
||||
#include <fcntl.h>
|
||||
#ifndef EBSNET
|
||||
#include <unistd.h>
|
||||
@@ -1361,7 +1362,8 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#elif defined(WOLFSSL_LPC43xx) || defined(WOLFSSL_STM32F2xx) || defined(MBED)
|
||||
#elif defined(WOLFSSL_LPC43xx) || defined(WOLFSSL_STM32F2xx) || defined(MBED) \
|
||||
|| defined(WOLFSSL_EMBOS)
|
||||
|
||||
#warning "write a real random seed!!!!, just for testing now"
|
||||
|
||||
|
||||
+2
-1
@@ -976,7 +976,8 @@ WOLFSSL_API int wolfSSL_make_eap_keys(WOLFSSL*, void* key, unsigned int len,
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#elif !defined(WOLFSSL_MDK_ARM) && !defined(WOLFSSL_IAR_ARM) && \
|
||||
!defined(WOLFSSL_PICOTCP) && !defined(WOLFSSL_ROWLEY_ARM)
|
||||
!defined(WOLFSSL_PICOTCP) && !defined(WOLFSSL_ROWLEY_ARM) && \
|
||||
!defined(WOLFSSL_EMBOS)
|
||||
#include <sys/uio.h>
|
||||
#endif
|
||||
/* allow writev style writing */
|
||||
|
||||
@@ -142,6 +142,9 @@
|
||||
/* Uncomment next line if building for uTasker */
|
||||
/* #define WOLFSSL_UTASKER */
|
||||
|
||||
/* Uncomment next line if building for embOS */
|
||||
/* #define WOLFSSL_EMBOS */
|
||||
|
||||
#include <wolfssl/wolfcrypt/visibility.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
@@ -409,6 +412,13 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_EMBOS
|
||||
#define NO_FILESYSTEM /* Not ported at this time */
|
||||
#define USE_CERT_BUFFERS_2048 /* use when NO_FILESYSTEM */
|
||||
#define NO_MAIN_DRIVER
|
||||
#define NO_RC4
|
||||
#define SINGLE_THREADED /* Not ported at this time */
|
||||
#endif
|
||||
|
||||
/* Micrium will use Visual Studio for compilation but not the Win32 API */
|
||||
#if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) && \
|
||||
|
||||
Reference in New Issue
Block a user