Compare commits
5 Commits
WCv5.0-RC8
...
wolfRand-R
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
894a57d24d | ||
|
|
3f8981fbd5 | ||
|
|
434fcc1012 | ||
|
|
031cd27c1d | ||
|
|
52b5843cbb |
44
.gitignore
vendored
44
.gitignore
vendored
@@ -5,21 +5,18 @@ ctaocrypt/src/src/
|
||||
*.o
|
||||
*.patch
|
||||
*.deps
|
||||
*.d
|
||||
*.libs
|
||||
*.cache
|
||||
.dirstamp
|
||||
*.user
|
||||
configure
|
||||
config.*
|
||||
!cmake/config.in
|
||||
*Debug/
|
||||
*Release/
|
||||
*.ncb
|
||||
*.suo
|
||||
*.sdf
|
||||
*.opensdf
|
||||
*.cmd
|
||||
ipch/
|
||||
build-aux/
|
||||
rpm/spec
|
||||
@@ -81,8 +78,6 @@ tests/unit
|
||||
testsuite/testsuite.test
|
||||
tests/unit.test
|
||||
tests/bio_write_test.txt
|
||||
tests/test-log-dump-to-file.txt
|
||||
test-write-dhparams.pem
|
||||
testsuite/*.der
|
||||
testsuite/*.pem
|
||||
testsuite/*.raw
|
||||
@@ -230,21 +225,6 @@ IDE/MDK-ARM/LPC43xx/LPC43xx/
|
||||
*.gcno
|
||||
*.gcda
|
||||
*.gcov
|
||||
!linuxkm/Makefile
|
||||
/Kbuild
|
||||
linuxkm/*.ko
|
||||
linuxkm/Module.symvers
|
||||
linuxkm/built-in.a
|
||||
linuxkm/modules.order
|
||||
linuxkm/wolfcrypt
|
||||
linuxkm/libwolfssl.mod
|
||||
linuxkm/libwolfssl.mod.c
|
||||
linuxkm/module_exports.c
|
||||
linuxkm/linuxkm/get_thread_size
|
||||
|
||||
# autotools generated
|
||||
scripts/unit.test
|
||||
wolfcrypt/test/test_paths.h
|
||||
|
||||
# MPLAB Generated Files (OS X)
|
||||
mcapi/wolfcrypt_mcapi.X/nbproject/Makefile-*
|
||||
@@ -315,7 +295,6 @@ Backup
|
||||
UpgradeLog.htm
|
||||
*.aps
|
||||
*.VC.db
|
||||
*.filters
|
||||
|
||||
IDE/INTIME-RTOS/Debug_*
|
||||
IDE/VS-ARM/.vs
|
||||
@@ -343,28 +322,7 @@ doc/pdf
|
||||
# XCODE Index
|
||||
IDE/XCODE/Index
|
||||
|
||||
# ARM DS-5 && Eclipse
|
||||
# ARM DS-5
|
||||
\.settings/
|
||||
\.cproject
|
||||
\.project
|
||||
\.autotools
|
||||
|
||||
# Renesas e2studio
|
||||
/IDE/Renesas/e2studio/Projects/test/src/smc_gen
|
||||
/IDE/Renesas/e2studio/Projects/test/trash
|
||||
/IDE/Renesas/e2studio/Projects/test/*.launch
|
||||
/IDE/Renesas/e2studio/Projects/test/*.scfg
|
||||
|
||||
# QNX CAAM
|
||||
/IDE/QNX/example-server/server-tls
|
||||
/IDE/QNX/example-client/client-tls
|
||||
/IDE/QNX/example-cmac/cmac-test
|
||||
/IDE/QNX/CAAM-DRIVER/wolfCrypt
|
||||
|
||||
# Emacs
|
||||
*~
|
||||
|
||||
# CMake
|
||||
CMakeFiles/
|
||||
CMakeCache.txt
|
||||
cmake_install.cmake
|
||||
|
||||
1612
CMakeLists.txt
1612
CMakeLists.txt
File diff suppressed because it is too large
Load Diff
909
ChangeLog.md
909
ChangeLog.md
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
/* wolfssl_client.ino
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wolfssl_server.ino
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -32,14 +32,6 @@ if [ "$DIR" = "ARDUINO" ]; then
|
||||
mv ./wolfSSL/bio.c ./wolfSSL/wolfssl
|
||||
mv ./wolfSSL/evp.c ./wolfSSL/wolfssl
|
||||
|
||||
# make a copy of evp.c and bio.c for ssl.c to include inline
|
||||
cp ./wolfSSL/wolfssl/evp.c ./wolfSSL/wolfcrypt/src/evp.c
|
||||
cp ./wolfSSL/wolfssl/bio.c ./wolfSSL/wolfcrypt/src/bio.c
|
||||
|
||||
# copy openssl compatibility headers to their appropriate location
|
||||
mkdir ./wolfSSL/wolfssl/openssl
|
||||
cp ../../wolfssl/openssl/* ./wolfSSL/wolfssl/openssl
|
||||
|
||||
echo "/* Generated wolfSSL header file for Arduino */" > ./wolfSSL/wolfssl.h
|
||||
echo "#include <wolfssl/wolfcrypt/settings.h>" >> ./wolfSSL/wolfssl.h
|
||||
echo "#include <wolfssl/ssl.h>" >> ./wolfSSL/wolfssl.h
|
||||
@@ -65,9 +57,8 @@ if [ "$DIR" = "ARDUINO" ]; then
|
||||
|
||||
cp wolfSSL/wolfssl/wolfcrypt/settings.h wolfSSL/wolfssl/wolfcrypt/settings.h.bak
|
||||
echo " /* wolfSSL Generated ARDUINO settings */" > ./wolfSSL/wolfssl/wolfcrypt/settings.h
|
||||
echo "#ifndef WOLFSSL_USER_SETTINGS" >> ./wolfSSL/wolfssl/wolfcrypt/settings.h
|
||||
echo " #define WOLFSSL_USER_SETTINGS" >> ./wolfSSL/wolfssl/wolfcrypt/settings.h
|
||||
echo "#endif /* WOLFSSL_USER_SETTINGS */" >> ./wolfSSL/wolfssl/wolfcrypt/settings.h
|
||||
echo "#define WOLFSSL_ARDUINO" >> ./wolfSSL/wolfssl/wolfcrypt/settings.h
|
||||
echo "#define WOLFSSL_USER_SETTINGS" >> ./wolfSSL/wolfssl/wolfcrypt/settings.h
|
||||
echo " /* wolfSSL Generated ARDUINO settings: END */" >> ./wolfSSL/wolfssl/wolfcrypt/settings.h
|
||||
cat ./wolfSSL/wolfssl/wolfcrypt/settings.h.bak >> ./wolfSSL/wolfssl/wolfcrypt/settings.h
|
||||
|
||||
|
||||
@@ -22,15 +22,13 @@ The `IDE/CRYPTOCELL/main.c` example application provides a function to run the s
|
||||
- SHA-256
|
||||
- AES CBC
|
||||
- CryptoCell 310 RNG
|
||||
- RSA sign/verify and RSA key gen (2048 bit in PKCSv1.5 padding mode)
|
||||
- RSA sign/verify and RSA key gen
|
||||
- RSA encrypt/decrypt
|
||||
- ECC sign/verify/shared secret
|
||||
- ECC key import/export and key gen pairs
|
||||
- Hardware RNG
|
||||
- RTC for benchmark timing source
|
||||
|
||||
Note: All Cryptocell features are not supported. The wolfcrypt RSA API allows import and export of Private/Public keys in DER format. However, this is not possible with key pairs generated with Cryptocell because the importing/exporting Cryptocell keys has not been implemented yet.
|
||||
|
||||
## Setup
|
||||
### Setting up Nordic SDK with wolfSSL
|
||||
1. Download the wolfSSL source code or a zip file from GitHub and place it under your SDK `InstallFolder/external/` directory. You can also copy or simlink to the source.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* main.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -18,7 +18,6 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||
*/
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#include <wolfcrypt/test/test.h>
|
||||
#include <wolfcrypt/benchmark/benchmark.h>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* user_settings.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -41,7 +41,6 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(WOLFSSL_CRYPTOCELL)
|
||||
/* see SASI_AES_KEY_MAX_SIZE_IN_BYTES in the nRF5 SDK */
|
||||
#define AES_MAX_KEY_SIZE 128
|
||||
#endif /* WOLFSSL_CRYPTOCELL*/
|
||||
|
||||
@@ -138,9 +137,6 @@ extern "C" {
|
||||
#if 1
|
||||
#define HAVE_ECC
|
||||
|
||||
#include <strings.h>
|
||||
/* strings.h required for strncasecmp */
|
||||
|
||||
/* Manually define enabled curves */
|
||||
#undef ECC_USER_CURVES
|
||||
#define ECC_USER_CURVES
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* deos_malloc.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* tls_wolfssl.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -380,7 +380,10 @@ void wolfssl_server_test(uintData_t statusPtr)
|
||||
int socketAddrLen=sizeof(sockaddr);
|
||||
char rx_buf[RX_BUF_SIZE];
|
||||
char tx_buf[TX_BUF_SIZE];
|
||||
unsigned char attempt_conn;
|
||||
clientConnectionHandleType TCPserverHandle;
|
||||
void * sendBuffer;
|
||||
DWORD bufferSizeInBytes;
|
||||
|
||||
WOLFSSL * ssl;
|
||||
WOLFSSL_CTX * ctx;
|
||||
@@ -569,6 +572,7 @@ int wolfsslRunTests (void)
|
||||
{
|
||||
thread_handle_t TCPhandle;
|
||||
threadStatus ts;
|
||||
int ret;
|
||||
|
||||
#if !defined(NO_CRYPT_TEST)
|
||||
wolfcrypt_test(NULL);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* tls_wolfssl.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* user_setting.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
# Micrium μC/OS-III Port
|
||||
## Overview
|
||||
You can enable the wolfSSL support for Micrium μC/OS-III RTOS available [here](http://www.micrium.com/) using the define `MICRIUM`.
|
||||
You can enable the wolfSSL support for Micrium μC/OS-III RTOS available [here](http://www.micriums.com/) using the define `MICRIUM`.
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -72,7 +72,7 @@ The test results below were collected from the NXP Kinetis K70 (Freescale TWR-K7
|
||||
|
||||
- IAR Embedded Workbench IDE - ARM 8.32.1 (IAR ELF Linker V8.32.1.169/W32 for ARM)
|
||||
|
||||
- The starting project is based on an IAR EWARM project from Micrium download center at [micrium_twr-k70f120m-os3/](https://www.micrium.com/download/micrium_twr-k70f120m-os3/) but the K70X_FLASH.icf linker script file was slightly modified to configure the stack and heap sizes to 16KB and 20KB. The test was run on a 1 MBytes of program flash and 128 KBytes of static RAM. ([Similar TCP version](https://www.micrium.com/download/twr-k70f120m_os3-tcpip-wifi-lib/))
|
||||
- The starting project is based on an IAR EWARM project from Micrium download center at [micrium_twr-k70f120m-os3/](https://www.micrium.com/download/micrium_twr-k70f120m-os3/) but the K70X_FLASH.icf linker script file was slightly modified to configure the stack and heap sizes to 16KB and 20KB. The test was run on a 1 MBytes of program flash and 128 KBytes of static RAM.
|
||||
|
||||
- wolfssl [latest version](https://github.com/wolfSSL/wolfssl)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* client_wolfssl.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* client_wolfssl.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* server_wolfssl.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* server_wolfssl.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* user_setting.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wolfsslRunTests.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,175 +0,0 @@
|
||||
# RT-Thread Port
|
||||
## Overview
|
||||
You can enable the wolfSSL support for RT-Thread available [here](https://www.rt-thread.io) using the define `RTTHREAD`.
|
||||
|
||||
## Usage
|
||||
|
||||
wolfSSL supports a compile-time user configurable options in the `IDE/ECLIPSE/RTTHREAD/user_settings.h` file.
|
||||
|
||||
The `wolfssl_test.c` example application provides a simple function to run the test and benchmark.
|
||||
|
||||
1. Open your IDE-based example project for RT-Thread.
|
||||
|
||||
2. Create the following folder and sub-folders structures in your project.
|
||||
```
|
||||
wolfssl
|
||||
|src
|
||||
|wolfcrypt
|
||||
|benchmark
|
||||
|src
|
||||
|test
|
||||
|wolfssl
|
||||
|openssl
|
||||
|wolfcrypt
|
||||
|example
|
||||
```
|
||||
The folder hierarchy is the same as the wolfSSL folders with an exception of the example folder.
|
||||
|
||||
3. Add or link all of the header and source files in `IDE/ECLIPSE/RTTHREAD/` folder into the example folder.
|
||||
|
||||
4. Add or link all the source code in the corresponding folder in wolfSSL.
|
||||
|
||||
5. Remove non-C platform dependent files from your build.
|
||||
|
||||
6. In your C/C++ compiler preprocessor settings, add the wolfSSL directories to your include paths.
|
||||
Here's an example of the paths that must be added.
|
||||
|
||||
```
|
||||
$PROJ_DIR$\...
|
||||
$PROJ_DIR$\...\wolfcrypt
|
||||
$PROJ_DIR$\...\wolfssl
|
||||
$PROJ_DIR$\...\IDE\ECLIPSE\RTTHREAD
|
||||
```
|
||||
|
||||
7. In your C/C++ compiler preprocessor settings, define the WOLFSSL_USER_SETTINGS symbol to add user_settings.h file in your project.
|
||||
|
||||
8. Add a call to `wolfssl_test()` from your startup task. Here's an example:
|
||||
|
||||
```c
|
||||
static void test_task (void *p_arg)
|
||||
{
|
||||
...
|
||||
while (1) {
|
||||
wolfssl_test();
|
||||
rt_thread_mdelay(500);
|
||||
}
|
||||
}
|
||||
```
|
||||
9. Rebuild all your project.
|
||||
|
||||
10. Now you are ready to download and debug your image on the board.
|
||||
|
||||
|
||||
The test results below were collected from the RT-Thread ART-Pi with the following software and tool chains:
|
||||
|
||||
- STM32H750XBH6
|
||||
|
||||
- RT-Thread Studio (Version: 2.0.0)
|
||||
|
||||
- GNU ARM Cross C Compiler (Optimization level: -O0)
|
||||
|
||||
- The starting project is based on [RT-Thread ART-Pi SDK](https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi) (./projects/art_pi_wifi)
|
||||
|
||||
- wolfssl [latest version](https://github.com/wolfSSL/wolfssl)
|
||||
|
||||
|
||||
### `WOLFSSL_WOLFCRYPT_TEST` output of wolfcrypt_test()
|
||||
```
|
||||
error test passed!
|
||||
MEMORY test passed!
|
||||
base64 test passed!
|
||||
asn test passed!
|
||||
RANDOM test passed!
|
||||
MD5 test passed!
|
||||
MD4 test passed!
|
||||
SHA test passed!
|
||||
SHA-256 test passed!
|
||||
SHA-512 test passed!
|
||||
Hash test passed!
|
||||
HMAC-MD5 test passed!
|
||||
HMAC-SHA test passed!
|
||||
HMAC-SHA256 test passed!
|
||||
HMAC-SHA512 test passed!
|
||||
X963-KDF test passed!
|
||||
GMAC test passed!
|
||||
ARC4 test passed!
|
||||
HC-128 test passed!
|
||||
Rabbit test passed!
|
||||
DES test passed!
|
||||
DES3 test passed!
|
||||
AES test passed!
|
||||
AES192 test passed!
|
||||
AES256 test passed!
|
||||
AES-GCM test passed!
|
||||
AES Key Wrap test passed!
|
||||
RSA test passed!
|
||||
DH test passed!
|
||||
DSA test passed!
|
||||
PWDBASED test passed!
|
||||
ECC test passed!
|
||||
ECC buffer test passed!
|
||||
CURVE25519 test passed!
|
||||
ED25519 test passed!
|
||||
PKCS7encrypted test passed!
|
||||
PKCS7signed test passed!
|
||||
PKCS7enveloped test passed!
|
||||
PKCS7authenveloped test passed!
|
||||
logging test passed!
|
||||
mutex test passed!
|
||||
memcb test passed!
|
||||
```
|
||||
### `WOLFSSL_BENCHMARK_TEST` output of benchmark_test()
|
||||
```
|
||||
------------------------------------------------------------------------------
|
||||
wolfSSL version 4.5.0
|
||||
------------------------------------------------------------------------------
|
||||
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
|
||||
RNG 50 KB took 1.000 seconds, 50.000 KB/s
|
||||
AES-128-CBC-enc 2 MB took 1.000 seconds, 2.075 MB/s
|
||||
AES-128-CBC-dec 2 MB took 1.000 seconds, 1.611 MB/s
|
||||
AES-192-CBC-enc 2 MB took 1.000 seconds, 2.002 MB/s
|
||||
AES-192-CBC-dec 2 MB took 1.000 seconds, 1.514 MB/s
|
||||
AES-256-CBC-enc 2 MB took 1.000 seconds, 1.855 MB/s
|
||||
AES-256-CBC-dec 1 MB took 1.000 seconds, 1.465 MB/s
|
||||
AES-128-GCM-enc 700 KB took 1.000 seconds, 700.000 KB/s
|
||||
AES-128-GCM-dec 675 KB took 1.000 seconds, 675.000 KB/s
|
||||
AES-192-GCM-enc 675 KB took 1.000 seconds, 675.000 KB/s
|
||||
AES-192-GCM-dec 675 KB took 1.000 seconds, 675.000 KB/s
|
||||
AES-256-GCM-enc 650 KB took 1.000 seconds, 650.000 KB/s
|
||||
AES-256-GCM-dec 650 KB took 1.000 seconds, 650.000 KB/s
|
||||
AES-128-ECB-enc 2 MB took 1.000 seconds, 1.902 MB/s
|
||||
AES-128-ECB-dec 2 MB took 1.000 seconds, 1.521 MB/s
|
||||
AES-192-ECB-enc 2 MB took 1.000 seconds, 1.780 MB/s
|
||||
AES-192-ECB-dec 1 MB took 1.000 seconds, 1.433 MB/s
|
||||
AES-256-ECB-enc 2 MB took 1.000 seconds, 1.638 MB/s
|
||||
AES-256-ECB-dec 1 MB took 1.000 seconds, 1.405 MB/s
|
||||
ARC4 5 MB took 1.000 seconds, 4.956 MB/s
|
||||
RABBIT 6 MB took 1.000 seconds, 6.470 MB/s
|
||||
3DES 750 KB took 1.000 seconds, 750.000 KB/s
|
||||
MD5 12 MB took 1.000 seconds, 12.061 MB/s
|
||||
SHA 4 MB took 1.000 seconds, 3.979 MB/s
|
||||
SHA-256 2 MB took 1.000 seconds, 1.782 MB/s
|
||||
SHA-512 1 MB took 1.000 seconds, 1.001 MB/s
|
||||
HMAC-MD5 12 MB took 1.000 seconds, 12.329 MB/s
|
||||
HMAC-SHA 4 MB took 1.000 seconds, 3.662 MB/s
|
||||
HMAC-SHA256 2 MB took 1.000 seconds, 1.758 MB/s
|
||||
HMAC-SHA512 1 MB took 1.000 seconds, 1.001 MB/s
|
||||
PBKDF2 224 bytes took 1.000 seconds, 224.000 bytes/s
|
||||
RSA 2048 public 20 ops took 1.000 sec, avg 50.000 ms, 20.000 ops/sec
|
||||
RSA 2048 private 2 ops took 1.000 sec, avg 500.000 ms, 2.000 ops/sec
|
||||
DH 2048 key gen 4 ops took 1.000 sec, avg 250.000 ms, 4.000 ops/sec
|
||||
DH 2048 agree 4 ops took 1.000 sec, avg 250.000 ms, 4.000 ops/sec
|
||||
ECC 256 key gen 6 ops took 1.000 sec, avg 166.667 ms, 6.000 ops/sec
|
||||
ECDHE 256 agree 6 ops took 1.000 sec, avg 166.667 ms, 6.000 ops/sec
|
||||
ECDSA 256 sign 6 ops took 1.000 sec, avg 166.667 ms, 6.000 ops/sec
|
||||
ECDSA 256 verify 4 ops took 1.000 sec, avg 250.000 ms, 4.000 ops/sec
|
||||
CURVE 25519 key gen 4 ops took 1.000 sec, avg 250.000 ms, 4.000 ops/sec
|
||||
CURVE 25519 agree 2 ops took 1.000 sec, avg 500.000 ms, 2.000 ops/sec
|
||||
ED 25519 key gen 4 ops took 1.000 sec, avg 250.000 ms, 4.000 ops/sec
|
||||
ED 25519 sign 2 ops took 1.000 sec, avg 500.000 ms, 2.000 ops/sec
|
||||
ED 25519 verify 2 ops took 1.000 sec, avg 500.000 ms, 2.000 ops/sec
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
For more information please contact info@wolfssl.com.
|
||||
@@ -1,8 +0,0 @@
|
||||
# vim:ft=automake
|
||||
# included from Top Level Makefile.am
|
||||
# All paths should be given relative to the root
|
||||
|
||||
EXTRA_DIST += \
|
||||
IDE/ECLIPSE/RTTHREAD/README.md \
|
||||
IDE/ECLIPSE/RTTHREAD/user_settings.h \
|
||||
IDE/ECLIPSE/RTTHREAD/wolfssl_test.c
|
||||
@@ -1,81 +0,0 @@
|
||||
/* user_setting.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 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
|
||||
*/
|
||||
|
||||
#ifndef WOLFSSL_USER_SETTINGS_H_
|
||||
#define WOLFSSL_USER_SETTINGS_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define RTTHREAD
|
||||
|
||||
/* You can select one or all of the following tests */
|
||||
#define WOLFSSL_WOLFCRYPT_TEST
|
||||
#define WOLFSSL_BENCHMARK_TEST
|
||||
#define WOLFSSL_CLIENT_TEST
|
||||
#define WOLFSSL_SERVER_TEST
|
||||
#define USE_TEST_GENSEED
|
||||
#define NO_DEV_RANDOM
|
||||
#define HAVE_PKCS7
|
||||
#define HAVE_AES_KEYWRAP
|
||||
#define HAVE_X963_KDF
|
||||
#define WOLFSSL_AES_DIRECT
|
||||
/* adjust CURRENT_UNIX_TS to seconds since Jan 01 1970. (UTC)
|
||||
You can get the current time from https://www.unixtimestamp.com/
|
||||
*/
|
||||
#define CURRENT_UNIX_TS 1542605837UL
|
||||
|
||||
/* When using Windows simulator, you must define USE_WINDOWS_API for test.h to build */
|
||||
#ifdef _WIN32
|
||||
#define USE_WINDOWS_API
|
||||
#endif
|
||||
|
||||
#define NO_FILESYSTEM
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
||||
/* prevents from including multiple definition of main() */
|
||||
#define NO_MAIN_DRIVER
|
||||
#define NO_TESTSUITE_MAIN_DRIVER
|
||||
|
||||
/* includes certificate test buffers via header files */
|
||||
#define USE_CERT_BUFFERS_2048
|
||||
/*use kB instead of mB for embedded benchmarking*/
|
||||
#define BENCH_EMBEDDED
|
||||
|
||||
#define NO_WRITE_TEMP_FILES
|
||||
|
||||
#define XSNPRINTF snprintf
|
||||
#define NO_WRITEV
|
||||
|
||||
#define HAVE_AESGCM
|
||||
#define WOLFSSL_SHA512
|
||||
#define HAVE_ECC
|
||||
#define HAVE_CURVE25519
|
||||
#define CURVE25519_SMALL
|
||||
#define HAVE_ED25519
|
||||
#define ED25519_SMALL
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,33 +0,0 @@
|
||||
/* wolfsslRunTests.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 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 <stdint.h>
|
||||
#include <wolfcrypt/test/test.h>
|
||||
#include <wolfcrypt/benchmark/benchmark.h>
|
||||
|
||||
int wolfssl_test(void) {
|
||||
#if !defined(NO_CRYPT_TEST)
|
||||
wolfcrypt_test(NULL);
|
||||
#endif
|
||||
#if !defined(NO_CRYPT_BENCHMARK)
|
||||
benchmark_test(NULL);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
@@ -1 +1,199 @@
|
||||
This folder has moved to `IDE/RISCV/SIFIVE-HIFIVE1`.
|
||||
# SiFive RISC-V HiFive1 Port
|
||||
|
||||
## Overview
|
||||
You can enable the wolfSSL support for RISC-V using the `#define WOLFSSL_SIFIVE_RISC_V`.
|
||||
|
||||
## Prerequisites
|
||||
1. Follow the instructions on the SiFive GitHub [here](https://github.com/sifive/freedom-e-sdk) and SiFive website [here](https://www.sifive.com/) to download the freedom-e-sdk and software tools.
|
||||
3. Run a simple hello application on your development board to confirm that your board functions as expected and the communication between your computer and the board works.
|
||||
|
||||
## Usage
|
||||
You can start with a wolfcrypt example project to integrate the wolfSSL source code.
|
||||
wolfSSL supports a compile-time user configurable options in the `IDE/ECLIPSE/SIFIVE/user_settings.h` file.
|
||||
|
||||
The `IDE/ECLIPSE/SIFIVE/main.c` example application provides a function to run the selected examples at compile time through the following two #defines in user_settings.h. You can define these macro options to disable the test run.
|
||||
```
|
||||
- #undef NO_CRYPT_TEST
|
||||
- #undef NO_CRYPT_BENCHMARK
|
||||
```
|
||||
|
||||
## Setup
|
||||
### Setting up the SDK with wolfSSL
|
||||
1. Download the wolfSSL source code or a zip file from GitHub and place it under your SDK `$HOME` directory. You can also copy or simlink to the source.
|
||||
```
|
||||
For example,
|
||||
$ cd $HOME
|
||||
$ git clone --depth=1 https://github.com/wolfSSL/wolfssl.git
|
||||
|
||||
```
|
||||
2. Copy the wolfcrypt example project into your `freedom-e-sdk/software` directory.
|
||||
|
||||
```
|
||||
$ cp -rf ~/wolfssl/IDE/ECLIPSE/SIFIVE ~/freedom-e-sdk/software/wolfcrypt
|
||||
```
|
||||
|
||||
3. Edit your `~/freedom-e-sdk/scripts/standalone.mk` and add the following line after the last RISCV_CFLAGS entry:
|
||||
|
||||
```
|
||||
RISCV_CFLAGS += -I$(WOLFSSL_SRC_DIR) -I$(WOLFSSL_SRC_DIR)/IDE/ECLIPSE/SIFIVE -DWOLFSSL_USER_SETTINGS
|
||||
```
|
||||
|
||||
4. WOLFSSL_SRC_DIR variable must be set in the environment when GNU make is started.
|
||||
|
||||
```
|
||||
$ export WOLFSSL_SRC_DIR=~/wolfssl
|
||||
```
|
||||
|
||||
5. Setup your riscv64 compiler
|
||||
|
||||
```
|
||||
$ export RISCV_OPENOCD_PATH=/opt/riscv-openocd
|
||||
```
|
||||
6. (Optional) Setup OpenOCD if your target supports it:
|
||||
|
||||
```
|
||||
$ export RISCV_OPENOCD_PATH=/opt/riscv-openocd
|
||||
```
|
||||
## Building and Running
|
||||
|
||||
You can build from source or create a static library.
|
||||
|
||||
1. Using command-line:
|
||||
|
||||
```
|
||||
$ cd freedom-e-sdk
|
||||
$ make PROGRAM=wolfcrypt TARGET=sifive-hifive1-revb CONFIGURATION=debug clean software upload
|
||||
```
|
||||
This example cleans, builds and uploads the software on the sifive-hifive1-revb target but you can also combine and build for any of the supported targets.
|
||||
|
||||
Review the test results on the target console.
|
||||
|
||||
2. Building a static library for RISC-V using a cross-compiler:
|
||||
|
||||
```
|
||||
$ cd $WOLFSSL_SRC_DIR
|
||||
|
||||
$./configure --host=riscv64-unknown-elf \
|
||||
CC=riscv64-unknown-elf-gcc \
|
||||
AR=riscv64-unknown-elf-ar \
|
||||
AS=riscv64-unknown-elf-as \
|
||||
RANLIB=$RISCV_PATH/bin/riscv64-unknown-elf-gcc-ranlib \
|
||||
LD=riscv64-unknown-elf-ld \
|
||||
CXX=riscv64-unknown-elf-g++ \
|
||||
--disable-examples --enable-static --disable-shared \
|
||||
CFLAGS="-march=rv32imac -mabi=ilp32 -mcmodel=medlow -ffunction-sections -fdata-sections -I~/freedom-e-sdk/bsp/sifive-hifive1/install/include -O0 -g -DNO_FILESYSTEM -DWOLFSSL_NO_SOCK -DNO_WRITEV -DWOLFCRYPT_ONLY -DWOLFSSL_SIFIVE_RISC_V"
|
||||
|
||||
$make
|
||||
$sudo make install
|
||||
```
|
||||
You can now build and link your software to the wolfSSL libwolfssl.a static library.
|
||||
|
||||
### `wolfcrypt_test()`
|
||||
|
||||
wolfcrypt_test() prints a message on the target console similar to the following output:
|
||||
|
||||
```
|
||||
SiFive HiFive1 Demo
|
||||
Setting clock to 320MHz
|
||||
Actual Clock 320MHz
|
||||
|
||||
error test passed!
|
||||
MEMORY test passed!
|
||||
base64 test passed!
|
||||
asn test passed!
|
||||
SHA test passed!
|
||||
SHA-256 test passed!
|
||||
SHA-512 test passed!
|
||||
Hash test passed!
|
||||
HMAC-SHA test passed!
|
||||
HMAC-SHA256 test passed!
|
||||
HMAC-SHA512 test passed!
|
||||
GMAC test passed!
|
||||
Chacha test passed!
|
||||
POLY1305 test passed!
|
||||
ChaCha20-Poly1305 AEAD test passed!
|
||||
AES test passed!
|
||||
AES192 test passed!
|
||||
AES256 test passed!
|
||||
AES-GCM test passed!
|
||||
RANDOM test passed!
|
||||
ECC test passed!
|
||||
ECC buffer test passed!
|
||||
CURVE25519 test passed!
|
||||
ED25519 test passed!
|
||||
logging test passed!
|
||||
mutex test passed!
|
||||
Test complete
|
||||
```
|
||||
### `benchmark_test()`
|
||||
|
||||
benchmark_test() prints a message on the target console similar to the following output.
|
||||
|
||||
TARGET=sifive-hifive1-revb:
|
||||
|
||||
```
|
||||
SiFive HiFive1 Demo
|
||||
Setting clock to 320MHz
|
||||
Actual Clock 320MHz
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
wolfSSL version 4.0.0
|
||||
------------------------------------------------------------------------------
|
||||
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
|
||||
RNG 250 KB took 1.098 seconds, 227.714 KB/s
|
||||
AES-128-CBC-enc 50 KB took 1.132 seconds, 44.175 KB/s
|
||||
AES-128-CBC-dec 50 KB took 1.142 seconds, 43.778 KB/s
|
||||
AES-192-CBC-enc 50 KB took 1.250 seconds, 40.007 KB/s
|
||||
AES-192-CBC-dec 50 KB took 1.260 seconds, 39.677 KB/s
|
||||
AES-256-CBC-enc 50 KB took 1.368 seconds, 36.552 KB/s
|
||||
AES-256-CBC-dec 50 KB took 1.378 seconds, 36.279 KB/s
|
||||
AES-128-GCM-enc 25 KB took 1.225 seconds, 20.412 KB/s
|
||||
AES-128-GCM-dec 25 KB took 1.225 seconds, 20.402 KB/s
|
||||
AES-192-GCM-enc 25 KB took 1.290 seconds, 19.373 KB/s
|
||||
AES-192-GCM-dec 25 KB took 1.291 seconds, 19.366 KB/s
|
||||
AES-256-GCM-enc 25 KB took 1.352 seconds, 18.487 KB/s
|
||||
AES-256-GCM-dec 25 KB took 1.353 seconds, 18.478 KB/s
|
||||
CHACHA 1 MB took 1.006 seconds, 1.020 MB/s
|
||||
CHA-POLY 700 KB took 1.032 seconds, 678.045 KB/s
|
||||
POLY1305 2 MB took 1.007 seconds, 2.255 MB/s
|
||||
SHA 2 MB took 1.002 seconds, 1.511 MB/s
|
||||
SHA-256 525 KB took 1.011 seconds, 519.279 KB/s
|
||||
SHA-512 275 KB took 1.017 seconds, 270.477 KB/s
|
||||
HMAC-SHA 1 MB took 1.013 seconds, 1.399 MB/s
|
||||
HMAC-SHA256 525 KB took 1.019 seconds, 515.020 KB/s
|
||||
HMAC-SHA512 275 KB took 1.032 seconds, 266.351 KB/s
|
||||
ECC 256 key gen 2 ops took 1.104 sec, avg 551.834 ms, 1.812 ops/sec
|
||||
ECDHE 256 agree 2 ops took 1.101 sec, avg 550.400 ms, 1.817 ops/sec
|
||||
ECDSA 256 sign 2 ops took 1.173 sec, avg 586.502 ms, 1.705 ops/sec
|
||||
ECDSA 256 verify 2 ops took 2.153 sec, avg 1076.294 ms, 0.929 ops/sec
|
||||
CURVE 25519 key gen 2 ops took 1.629 sec, avg 814.423 ms, 1.228 ops/sec
|
||||
CURVE 25519 agree 2 ops took 1.626 sec, avg 813.156 ms, 1.230 ops/sec
|
||||
ED 25519 key gen 1 ops took 1.436 sec, avg 1436.096 ms, 0.696 ops/sec
|
||||
ED 25519 sign 2 ops took 2.913 sec, avg 1456.421 ms, 0.687 ops/sec
|
||||
ED 25519 verify 2 ops took 5.012 sec, avg 2506.012 ms, 0.399 ops/sec
|
||||
Benchmark complete
|
||||
```
|
||||
|
||||
## Tested Configurations
|
||||
- P-RNG (NIST DRBG) with SHA-256
|
||||
- SHA 1/256/512
|
||||
- AES 128/192/256 CBC/GCM
|
||||
- ECC 256 sign/verify/shared secret with fast math or Single Precision (SP) library
|
||||
- ED25519/Curve25519
|
||||
- HMAC
|
||||
- ChaCha20/Poly1305
|
||||
|
||||
## Known Caveats
|
||||
- If you find the wolfcrypt test stuck on early_trap_vector error, it is like related to memory issues
|
||||
- Using the `__stack_size` default value of 0x400 will not be enough for the ECC test to pass.
|
||||
The `IDE/ECLIPSE/SIFIVE/Makefile` overwrites the value with 0x1000 (4 KBytes)
|
||||
- Enabling RSA will cause the ECC test to fail due to memory shortage.
|
||||
|
||||
## References
|
||||
|
||||
The test results were collected from a SiFive reference platform target with the following hardware, software and tool chains:
|
||||
- HiFive1 Rev A/Rev B: HiFive1 Development Board with the Freedom Everywhere SoC, E300
|
||||
- freedom-e-sdk
|
||||
- wolfssl [latest version](https://github.com/wolfSSL/wolfssl)
|
||||
|
||||
For more information or questions, please email [support@wolfssl.com](mailto:support@wolfssl.com)
|
||||
|
||||
@@ -3,4 +3,7 @@
|
||||
# All paths should be given relative to the root
|
||||
|
||||
EXTRA_DIST += \
|
||||
IDE/ECLIPSE/SIFIVE/README.md
|
||||
IDE/ECLIPSE/SIFIVE/README.md \
|
||||
IDE/ECLIPSE/SIFIVE/main.c \
|
||||
IDE/ECLIPSE/SIFIVE/Makefile\
|
||||
IDE/ECLIPSE/SIFIVE/user_settings.h
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* main.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -143,12 +143,12 @@ int main(void)
|
||||
#ifdef USE_CLOCK_HZ
|
||||
/* Speed up clock */
|
||||
printf("SiFive HiFive1 Demo\n");
|
||||
printf("Setting clock to %dMHz\n", (int)(USE_CLOCK_HZ/1000000));
|
||||
printf("Setting clock to %dMHz\n", USE_CLOCK_HZ/1000000);
|
||||
clk_Hz = metal_clock_set_rate_hz(
|
||||
&__METAL_DT_SIFIVE_FE310_G000_PLL_HANDLE->clock, USE_CLOCK_HZ
|
||||
);
|
||||
#endif
|
||||
printf("Actual Clock %dMHz\n", (int)(clk_Hz/1000000));
|
||||
printf("Actual Clock %dMHz\n", clk_Hz/1000000);
|
||||
|
||||
/* Reconfigure the SPI Bus for dual mode */
|
||||
#define QSPI0_CTRL 0x10014000UL
|
||||
@@ -1,6 +1,6 @@
|
||||
/* user_settings.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -16,9 +16,8 @@ Including the following examples:
|
||||
|
||||
Note: This expects to use Linux version.
|
||||
|
||||
## Setup for Linux
|
||||
1. Run *setup.sh* at /path/to/wolfssl/IDE/Espressif/ESP-IDF/ to deploy files into ESP-IDF tree
|
||||
For Windows : Run *setup_win.bat* at \IDE\Espressif\ESP-IDF\
|
||||
## Setup
|
||||
1. Run *setup.sh* to deploy files into ESP-IDF tree
|
||||
2. Find Wolfssl files at /path/to/esp-idf/components/wolfssl/
|
||||
3. Find Example programs under /path/to/esp-idf/examples/protocols/wolfssl_xxx
|
||||
4. Uncomment out #define WOLFSSL_ESPIDF in /path/to/wolfssl/wolfssl/wolfcrypt/settings.h
|
||||
@@ -33,8 +32,4 @@ Including the following examples:
|
||||
## Support
|
||||
For question please email [support@wolfssl.com]
|
||||
|
||||
Note: This is tested with :
|
||||
- OS: Ubuntu 18.04.1 LTS and Microsoft Windows 10 Pro 10.0.19041
|
||||
- ESP-IDF: v4.1 and v4.0.1
|
||||
- Module : ESP32-WROOM-32
|
||||
|
||||
Note: This is tested with "Ubuntu 18.04.1 LTS" and ESP32-WROOM-32.
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
/* config.h - dummy
|
||||
*
|
||||
* Copyright (C) 2006-2021 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
|
||||
*/
|
||||
|
||||
#ifndef _CONFIG_H_
|
||||
#define _CONFIG_H_
|
||||
#endif
|
||||
@@ -1,6 +1,6 @@
|
||||
/* helper.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -150,7 +150,6 @@ int construct_argv()
|
||||
/* entry point */
|
||||
void app_main(void)
|
||||
{
|
||||
(void) TAG;
|
||||
#ifndef NO_CRYPT_BENCHMARK
|
||||
|
||||
/* when using atecc608a on esp32-wroom-32se */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
CONFIG_BENCH_ARGV="-lng 0"
|
||||
CONFIG_MAIN_TASK_STACK_SIZE=7500
|
||||
CONFIG_MAIN_TASK_STACK_SIZE=7000
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=
|
||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
||||
|
||||
@@ -2,10 +2,5 @@
|
||||
# CMakeLists in this exact order for cmake to work correctly
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
# (Not part of the boilerplate)
|
||||
# This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
|
||||
# disable the following line if there isn't the directory
|
||||
set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
|
||||
|
||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||
project(wolfssl_client)
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
PROJECT_NAME := wolfssl_client
|
||||
|
||||
CFLAGS += -DWOLFSSL_USER_SETTINGS
|
||||
# if there isn't the directory, please disable the line below.
|
||||
EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common
|
||||
|
||||
include $(IDF_PATH)/make/project.mk
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* client-tls-callback.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -131,7 +131,6 @@ void tls_smp_client_task()
|
||||
size_t len;
|
||||
struct hostent *hp;
|
||||
struct ip4_addr *ip4_addr;
|
||||
const char sndMsg[] = "GET /index.html HTTP/1.0\r\n\r\n";
|
||||
|
||||
/* declare wolfSSL objects */
|
||||
WOLFSSL_CTX *ctx;
|
||||
@@ -258,8 +257,8 @@ void tls_smp_client_task()
|
||||
|
||||
if(sendGet){
|
||||
printf("SSL connect ok, sending GET...\n");
|
||||
len = XSTRLEN(sndMsg);
|
||||
strncpy(buff, sndMsg, len);
|
||||
len = 28;
|
||||
strncpy(buff, "GET /index.html HTTP/1.0\r\n\r\n", 28);
|
||||
buff[len] = '\0';
|
||||
} else {
|
||||
sprintf(buff, "message from esp32 tls client\n");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* user_settings.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -21,14 +21,9 @@
|
||||
#ifndef _TLS_WIFI_H_
|
||||
#define _TLS_WIFI_H_
|
||||
|
||||
#include "esp_idf_version.h"
|
||||
#include "esp_log.h"
|
||||
#include "esp_wifi.h"
|
||||
#if ESP_IDF_VERSION_MAJOR >= 4
|
||||
#include "esp_event.h"
|
||||
#else
|
||||
#include "esp_event_loop.h"
|
||||
#endif
|
||||
|
||||
#define DEFAULT_PORT 11111
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wifi_connect.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -27,9 +27,6 @@
|
||||
#include "lwip/netdb.h"
|
||||
#include "lwip/apps/sntp.h"
|
||||
#include "nvs_flash.h"
|
||||
#if ESP_IDF_VERSION_MAJOR >= 4
|
||||
#include "protocol_examples_common.h"
|
||||
#endif
|
||||
|
||||
const static int CONNECTED_BIT = BIT0;
|
||||
static EventGroupHandle_t wifi_event_group;
|
||||
@@ -51,14 +48,12 @@ static void set_time()
|
||||
time_t now;
|
||||
struct tm timeinfo;
|
||||
char strftime_buf[64];
|
||||
/* please update the time if seeing unknown failure. */
|
||||
/* this could cause TLS communication failure due to time expiration */
|
||||
/* incleasing 31536000 seconds is close to spend 356 days. */
|
||||
utctime.tv_sec = 1598661910; /* dummy time: Fri Aug 29 09:45:00 2020 */
|
||||
|
||||
utctime.tv_sec = 1542008020; /* dummy time: Mon Nov 12 07:33:40 2018 */
|
||||
utctime.tv_usec = 0;
|
||||
tz.tz_minuteswest = 0;
|
||||
tz.tz_dsttime = 0;
|
||||
|
||||
|
||||
settimeofday(&utctime, &tz);
|
||||
|
||||
time(&now);
|
||||
@@ -67,11 +62,9 @@ static void set_time()
|
||||
strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);
|
||||
ESP_LOGI(TAG, "The current date/time is: %s", strftime_buf);
|
||||
|
||||
#if ESP_IDF_VERSION_MAJOR < 4
|
||||
/* wait until wifi connect */
|
||||
xEventGroupWaitBits(wifi_event_group, CONNECTED_BIT,
|
||||
false, true, portMAX_DELAY);
|
||||
#endif
|
||||
/* now we start client tasks. */
|
||||
tls_smp_client_init();
|
||||
}
|
||||
@@ -93,7 +86,7 @@ static void tls_smp_client_init(void)
|
||||
ESP_LOGI(TAG, "create thread %s failed", TLS_SMP_CLIENT_TASK_NAME);
|
||||
}
|
||||
}
|
||||
/* event handler for wifi events */
|
||||
/* event hander for wifi events */
|
||||
static esp_err_t wifi_event_handler(void *ctx, system_event_t *event)
|
||||
{
|
||||
switch (event->event_id)
|
||||
@@ -123,22 +116,10 @@ void app_main(void)
|
||||
ESP_ERROR_CHECK(nvs_flash_init());
|
||||
|
||||
ESP_LOGI(TAG, "Initialize wifi");
|
||||
#if ESP_IDF_VERSION_MAJOR >= 4 && ESP_IDF_VERSION_MINOR >= 1
|
||||
esp_netif_init();
|
||||
#else
|
||||
/* TCP/IP adapter initialization */
|
||||
tcpip_adapter_init();
|
||||
#endif
|
||||
|
||||
/* */
|
||||
#if ESP_IDF_VERSION_MAJOR >= 4
|
||||
(void) wifi_event_handler;
|
||||
ESP_ERROR_CHECK(esp_event_loop_create_default());
|
||||
/* This helper function configures Wi-Fi or Ethernet, as selected in menuconfig.
|
||||
* Read "Establishing Wi-Fi or Ethernet Connection" section in
|
||||
* examples/protocols/README.md for more information about this function.
|
||||
*/
|
||||
ESP_ERROR_CHECK(example_connect());
|
||||
#else
|
||||
wifi_event_group = xEventGroupCreate();
|
||||
ESP_ERROR_CHECK(esp_event_loop_init(wifi_event_handler, NULL));
|
||||
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
||||
@@ -160,7 +141,6 @@ void app_main(void)
|
||||
ESP_LOGI(TAG, "wifi_init_sta finished.");
|
||||
ESP_LOGI(TAG, "connect to ap SSID:%s password:%s",
|
||||
TLS_SMP_WIFI_SSID, TLS_SMP_WIFI_PASS);
|
||||
#endif
|
||||
ESP_LOGI(TAG, "Set dummy time...");
|
||||
set_time();
|
||||
}
|
||||
|
||||
@@ -2,10 +2,6 @@
|
||||
# CMakeLists in this exact order for cmake to work correctly
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
# (Not part of the boilerplate)
|
||||
# This example uses an extra component for common functions such as Wi-Fi and Ethernet connection.
|
||||
# disable the following line if there isn't the directory
|
||||
set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
|
||||
|
||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||
project(wolfssl_server)
|
||||
|
||||
@@ -7,8 +7,5 @@ PROJECT_NAME := tls_server
|
||||
|
||||
CFLAGS += -DWOLFSSL_USER_SETTINGS
|
||||
|
||||
# if there isn't the directory, please disable the line below.
|
||||
EXTRA_COMPONENT_DIRS = $(IDF_PATH)/examples/common_components/protocol_examples_common
|
||||
|
||||
include $(IDF_PATH)/make/project.mk
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wifi_connect.h
|
||||
/* wifi_connect.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -21,14 +21,9 @@
|
||||
#ifndef _TLS_WIFI_H_
|
||||
#define _TLS_WIFI_H_
|
||||
|
||||
#include "esp_idf_version.h"
|
||||
#include "esp_log.h"
|
||||
#include "esp_wifi.h"
|
||||
#if ESP_IDF_VERSION_MAJOR >= 4
|
||||
#include "esp_event.h"
|
||||
#else
|
||||
#include "esp_event_loop.h"
|
||||
#endif
|
||||
|
||||
#define DEFAULT_PORT 11111
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* server-tls-callback.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -64,7 +64,7 @@ static void ShowCiphers(void)
|
||||
#include "wolfssl/wolfcrypt/port/atmel/atmel.h"
|
||||
|
||||
/* when you want to use a custom slot allocation */
|
||||
/* enable the definition CUSTOM_SLOT_ALLOCATION. */
|
||||
/* enable the difinition CUSTOM_SLOT_ALLOCATION. */
|
||||
|
||||
#if defined(CUSTOM_SLOT_ALLOCATION)
|
||||
|
||||
@@ -133,7 +133,6 @@ void tls_smp_server_task()
|
||||
size_t len;
|
||||
int shutdown = 0;
|
||||
int ret;
|
||||
const char msg[] = "I hear you fa shizzle!";
|
||||
|
||||
/* declare wolfSSL objects */
|
||||
WOLFSSL_CTX* ctx;
|
||||
@@ -246,7 +245,7 @@ void tls_smp_server_task()
|
||||
}
|
||||
/* Write our reply into buff */
|
||||
memset(buff, 0, sizeof(buff));
|
||||
memcpy(buff, msg, sizeof(msg));
|
||||
memcpy(buff, "I hear ya fa shizzle!", sizeof(buff));
|
||||
len = strnlen(buff, sizeof(buff));
|
||||
/* Reply back to the client */
|
||||
if (wolfSSL_write(ssl, buff, len) != len) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wifi_connect.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -27,15 +27,12 @@
|
||||
#include "lwip/netdb.h"
|
||||
#include "lwip/apps/sntp.h"
|
||||
#include "nvs_flash.h"
|
||||
#if ESP_IDF_VERSION_MAJOR >= 4
|
||||
#include "protocol_examples_common.h"
|
||||
#endif
|
||||
|
||||
const static int CONNECTED_BIT = BIT0;
|
||||
static EventGroupHandle_t wifi_event_group;
|
||||
/* prefix for logging */
|
||||
const static char *TAG = "tls_server";
|
||||
/* proto-type definition */
|
||||
/* proto-type difinition */
|
||||
extern void tls_smp_server_task();
|
||||
static void tls_smp_server_init();
|
||||
|
||||
@@ -48,10 +45,8 @@ static void set_time()
|
||||
time_t now;
|
||||
struct tm timeinfo;
|
||||
char strftime_buf[64];
|
||||
/* please update the time if seeing unknown failure. */
|
||||
/* this could cause TLS communication failure due to time expiration */
|
||||
/* incleasing 31536000 seconds is close to spend 356 days. */
|
||||
utctime.tv_sec = 1598661910; /* dummy time: Fri Aug 29 09:45:00 2020 */
|
||||
|
||||
utctime.tv_sec = 1542008020; /* dummy time: Mon Nov 12 07:33:40 2018 */
|
||||
utctime.tv_usec = 0;
|
||||
tz.tz_minuteswest = 0;
|
||||
tz.tz_dsttime = 0;
|
||||
@@ -64,11 +59,9 @@ static void set_time()
|
||||
strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);
|
||||
ESP_LOGI(TAG, "The current date/time is: %s", strftime_buf);
|
||||
|
||||
#if ESP_IDF_VERSION_MAJOR < 4
|
||||
/* wait until wifi connect */
|
||||
xEventGroupWaitBits(wifi_event_group, CONNECTED_BIT,
|
||||
false, true, portMAX_DELAY);
|
||||
#endif
|
||||
/* now we start client tasks. */
|
||||
tls_smp_server_init();
|
||||
}
|
||||
@@ -90,7 +83,7 @@ static void tls_smp_server_init(void)
|
||||
ESP_LOGI(TAG, "create thread %s failed", TLS_SMP_SERVER_TASK_NAME);
|
||||
}
|
||||
}
|
||||
/* event handler for wifi events */
|
||||
/* event hander for wifi events */
|
||||
static esp_err_t wifi_event_handler(void *ctx, system_event_t *event)
|
||||
{
|
||||
switch (event->event_id)
|
||||
@@ -99,13 +92,8 @@ static esp_err_t wifi_event_handler(void *ctx, system_event_t *event)
|
||||
esp_wifi_connect();
|
||||
break;
|
||||
case SYSTEM_EVENT_STA_GOT_IP:
|
||||
#if ESP_IDF_VERSION_MAJOR >= 4
|
||||
ESP_LOGI(TAG, "got ip:" IPSTR "\n",
|
||||
IP2STR(&event->event_info.got_ip.ip_info.ip));
|
||||
#else
|
||||
ESP_LOGI(TAG, "got ip:%s",
|
||||
ip4addr_ntoa(&event->event_info.got_ip.ip_info.ip));
|
||||
#endif
|
||||
/* http://esp32.info/docs/esp_idf/html/dd/d08/group__xEventGroupSetBits.html */
|
||||
xEventGroupSetBits(wifi_event_group, CONNECTED_BIT);
|
||||
break;
|
||||
@@ -126,21 +114,9 @@ void app_main(void)
|
||||
|
||||
ESP_LOGI(TAG, "Initialize wifi");
|
||||
/* TCP/IP adapter initialization */
|
||||
#if ESP_IDF_VERSION_MAJOR >= 4 && ESP_IDF_VERSION_MINOR >= 1
|
||||
esp_netif_init();
|
||||
#else
|
||||
tcpip_adapter_init();
|
||||
#endif
|
||||
|
||||
/* */
|
||||
#if ESP_IDF_VERSION_MAJOR >= 4
|
||||
(void) wifi_event_handler;
|
||||
ESP_ERROR_CHECK(esp_event_loop_create_default());
|
||||
/* This helper function configures Wi-Fi or Ethernet, as selected in menuconfig.
|
||||
* Read "Establishing Wi-Fi or Ethernet Connection" section in
|
||||
* examples/protocols/README.md for more information about this function.
|
||||
*/
|
||||
ESP_ERROR_CHECK(example_connect());
|
||||
#else
|
||||
wifi_event_group = xEventGroupCreate();
|
||||
ESP_ERROR_CHECK(esp_event_loop_init(wifi_event_handler, NULL));
|
||||
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
||||
@@ -162,7 +138,6 @@ void app_main(void)
|
||||
ESP_LOGI(TAG, "wifi_init_sta finished.");
|
||||
ESP_LOGI(TAG, "connect to ap SSID:%s password:%s",
|
||||
TLS_SMP_WIFI_SSID, TLS_SMP_WIFI_PASS);
|
||||
#endif
|
||||
ESP_LOGI(TAG, "Set dummy time...");
|
||||
ESP_LOGI(TAG, "Set Dummy time...");
|
||||
set_time();
|
||||
}
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
CONFIG_MAIN_TASK_STACK_SIZE=11000
|
||||
CONFIG_MAIN_TASK_STACK_SIZE=9000
|
||||
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=
|
||||
|
||||
@@ -58,7 +58,6 @@ ${CPDCMD} -r ./wolfssl/*.h ${WOLFSSLLIB_TRG_DIR}/wolfssl/
|
||||
${CPDCMD} -r ./wolfssl/wolfcrypt ${WOLFSSLLIB_TRG_DIR}/wolfssl/
|
||||
# user_settings.h
|
||||
${CPDCMD} -r ${WOLFSSL_ESPIDFDIR}/user_settings.h ${WOLFSSLLIB_TRG_DIR}/include/
|
||||
${CPDCMD} -r ${WOLFSSL_ESPIDFDIR}/dummy_config_h ${WOLFSSLLIB_TRG_DIR}/include/config.h
|
||||
|
||||
# unit test app
|
||||
${CPDCMD} -r ${WOLFSSL_ESPIDFDIR}/test/* ${WOLFSSLLIB_TRG_DIR}/test/
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
@echo off
|
||||
REM Expect the script at /path/to/wolfssl/IDE/Espressif/ESP-IDF/
|
||||
|
||||
if NOT EXIST "setup.sh" (
|
||||
echo "Please run this script at /path/to/wolfssl/IDE/Espressif/ESP-IDF/
|
||||
goto exit
|
||||
)
|
||||
|
||||
if "%IDF_PATH%" == "" (
|
||||
echo "Please launch the script from ESP-IDF command prompt."
|
||||
goto exit
|
||||
)
|
||||
|
||||
set SCRIPTDIR=%CD%
|
||||
set BASEDIR=%SCRIPTDIR%\..\..\..\
|
||||
set WOLFSSL_ESPIDFDIR=%BASEDIR%\IDE\Espressif\ESP-IDF
|
||||
set WOLFSSLLIB_TRG_DIR=%IDF_PATH%\components\wolfssl
|
||||
set WOLFSSLEXP_TRG_DIR=%IDF_PATH%\examples\protocols
|
||||
|
||||
echo Copy files into $IDF_PATH%
|
||||
rem Remove/Create directories
|
||||
rmdir /S/Q %WOLFSSLLIB_TRG_DIR%
|
||||
mkdir %WOLFSSLLIB_TRG_DIR%
|
||||
mkdir %WOLFSSLLIB_TRG_DIR%\src
|
||||
mkdir %WOLFSSLLIB_TRG_DIR%\wolfcrypt\src
|
||||
mkdir %WOLFSSLLIB_TRG_DIR%\wolfssl
|
||||
mkdir %WOLFSSLLIB_TRG_DIR%\test
|
||||
mkdir %WOLFSSLLIB_TRG_DIR%\include
|
||||
|
||||
rem copying ... files in src/ into $WOLFSSLLIB_TRG_DIR%/src
|
||||
xcopy /Y/Q %BASEDIR%\src\*.c %WOLFSSLLIB_TRG_DIR%\src\
|
||||
xcopy /Y/Q %BASEDIR%\wolfcrypt\src\*.c %WOLFSSLLIB_TRG_DIR%\wolfcrypt\src
|
||||
xcopy /Y/Q %BASEDIR%\wolfcrypt\src\*.i %WOLFSSLLIB_TRG_DIR%\wolfcrypt\src
|
||||
xcopy /E/Y/Q %BASEDIR%\wolfcrypt\src\port %WOLFSSLLIB_TRG_DIR%\wolfcrypt\src\port\
|
||||
xcopy /E/Y/Q %BASEDIR%\wolfcrypt\test\ %WOLFSSLLIB_TRG_DIR%\wolfcrypt\test\
|
||||
xcopy /E/Y/Q %BASEDIR%\wolfcrypt\benchmark\ %WOLFSSLLIB_TRG_DIR%\wolfcrypt\benchmark\
|
||||
xcopy /Y/Q %BASEDIR%\wolfssl\*.h %WOLFSSLLIB_TRG_DIR%\wolfssl\
|
||||
xcopy /E/Y/Q %BASEDIR%\wolfssl\wolfcrypt\ %WOLFSSLLIB_TRG_DIR%\wolfssl\wolfcrypt\
|
||||
|
||||
rem user_settings.h
|
||||
xcopy /F/Q %WOLFSSL_ESPIDFDIR%\user_settings.h %WOLFSSLLIB_TRG_DIR%\include\
|
||||
echo F |xcopy /F/Q %WOLFSSL_ESPIDFDIR%\dummy_config_h %WOLFSSLLIB_TRG_DIR%\include\config.h
|
||||
|
||||
rem unit test app
|
||||
xcopy /E/Y/Q %WOLFSSL_ESPIDFDIR%\test %WOLFSSLLIB_TRG_DIR%\test\
|
||||
xcopy /F/Q %WOLFSSL_ESPIDFDIR%\libs\CMakeLists.txt %WOLFSSLLIB_TRG_DIR%\
|
||||
xcopy /F/Q %WOLFSSL_ESPIDFDIR%\libs\component.mk %WOLFSSLLIB_TRG_DIR%\
|
||||
|
||||
rem Benchmark program
|
||||
rmdir /S/Q %WOLFSSLEXP_TRG_DIR%\wolfssl_benchmark\
|
||||
mkdir %WOLFSSLEXP_TRG_DIR%\wolfssl_benchmark\main\
|
||||
xcopy /F/Q %BASEDIR%\wolfcrypt\benchmark\benchmark.c %WOLFSSLEXP_TRG_DIR%\wolfssl_benchmark\main\
|
||||
xcopy /E/F/Q %WOLFSSL_ESPIDFDIR%\examples\wolfssl_benchmark %WOLFSSLEXP_TRG_DIR%\wolfssl_benchmark\
|
||||
|
||||
rem Crypt Test program
|
||||
rmdir /S/Q %WOLFSSLEXP_TRG_DIR%\wolfssl_test\
|
||||
mkdir %WOLFSSLEXP_TRG_DIR%\wolfssl_test\main\
|
||||
xcopy /F/Q %BASEDIR%\wolfcrypt\test\test.c %WOLFSSLEXP_TRG_DIR%\wolfssl_test\main\
|
||||
xcopy /E/F/Q %WOLFSSL_ESPIDFDIR%\examples\wolfssl_test %WOLFSSLEXP_TRG_DIR%\wolfssl_test\
|
||||
|
||||
rem TLS Client program
|
||||
rmdir /S/Q %WOLFSSLEXP_TRG_DIR%\wolfssl_client\
|
||||
mkdir %WOLFSSLEXP_TRG_DIR%\wolfssl_client\main\
|
||||
xcopy /E/F/Q %WOLFSSL_ESPIDFDIR%\examples\wolfssl_client %WOLFSSLEXP_TRG_DIR%\wolfssl_client\
|
||||
|
||||
rem TLS Server program
|
||||
rmdir /S/Q %WOLFSSLEXP_TRG_DIR%\wolfssl_server\
|
||||
mkdir %WOLFSSLEXP_TRG_DIR%\wolfssl_server\main\
|
||||
xcopy /E/F/Q %WOLFSSL_ESPIDFDIR%\examples\wolfssl_server %WOLFSSLEXP_TRG_DIR%\wolfssl_server\
|
||||
|
||||
:exit
|
||||
echo completed
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_MAIN_DRIVER -DWOLFSSL_USER_SETTINGS")
|
||||
|
||||
set(COMPONENT_SRCS "test_wolfssl.c" "../wolfcrypt/test/test.c")
|
||||
set(COMPONENT_SRCDIRS ".")
|
||||
set(COMPONENT_ADD_INCLUDEDIRS ".")
|
||||
|
||||
set(COMPONENT_REQUIRES unity test_utils wolfssl)
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
The test contains of wolfSSL unit-test app on Unity.
|
||||
|
||||
When you want to run the app
|
||||
1. Go to /esp-idf/tools/unit-test-app/ folder
|
||||
2. "idf.py menuconfig" to configure unit test app.
|
||||
3. "idf.py -T wolfssl build" to build wolfssl unit test app.
|
||||
1. Copy *test.c* file at /path/to/esp-idf/components/wolfssl/wolfcrypt/test/ folder to the wolfssl/test folder
|
||||
2. Go to /esp-idf/tools/unit-test-app/ folder
|
||||
3. "make menuconfig" to configure unit test app.
|
||||
4. "make TEST_COMPONENTS=wolfssl" to build wolfssl unit test app.
|
||||
|
||||
See [https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/unit-tests.html] for more information about unit test app.
|
||||
|
||||
@@ -171,7 +171,7 @@ static void tskAes256_Test(void *pvParam)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (!defined(NO_RSA) || defined(HAVE_ECC)) && !defined(WC_NO_RNG)
|
||||
#if !defined(NO_RSA) || defined(HAVE_ECC)
|
||||
|
||||
int mp_performance_check(int mul, int mulmod, int exptmod)
|
||||
{
|
||||
@@ -280,13 +280,13 @@ int mp_performance_check(int mul, int mulmod, int exptmod)
|
||||
printf("(%d,%d) Xbits = %d, Ybits = %d Pbits = %d",
|
||||
i , j, Xbits, Ybits, Pbits);
|
||||
if(mul) {
|
||||
printf(" mul = %llu (us)", (unsigned long long)elapsedTime1);
|
||||
printf(" mul = %llu (us)", elapsedTime1);
|
||||
}
|
||||
if(mulmod) {
|
||||
printf(" mulmod = %llu (us)\n", (unsigned long long)elapsedTime2);
|
||||
printf(" mulmod = %llu (us)\n", elapsedTime2);
|
||||
}
|
||||
if(exptmod) {
|
||||
printf(" exptmod = %llu (ms)\n", (unsigned long long)elapsedTime3);
|
||||
printf(" exptmod = %llu (ms)\n", elapsedTime3);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -308,8 +308,8 @@ int mp_performance_check(int mul, int mulmod, int exptmod)
|
||||
int mp_unitest_mul(const char* strZ, const char* strX, const char* strY, int verbose)
|
||||
{
|
||||
int ret = 0;
|
||||
char* buf = NULL;
|
||||
char* bufZ = NULL;
|
||||
char* buf;
|
||||
char* bufZ;
|
||||
int radixX_size;
|
||||
int radixZ_size;
|
||||
int radixY_size;
|
||||
@@ -335,10 +335,10 @@ int mp_unitest_mul(const char* strZ, const char* strX, const char* strY, int ver
|
||||
}
|
||||
|
||||
mp_radix_size(&z, 16, &radixZ_size);
|
||||
bufZ = (char*)XMALLOC(radixZ_size, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
bufZ = (char*)XMALLOC(radixZ_size + 1, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if(bufZ != NULL) {
|
||||
mp_toradix(&z, bufZ, 16);
|
||||
bufZ[radixZ_size-1] ='\0';
|
||||
bufZ[radixZ_size] ='\0';
|
||||
}
|
||||
|
||||
if(verbose) {
|
||||
@@ -350,14 +350,14 @@ int mp_unitest_mul(const char* strZ, const char* strX, const char* strY, int ver
|
||||
mp_radix_size(&y, 16, &radixY_size);
|
||||
radixX_size = max(radixX_size, radixY_size);
|
||||
|
||||
buf = (char*)XMALLOC(radixX_size, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
buf = (char*)XMALLOC(radixX_size + 1, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if(buf != NULL) {
|
||||
mp_toradix(&x, buf, 16);
|
||||
buf[radixX_size-1] ='\0';
|
||||
buf[radixX_size] ='\0';
|
||||
printf("X : %s ", buf);
|
||||
|
||||
mp_toradix(&y, buf, 16);
|
||||
buf[radixY_size-1] ='\0';
|
||||
buf[radixY_size] ='\0';
|
||||
printf("Y : %s ", buf);
|
||||
}
|
||||
if(bufZ != NULL) {
|
||||
@@ -410,10 +410,10 @@ int mp_unitest_mulmod(const char* strZ, const char* strX, const char* strY,
|
||||
}
|
||||
|
||||
mp_radix_size(&z, 16, &radixZ_size);
|
||||
bufZ = (char*)XMALLOC(radixZ_size, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
bufZ = (char*)XMALLOC(radixZ_size + 1, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if(bufZ != NULL) {
|
||||
mp_toradix(&z, bufZ, 16);
|
||||
bufZ[radixZ_size-1] ='\0';
|
||||
bufZ[radixZ_size] ='\0';
|
||||
}
|
||||
|
||||
if(verbose) {
|
||||
@@ -427,18 +427,18 @@ int mp_unitest_mulmod(const char* strZ, const char* strX, const char* strY,
|
||||
mp_radix_size(&m, 16, &radixM_size);
|
||||
radixX_size = max(radixX_size, max(radixY_size, radixM_size));
|
||||
|
||||
buf = (char*)XMALLOC(radixX_size, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
buf = (char*)XMALLOC(radixX_size + 1, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if(buf != NULL) {
|
||||
mp_toradix(&x, buf, 16);
|
||||
buf[radixX_size-1] ='\0';
|
||||
buf[radixX_size] ='\0';
|
||||
printf("X : %s ", buf);
|
||||
|
||||
mp_toradix(&y, buf, 16);
|
||||
buf[radixY_size-1] ='\0';
|
||||
buf[radixY_size] ='\0';
|
||||
printf("Y : %s ", buf);
|
||||
|
||||
mp_toradix(&m, buf, 16);
|
||||
buf[radixM_size-1] ='\0';
|
||||
buf[radixM_size] ='\0';
|
||||
printf("M : %s ", buf);
|
||||
}
|
||||
if(bufZ != NULL) {
|
||||
@@ -459,8 +459,8 @@ int mp_unitest_exptmod(const char* strZ, const char* strX, const char* strY,
|
||||
const char* strM, int verbose)
|
||||
{
|
||||
int ret = 0;
|
||||
char* buf = NULL;
|
||||
char* bufZ = NULL;
|
||||
char* buf;
|
||||
char* bufZ;
|
||||
int radixX_size;
|
||||
int radixZ_size;
|
||||
int radixY_size;
|
||||
@@ -491,10 +491,10 @@ int mp_unitest_exptmod(const char* strZ, const char* strX, const char* strY,
|
||||
}
|
||||
|
||||
mp_radix_size(&z, 16, &radixZ_size);
|
||||
bufZ = (char*)XMALLOC(radixZ_size, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
bufZ = (char*)XMALLOC(radixZ_size + 1, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if(bufZ != NULL) {
|
||||
mp_toradix(&z, bufZ, 16);
|
||||
bufZ[radixZ_size-1] ='\0';
|
||||
bufZ[radixZ_size] ='\0';
|
||||
}
|
||||
|
||||
if(verbose) {
|
||||
@@ -508,18 +508,18 @@ int mp_unitest_exptmod(const char* strZ, const char* strX, const char* strY,
|
||||
mp_radix_size(&m, 16, &radixM_size);
|
||||
radixX_size = max(radixX_size, max(radixY_size, radixM_size));
|
||||
|
||||
buf = (char*)XMALLOC(radixX_size, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
buf = (char*)XMALLOC(radixX_size + 1, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if(buf != NULL) {
|
||||
mp_toradix(&x, buf, 16);
|
||||
buf[radixX_size-1] ='\0';
|
||||
buf[radixX_size] ='\0';
|
||||
printf("X : %s ", buf);
|
||||
|
||||
mp_toradix(&y, buf, 16);
|
||||
buf[radixY_size-1] ='\0';
|
||||
buf[radixY_size] ='\0';
|
||||
printf("Y : %s ", buf);
|
||||
|
||||
mp_toradix(&m, buf, 16);
|
||||
buf[radixM_size-1] ='\0';
|
||||
buf[radixM_size] ='\0';
|
||||
printf("M : %s ", buf);
|
||||
}
|
||||
if(bufZ != NULL) {
|
||||
@@ -539,20 +539,20 @@ int mp_unitest_exptmod(const char* strZ, const char* strX, const char* strY,
|
||||
TEST_CASE("wolfssl mp exptmod test" , "[wolfssl]")
|
||||
{
|
||||
ESP_LOGI(TAG, "mp test");
|
||||
int verbose = 1;
|
||||
int verbose = 0;
|
||||
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("02", "5", "1", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("01", "-5", "1", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("2", "5", "1", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("1", "-5", "1", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("CE331E6D30A77A57", "1234", "A",
|
||||
"FFFFFFFFFFFFFFFF", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("01000000", "1000", "2", "FFFFFFF", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("01000000", "2", "128",
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("1000000", "1000", "2", "FFFFFFF", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("1000000", "2", "128",
|
||||
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("014B5A90", "1234", "2", "FFFFFFF", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("01234321", "1111", "2", "FFFFFFFF", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("02", "5", "1", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("14B5A90", "1234", "2", "FFFFFFF", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("1234321", "1111", "2", "FFFFFFFF", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("2", "5", "1", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("22", "55", "1", "33", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("0222", "555", "1", "333", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("222", "555", "1", "333", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("2222", "5555", "1", "3333", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("11", "5555", "1", "33", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_exptmod("55", "1111", "1", "77", verbose));
|
||||
@@ -562,16 +562,16 @@ TEST_CASE("wolfssl mp exptmod test" , "[wolfssl]")
|
||||
TEST_CASE("wolfssl mp mulmod test" , "[wolfssl]")
|
||||
{
|
||||
ESP_LOGI(TAG, "mp test");
|
||||
int verbose = 1;
|
||||
int verbose = 0;
|
||||
/* Z X Y M */
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mulmod("02", "5", "1", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mulmod("01", "-5", "1", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mulmod("02", "-64", "A", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mulmod("2", "5", "1", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mulmod("1", "-5", "1", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mulmod("2", "-64", "A", "3", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mulmod("74C3AC", "123456", "55555", "AAAAA1", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mulmod("73A068", "123456", "55555", "AAAAA3", verbose));
|
||||
|
||||
mp_unitest_mulmod(
|
||||
"010C530243ADE5EA7C557E9A2FF5B4573195665A89CB921F573267B15CD2BCB6467E925235AA752CC2D08B07D31497B497744CA3685A46E76247439826628589DD814AC9EEE9EF8B4B44BEE2DB6065BE3C51B788E4ECFF39FB28C3D8EBE10FC9989D97CDC6624E32EBD222E222A2E93085FC2D05E4EB73375F7FC7B11E9B3024",
|
||||
"10C530243ADE5EA7C557E9A2FF5B4573195665A89CB921F573267B15CD2BCB6467E925235AA752CC2D08B07D31497B497744CA3685A46E76247439826628589DD814AC9EEE9EF8B4B44BEE2DB6065BE3C51B788E4ECFF39FB28C3D8EBE10FC9989D97CDC6624E32EBD222E222A2E93085FC2D05E4EB73375F7FC7B11E9B3024",
|
||||
"A4F780E83C3FAC34878787D4876BA7582E48C7637A26C6E720974FC7416150A3865D44F6D08E3DA38EB4296928C564D9A0008D8A0D63E0B8EF54D14D54FBEAB540E43D2ED6BE54806D9150C1944437CC3D8B2486A1FB932A6691B529E0E2A46524CB0825BA4F4E1B9C24554DB1913169E5373173A3B7CBBF77C3403C8C7AE86A",
|
||||
"6520379E44C1A2C359342010E1038F8C3644D9A47A9346A80C92B48A6986872D74C3BDDB49B2D93C554B588D4A4448614FADBC066CC10F3EB20A2422EA857B7DD0BF60C9CB7D733B12761BD785BCD122D97ECA0A8F1D0F705BC094B66EE5C96712AE3B14B5AA6AD9E50C6A3020BA01DA4FB94E3934527ADCDB3DE51C368B37C2",
|
||||
"BE7070B80418E528FE66D89088E0F1B7C3D0D23EE64B9474B0FFB0F763A5AB7EAFB62BB738161A50BFF1CA873AD5B0DAF8437A15B97EEA2A80D251B035AF07F3F25D243A4B8756481B3C249ADA7080BD3C8B034A0C8371DEE30370A2B760091B5EC73DA06460E3A9068DD3FF42BB0A94272D57420DB02DE0BA182560921192F3",
|
||||
@@ -602,13 +602,13 @@ TEST_CASE("wolfssl mp mulmod test" , "[wolfssl]")
|
||||
TEST_CASE("wolfssl mp mul test" , "[wolfssl]")
|
||||
{
|
||||
ESP_LOGI(TAG, "mp test");
|
||||
int verbose = 1;
|
||||
int verbose = 0;
|
||||
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul("0A", "5", "2", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul("-0A", "-5", "2", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul("0A", "-5", "-2", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul("06260060", "1234", "5678", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul("038E83", "123", "321", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul("A", "5", "2", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul("-A", "-5", "2", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul("A", "-5", "-2", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul("6260060", "1234", "5678", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul("38E83", "123", "321", verbose));
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul("75CD7FCBBC", "123456", "6789A", verbose));
|
||||
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul(
|
||||
@@ -618,7 +618,7 @@ TEST_CASE("wolfssl mp mul test" , "[wolfssl]")
|
||||
verbose));
|
||||
|
||||
TEST_ASSERT_EQUAL(0, mp_unitest_mul(
|
||||
"033676FE7B625BF0759F7E8932B6B50D5F45E16E1C670AD20F1CDA5DFFA433685937CA8422A9CB916CC8",
|
||||
"33676FE7B625BF0759F7E8932B6B50D5F45E16E1C670AD20F1CDA5DFFA433685937CA8422A9CB916CC8",
|
||||
"165196BA298CD54975DC483C4D21A51EA0A146783CFB41522E76E50C",
|
||||
"24D9D5CA7D9CCC06F5E70F1963E6",
|
||||
verbose));
|
||||
@@ -636,7 +636,7 @@ TEST_CASE("wolfssl mp mul performance test" , "[wolfssl]")
|
||||
|
||||
TEST_ASSERT_EQUAL(0, mp_performance_check(mul, mulmod, exptmod));
|
||||
}
|
||||
#endif/* (!NO_RSA || HAVE_ECC) && !WC_NO_RNG */
|
||||
#endif/* !NO_RSA || HAVE_ECC */
|
||||
|
||||
TEST_CASE("wolfssl aes test" , "[wolfssl]")
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* user_settings.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -43,19 +43,6 @@
|
||||
#define CURVE25519_SMALL
|
||||
#define HAVE_ED25519
|
||||
|
||||
/* when you want to use pkcs7 */
|
||||
/* #define HAVE_PKCS7 */
|
||||
|
||||
#if defined(HAVE_PKCS7)
|
||||
#define HAVE_AES_KEYWRAP
|
||||
#define HAVE_X963_KDF
|
||||
#define WOLFSSL_AES_DIRECT
|
||||
#endif
|
||||
|
||||
/* when you want to use aes counter mode */
|
||||
/* #define WOLFSSL_AES_DIRECT */
|
||||
/* #define WOLFSSL_AES_COUNTER */
|
||||
|
||||
/* esp32-wroom-32se specific definition */
|
||||
#if defined(WOLFSSL_ESPWROOM32SE)
|
||||
#define WOLFSSL_ATECC508A
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* user_settings.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -70,15 +70,13 @@ extern "C" {
|
||||
#define WOLFSSL_HAVE_SP_RSA
|
||||
#define WOLFSSL_HAVE_SP_DH
|
||||
#define WOLFSSL_HAVE_SP_ECC
|
||||
//#define WOLFSSL_SP_CACHE_RESISTANT
|
||||
#define WOLFSSL_SP_MATH /* only SP math - eliminates fast math code */
|
||||
#define WOLFSSL_SP_CACHE_RESISTANT
|
||||
//#define WOLFSSL_SP_MATH /* only SP math - eliminates fast math code */
|
||||
|
||||
/* SP Assembly Speedups */
|
||||
#define WOLFSSL_SP_ASM /* required if using the ASM versions */
|
||||
/* 64 or 32 bit version */
|
||||
//#define WOLFSSL_SP_ASM /* required if using the ASM versions */
|
||||
//#define WOLFSSL_SP_ARM32_ASM
|
||||
//#define WOLFSSL_SP_ARM64_ASM
|
||||
//#define WOLFSSL_SP_ARM_THUMB_ASM
|
||||
#define WOLFSSL_SP_ARM_CORTEX_M_ASM
|
||||
#endif
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
@@ -173,15 +171,16 @@ extern "C" {
|
||||
#undef ECC_TIMING_RESISTANT
|
||||
#define ECC_TIMING_RESISTANT
|
||||
|
||||
/* Enable cofactor support */
|
||||
#ifdef HAVE_FIPS
|
||||
#undef HAVE_ECC_CDH
|
||||
#define HAVE_ECC_CDH /* Enable cofactor support */
|
||||
|
||||
#undef NO_STRICT_ECDSA_LEN
|
||||
#define NO_STRICT_ECDSA_LEN /* Do not force fixed len w/ FIPS */
|
||||
#define HAVE_ECC_CDH
|
||||
#endif
|
||||
|
||||
/* Validate import */
|
||||
#ifdef HAVE_FIPS
|
||||
#undef WOLFSSL_VALIDATE_ECC_IMPORT
|
||||
#define WOLFSSL_VALIDATE_ECC_IMPORT /* Validate import */
|
||||
#define WOLFSSL_VALIDATE_ECC_IMPORT
|
||||
#endif
|
||||
|
||||
/* Compressed Key Support */
|
||||
@@ -190,17 +189,14 @@ extern "C" {
|
||||
|
||||
/* Use alternate ECC size for ECC math */
|
||||
#ifdef USE_FAST_MATH
|
||||
/* MAX ECC BITS = ROUND8(MAX ECC) * 2 */
|
||||
#ifdef NO_RSA
|
||||
/* Custom fastmath size if not using RSA */
|
||||
/* MAX = ROUND32(ECC BITS 256) + SIZE_OF_MP_DIGIT(32) */
|
||||
#undef FP_MAX_BITS
|
||||
#define FP_MAX_BITS (256 * 2)
|
||||
#define FP_MAX_BITS (256 + 32)
|
||||
#else
|
||||
#undef ALT_ECC_SIZE
|
||||
#define ALT_ECC_SIZE
|
||||
/* wolfSSL will compute the FP_MAX_BITS_ECC, but it can be overriden */
|
||||
//#undef FP_MAX_BITS_ECC
|
||||
//#define FP_MAX_BITS_ECC (256 * 2)
|
||||
#endif
|
||||
|
||||
/* Speedups specific to curve */
|
||||
|
||||
@@ -27,8 +27,7 @@ INC = -I./Header \
|
||||
DEF = -DWOLFSSL_USER_SETTINGS
|
||||
|
||||
# Architecture
|
||||
ARCHFLAGS = -mcpu=cortex-m4 -mthumb -mabi=aapcs -DUSE_WOLF_ARM_STARTUP
|
||||
#ARCHFLAGS = -mcpu=cortex-m0 -mthumb -mabi=aapcs -DUSE_WOLF_ARM_STARTUP
|
||||
ARCHFLAGS = -mcpu=cortex-m0 -mthumb -mabi=aapcs -DUSE_WOLF_ARM_STARTUP
|
||||
#ARCHFLAGS = -mcpu=cortex-r5 -mthumb -mabi=aapcs
|
||||
#ARCHFLAGS = -mcpu=cortex-a53 -mthumb -mabi=aapcs
|
||||
|
||||
@@ -133,10 +132,7 @@ SRC_C += ../../wolfcrypt/src/signature.c
|
||||
SRC_C += ../../wolfcrypt/src/srp.c
|
||||
SRC_C += ../../wolfcrypt/src/sp_arm32.c
|
||||
SRC_C += ../../wolfcrypt/src/sp_arm64.c
|
||||
SRC_C += ../../wolfcrypt/src/sp_armthumb.c
|
||||
SRC_C += ../../wolfcrypt/src/sp_c32.c
|
||||
SRC_C += ../../wolfcrypt/src/sp_c64.c
|
||||
SRC_C += ../../wolfcrypt/src/sp_cortexm.c
|
||||
SRC_C += ../../wolfcrypt/src/sp_int.c
|
||||
SRC_C += ../../wolfcrypt/src/tfm.c
|
||||
SRC_C += ../../wolfcrypt/src/wc_encrypt.c
|
||||
|
||||
@@ -120,6 +120,6 @@ These settings are located in `Header/user_settings.h`.
|
||||
* `USE_SLOW_SHA512`: Over twice as small, but 50% slower
|
||||
* `USE_CERT_BUFFERS_1024` or `USE_CERT_BUFFERS_2048`: Size of RSA certs / keys to test with.
|
||||
* `BENCH_EMBEDDED`: Define this if using the wolfCrypt test/benchmark and using a low memory target.
|
||||
* `ECC_USER_CURVES`: Allows user to define curve sizes to enable. Default is 256-bit on. To enable others use `HAVE_ECC192`, `HAVE_ECC224`, etc....
|
||||
* `ECC_USER_CURVES`: Allows user to defines curve sizes to enable. Default is 256-bit on. To enable others use `HAVE_ECC192`, `HAVE_ECC224`, etc....
|
||||
* `TFM_ARM`, `TFM_SSE2`, `TFM_AVR32`, `TFM_PPC32`, `TFM_MIPS`, `TFM_X86` or `TFM_X86_64`: These are assembly optimizations available with USE_FAST_MATH.
|
||||
* Single Precision Math for ARM: See `WOLFSSL_SP`. Optimized math for ARM performance of specific RSA, DH and ECC algorithms.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* armtarget.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -142,20 +142,20 @@ void HardFault_HandlerC( uint32_t *hardfault_args )
|
||||
_BFAR = (*((volatile uint32_t *)(0xE000ED38)));
|
||||
|
||||
printf ("\n\nHard fault handler (all numbers in hex):\n");
|
||||
printf ("R0 = %ux\n", stacked_r0);
|
||||
printf ("R1 = %ux\n", stacked_r1);
|
||||
printf ("R2 = %ux\n", stacked_r2);
|
||||
printf ("R3 = %ux\n", stacked_r3);
|
||||
printf ("R12 = %ux\n", stacked_r12);
|
||||
printf ("LR [R14] = %ux subroutine call return address\n", stacked_lr);
|
||||
printf ("PC [R15] = %ux program counter\n", stacked_pc);
|
||||
printf ("PSR = %ux\n", stacked_psr);
|
||||
printf ("CFSR = %ux\n", _CFSR);
|
||||
printf ("HFSR = %ux\n", _HFSR);
|
||||
printf ("DFSR = %ux\n", _DFSR);
|
||||
printf ("AFSR = %ux\n", _AFSR);
|
||||
printf ("MMAR = %ux\n", _MMAR);
|
||||
printf ("BFAR = %ux\n", _BFAR);
|
||||
printf ("R0 = %lx\n", stacked_r0);
|
||||
printf ("R1 = %lx\n", stacked_r1);
|
||||
printf ("R2 = %lx\n", stacked_r2);
|
||||
printf ("R3 = %lx\n", stacked_r3);
|
||||
printf ("R12 = %lx\n", stacked_r12);
|
||||
printf ("LR [R14] = %lx subroutine call return address\n", stacked_lr);
|
||||
printf ("PC [R15] = %lx program counter\n", stacked_pc);
|
||||
printf ("PSR = %lx\n", stacked_psr);
|
||||
printf ("CFSR = %lx\n", _CFSR);
|
||||
printf ("HFSR = %lx\n", _HFSR);
|
||||
printf ("DFSR = %lx\n", _DFSR);
|
||||
printf ("AFSR = %lx\n", _AFSR);
|
||||
printf ("MMAR = %lx\n", _MMAR);
|
||||
printf ("BFAR = %lx\n", _BFAR);
|
||||
|
||||
// Break into the debugger
|
||||
__asm("BKPT #0\n");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* benchmark_main.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* test_main.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* tls_client.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wolf_main.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -59,12 +59,12 @@ unsigned int LowResTimer(void)
|
||||
/* This is used by wolfCrypt benchmark tool only */
|
||||
double current_time(int reset)
|
||||
{
|
||||
double timeNow;
|
||||
int timeMs = gTimeMs;
|
||||
double time;
|
||||
int timeMs = gTimeMs;
|
||||
(void)reset;
|
||||
timeNow = (timeMs / 1000); // sec
|
||||
timeNow += (double)(timeMs % 1000) / 1000; // ms
|
||||
return timeNow;
|
||||
time = (timeMs / 1000); // sec
|
||||
time += (double)(timeMs % 1000) / 1000; // ms
|
||||
return time;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ EXTRA_DIST+= IDE/GCC-ARM/Source/benchmark_main.c
|
||||
EXTRA_DIST+= IDE/GCC-ARM/Source/test_main.c
|
||||
EXTRA_DIST+= IDE/GCC-ARM/Source/tls_client.c
|
||||
EXTRA_DIST+= IDE/GCC-ARM/linker.ld
|
||||
EXTRA_DIST+= IDE/GCC-ARM/linker_fips.ld
|
||||
EXTRA_DIST+= IDE/GCC-ARM/Makefile
|
||||
EXTRA_DIST+= IDE/GCC-ARM/Makefile.bench
|
||||
EXTRA_DIST+= IDE/GCC-ARM/Makefile.client
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
MEMORY
|
||||
{
|
||||
FLASH (wx) : ORIGIN = 0x00000000, LENGTH = 256K
|
||||
RAM (wx) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
__vectors_start__ = .;
|
||||
.vectors : { *(.vectors) } > FLASH
|
||||
__vectors_end__ = __vectors_start__ + 0x400;
|
||||
|
||||
/* Custom section for wolfCrypt FIPS module */
|
||||
.wolfCryptFIPSModule_text :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
KEEP(wolfcrypt_first.o (.text .text* ))
|
||||
KEEP(aes.o(.text .text* ))
|
||||
KEEP(cmac.o (.text .text* ))
|
||||
KEEP(des3.o (.text .text* ))
|
||||
KEEP(dh.o (.text .text* ))
|
||||
KEEP(ecc.o (.text .text* ))
|
||||
KEEP(fips.o (.text .text* ))
|
||||
KEEP(fips_test.o (.text .text* ))
|
||||
KEEP(hmac.o (.text .text* ))
|
||||
KEEP(random.o(.text .text* ))
|
||||
KEEP(rsa.o (.text .text* ))
|
||||
KEEP(sha.o (.text .text* ))
|
||||
KEEP(sha256.o (.text .text* ))
|
||||
KEEP(sha3.o (.text .text* ))
|
||||
KEEP(sha512.o (.text .text* ))
|
||||
KEEP(wolfcrypt_last.o(.text .text*))
|
||||
. = ALIGN(4);
|
||||
} > FLASH
|
||||
.wolfCryptFIPSModule_rodata :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
KEEP(wolfcrypt_first.o (.rodata .rodata*))
|
||||
KEEP(aes.o(.rodata .rodata*))
|
||||
KEEP(cmac.o(.rodata .rodata*))
|
||||
KEEP(des3.o(.rodata .rodata*))
|
||||
KEEP(dh.o(.rodata .rodata*))
|
||||
KEEP(ecc.o(.rodata .rodata*))
|
||||
KEEP(fips.o(.rodata .rodata*))
|
||||
KEEP(fips_test.o(.rodata .rodata*))
|
||||
KEEP(hmac.o(.rodata .rodata*))
|
||||
KEEP(random.o(.rodata .rodata*))
|
||||
KEEP(rsa.o(.rodata .rodata*))
|
||||
KEEP(sha.o(.rodata .rodata*))
|
||||
KEEP(sha256.o(.rodata .rodata*))
|
||||
KEEP(sha3.o(.rodata .rodata*))
|
||||
KEEP(sha512.o(.rodata .rodata*))
|
||||
KEEP(wolfcrypt_last.o(.rodata .rodata*))
|
||||
. = ALIGN(4);
|
||||
} > FLASH
|
||||
|
||||
/* Custom section for wolfCrypt and LibC to prevent FIPS hash from changing
|
||||
when application code changes are made */
|
||||
.wolfCryptNonFIPS_text :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
KEEP(*wolf*src*.o(.text .text*))
|
||||
lib_a* ( .text .text*)
|
||||
. = ALIGN(4);
|
||||
} > FLASH
|
||||
.wolfCryptNonFIPS_rodata :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
KEEP(*wolf*src*.o(.rodata .rodata*))
|
||||
lib_a* (.rodata .rodata*)
|
||||
. = ALIGN(4);
|
||||
} > FLASH
|
||||
|
||||
.sys : { *(.sys*) } > FLASH
|
||||
.text : { *(.text*) } > FLASH
|
||||
.rodata : { *(.text*) } > FLASH
|
||||
|
||||
__data_load_start__ = .;
|
||||
__data_start__ = .;
|
||||
.data : { *(.data*) } > RAM
|
||||
__data_end__ = __data_start__ + SIZEOF(.data);
|
||||
|
||||
__bss_start__ = .;
|
||||
.bss : { *(.bss*) } > RAM
|
||||
__bss_end__ = __bss_start__ + SIZEOF(.bss);
|
||||
|
||||
__heap_start__ = .;
|
||||
.heap : { *(.heap*) } > RAM
|
||||
__heap_end__ = __heap_start__ + SIZEOF(.heap);
|
||||
|
||||
end = .;
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
# Makefile
|
||||
#
|
||||
# Copyright (C) 2006-2021 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
|
||||
#/
|
||||
|
||||
ENVI=hexagon
|
||||
|
||||
# default to hexagon v65 Release build
|
||||
ifndef V
|
||||
V=hexagon_Release_dynamic_toolv83_v65
|
||||
endif
|
||||
|
||||
SUPPORTED_VS = $(default_VS)
|
||||
|
||||
DEPENDENCIES = \
|
||||
ATOMIC \
|
||||
RPCMEM \
|
||||
TEST_MAIN \
|
||||
TEST_UTIL
|
||||
ATOMIC_DIR = $(HEXAGON_SDK_ROOT)/libs/common/atomic
|
||||
RPCMEM_DIR = $(HEXAGON_SDK_ROOT)/libs/common/rpcmem
|
||||
TEST_MAIN_DIR = $(HEXAGON_SDK_ROOT)/test/common/test_main
|
||||
TEST_UTIL_DIR = $(HEXAGON_SDK_ROOT)/test/common/test_util
|
||||
|
||||
include $(HEXAGON_SDK_ROOT)/build/make.d/$(ENVI)_vs.min
|
||||
include $(HEXAGON_SDK_ROOT)/build/defines.min
|
||||
|
||||
QURT = $(HEXAGON_SDK_ROOT)/libs/common/qurt
|
||||
QAIC_FLAGS += -I../../../
|
||||
CC_FLAGS += -I../../../
|
||||
CC_FLAGS += -I $(QURT)/computev65/include/posix/
|
||||
CC_FLAGS += -I $(QURT)/computev65/include/qurt/
|
||||
CC_FLAGS += -I../
|
||||
CC_FLAGS += -DWOLFSSL_USER_SETTINGS
|
||||
CC_FLAGS += -DWOLFSSL_DSP_BUILD
|
||||
CC_FLAGS += -DWC_NO_RNG
|
||||
#CC_FLAGS += -O3
|
||||
|
||||
C_FLAGS += $(MHVX_DOUBLE_FLAG) -mllvm -hexagon-eif=0
|
||||
CC_FLAGS += $(MHVX_DOUBLE_FLAG) -mllvm -hexagon-eif=0
|
||||
|
||||
# stub library
|
||||
BUILD_LIBS += libwolfssl_dsp_skel
|
||||
ifeq (1,$(V_dynamic))
|
||||
BUILD_DLLS += libwolfssl_dsp_skel
|
||||
endif
|
||||
libwolfssl_dsp_skel_QAICIDLS += wolfssl_dsp
|
||||
libwolfssl_dsp_skel_C_SRCS += $V/wolfSSL_skel
|
||||
libwolfssl_dsp_skel.C_SRCS += ../../../wolfcrypt/src/sp_dsp32.c
|
||||
libwolfssl_dsp_skel.C_SRCS += ../../../wolfcrypt/src/sp_int.c
|
||||
libwolfssl_dsp_skel.C_SRCS += ../../../wolfcrypt/src/wc_port.c
|
||||
libwolfssl_dsp_skel.C_SRCS += ../../../wolfcrypt/src/logging.c
|
||||
libwolfssl_dsp_skel.C_SRCS += ../../../wolfcrypt/src/memory.c
|
||||
libwolfssl_dsp_skel.C_SRCS += ../../../wolfcrypt/src/wolfmath.c
|
||||
#libsp_dsp_skel_DLLS += libdspCV_skel
|
||||
|
||||
# quality test
|
||||
#BUILD_QEXES += eccverify_q
|
||||
#eccverify_q_QAICIDLS = wolfssl_dsp
|
||||
#eccverify_q_C_SRCS = ../ecc-verify
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/wc_dsp.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/sp_dsp32.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/sp_int.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/wc_port.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/wc_encrypt.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/pwdbased.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/hash.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/arc4.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/hmac.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/md5.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/coding.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/aes.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/des3.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/random.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/logging.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/ecc.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/memory.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/sha256.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/sha.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/asn.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/wolfmath.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/sp_c32.c
|
||||
#eccverify_q.C_SRCS += ../../../wolfcrypt/src/sp_c64.c
|
||||
#eccverify_q_LIBS = rtld rpcmem test_util atomic test_main
|
||||
|
||||
BUILD_COPIES = \
|
||||
$(DLLS) \
|
||||
$(EXES) \
|
||||
$(LIBS) \
|
||||
$(SHIP_DIR)/ ;
|
||||
|
||||
|
||||
include $(RULES_MIN)
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
#ifndef WOLFSSL_DSP_INC
|
||||
#define WOLFSSL_DSP_INC
|
||||
|
||||
#include "AEEStdDef.idl"
|
||||
#include "remote.idl"
|
||||
|
||||
interface wolfSSL: remote_handle64{
|
||||
|
||||
/* ecc operations */
|
||||
long DSP_ECC_Verify_256(inrout sequence<int32> hash, inrout sequence<int32> pX, inrout sequence<int32> pY,
|
||||
inrout sequence<int32> pZ, inrout sequence<int32> r, inrout sequence<int32> sm, inrout long res);
|
||||
};
|
||||
#endif
|
||||
@@ -1,190 +0,0 @@
|
||||
# Makefile
|
||||
#
|
||||
# Copyright (C) 2006-2021 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
|
||||
#/
|
||||
|
||||
ENVI=UbuntuARM
|
||||
|
||||
# default to Ubuntu Release build
|
||||
ifndef V
|
||||
V=UbuntuARM_Release_aarch64
|
||||
endif
|
||||
|
||||
SUPPORTED_VS = $(default_VS)
|
||||
include $(HEXAGON_SDK_ROOT)/build/make.d/$(ENVI)_vs.min
|
||||
include $(HEXAGON_SDK_ROOT)/build/defines.min
|
||||
|
||||
ifeq ($(CDSP_FLAG), 1)
|
||||
LIB_DSPRPC = libcdsprpc
|
||||
else ifeq ($(MDSP_FLAG), 1)
|
||||
LIB_DSPRPC = libmdsprpc
|
||||
else ifeq ($(SLPI_FLAG), 1)
|
||||
LIB_DSPRPC = libsdsprpc
|
||||
else
|
||||
LIB_DSPRPC = libadsprpc
|
||||
endif
|
||||
$(info ************ LIB=$(LIB_DSPRPC) ************)
|
||||
# include files
|
||||
CC_FLAGS += -I../../
|
||||
CC_FLAGS += -I./
|
||||
CC_FLAGS += -DWOLFSSL_USER_SETTINGS
|
||||
CC_FLAGS += -mcpu=generic+crypto
|
||||
#CC_FLAGS += -O3
|
||||
|
||||
DEPENDENCIES = \
|
||||
ATOMIC \
|
||||
RPCMEM
|
||||
ATOMIC_DIR = $(HEXAGON_SDK_ROOT)/libs/common/atomic
|
||||
RPCMEM_DIR = $(HEXAGON_SDK_ROOT)/libs/common/rpcmem
|
||||
|
||||
# stub library
|
||||
BUILD_DLLS += libwolfssl
|
||||
libwolfssl_QAICIDLS += DSP/wolfssl_dsp
|
||||
libwolfssl_C_SRCS += $V/wolfSSL_stub
|
||||
libwolfssl_DLLS += $(LIB_DSPRPC)
|
||||
libwolfssl_C_SRCS += ../../wolfcrypt/src/wc_dsp
|
||||
libwolfssl_LIBS += rpcmem
|
||||
libwolfssl_LD_FLAGS += -ldl
|
||||
|
||||
# wolfSSL crypto source files
|
||||
libwolfssl_C_SRCS += \
|
||||
../../wolfcrypt/src/aes \
|
||||
../../wolfcrypt/src/md2 \
|
||||
../../wolfcrypt/src/arc4 \
|
||||
../../wolfcrypt/src/md4 \
|
||||
../../wolfcrypt/src/asm \
|
||||
../../wolfcrypt/src/md5 \
|
||||
../../wolfcrypt/src/asn \
|
||||
../../wolfcrypt/src/memory \
|
||||
../../wolfcrypt/src/async \
|
||||
../../wolfcrypt/src/blake2b \
|
||||
../../wolfcrypt/src/pkcs12 \
|
||||
../../wolfcrypt/src/blake2s \
|
||||
../../wolfcrypt/src/pkcs7 \
|
||||
../../wolfcrypt/src/camellia \
|
||||
../../wolfcrypt/src/poly1305 \
|
||||
../../wolfcrypt/src/chacha20_poly1305 \
|
||||
../../wolfcrypt/src/pwdbased \
|
||||
../../wolfcrypt/src/chacha \
|
||||
../../wolfcrypt/src/rabbit \
|
||||
../../wolfcrypt/src/cmac \
|
||||
../../wolfcrypt/src/random \
|
||||
../../wolfcrypt/src/coding \
|
||||
../../wolfcrypt/src/ripemd \
|
||||
../../wolfcrypt/src/compress \
|
||||
../../wolfcrypt/src/rsa \
|
||||
../../wolfcrypt/src/cpuid \
|
||||
../../wolfcrypt/src/selftest \
|
||||
../../wolfcrypt/src/cryptocb \
|
||||
../../wolfcrypt/src/sha256 \
|
||||
../../wolfcrypt/src/curve25519 \
|
||||
../../wolfcrypt/src/sha3 \
|
||||
../../wolfcrypt/src/des3 \
|
||||
../../wolfcrypt/src/sha512 \
|
||||
../../wolfcrypt/src/dh \
|
||||
../../wolfcrypt/src/sha \
|
||||
../../wolfcrypt/src/signature \
|
||||
../../wolfcrypt/src/ecc \
|
||||
../../wolfcrypt/src/ecc_fp \
|
||||
../../wolfcrypt/src/ed25519 \
|
||||
../../wolfcrypt/src/sp_armthumb \
|
||||
../../wolfcrypt/src/error \
|
||||
../../wolfcrypt/src/sp_int \
|
||||
../../wolfcrypt/src/fe_low_mem \
|
||||
../../wolfcrypt/src/sp_cortexm \
|
||||
../../wolfcrypt/src/fe_operations \
|
||||
../../wolfcrypt/src/fips \
|
||||
../../wolfcrypt/src/sp_x86_64 \
|
||||
../../wolfcrypt/src/fips_test \
|
||||
../../wolfcrypt/src/srp \
|
||||
../../wolfcrypt/src/ge_low_mem \
|
||||
../../wolfcrypt/src/ge_operations \
|
||||
../../wolfcrypt/src/wc_encrypt \
|
||||
../../wolfcrypt/src/hash \
|
||||
../../wolfcrypt/src/wc_pkcs11 \
|
||||
../../wolfcrypt/src/hc128 \
|
||||
../../wolfcrypt/src/wc_port \
|
||||
../../wolfcrypt/src/hmac \
|
||||
../../wolfcrypt/src/wolfcrypt_first \
|
||||
../../wolfcrypt/src/idea \
|
||||
../../wolfcrypt/src/wolfcrypt_last \
|
||||
../../wolfcrypt/src/wolfevent \
|
||||
../../wolfcrypt/src/logging \
|
||||
../../wolfcrypt/src/sp_c32 \
|
||||
../../wolfcrypt/src/sp_c64 \
|
||||
../../wolfcrypt/src/sp_arm32 \
|
||||
../../wolfcrypt/src/sp_arm64 \
|
||||
../../wolfcrypt/src/wolfmath
|
||||
|
||||
|
||||
# wolfSSL TLS source files
|
||||
libwolfssl_C_SRCS += \
|
||||
../../src/ocsp \
|
||||
../../src/tls \
|
||||
../../src/crl \
|
||||
../../src/sniffer \
|
||||
../../src/wolfio \
|
||||
../../src/internal \
|
||||
../../src/ssl \
|
||||
../../src/keys \
|
||||
../../src/tls13
|
||||
|
||||
# build benchmark app
|
||||
BUILD_EXES += benchmark
|
||||
benchmark_C_SRCS += ../../wolfcrypt/benchmark/benchmark
|
||||
benchmark_LD_FLAGS += -ldl
|
||||
benchmark_LD_FLAGS += -lpthread
|
||||
benchmark_DLLS += libwolfssl
|
||||
benchmark_LIBS += rpcmem
|
||||
benchmark_DLLS += $(LIB_DSPRPC)
|
||||
|
||||
# build test app
|
||||
BUILD_EXES += testwolfcrypt
|
||||
testwolfcrypt_C_SRCS += ../../wolfcrypt/test/test
|
||||
testwolfcrypt_DLLS += libwolfssl
|
||||
testwolfcrypt_LD_FLAGS += -ldl
|
||||
testwolfcrypt_LIBS += rpcmem
|
||||
testwolfcrypt_DLLS += $(LIB_DSPRPC)
|
||||
|
||||
# build ecc verify test app
|
||||
BUILD_EXES += eccverify
|
||||
eccverify_C_SRCS += ecc-verify
|
||||
eccverify_DLLS += libwolfssl
|
||||
eccverify_LD_FLAGS += -ldl
|
||||
eccverify_LIBS += rpcmem
|
||||
eccverify_DLLS += $(LIB_DSPRPC)
|
||||
|
||||
# build ecc verify test app
|
||||
BUILD_EXES += eccbenchmark
|
||||
eccbenchmark_C_SRCS += ecc-verify-benchmark
|
||||
eccbenchmark_DLLS += libwolfssl
|
||||
eccbenchmark_LD_FLAGS += -lpthread
|
||||
eccbenchmark_LD_FLAGS += -ldl
|
||||
eccbenchmark_LIBS += rpcmem
|
||||
eccbenchmark_DLLS += $(LIB_DSPRPC)
|
||||
|
||||
BUILD_COPIES = \
|
||||
$(DLLS) \
|
||||
$(EXES) \
|
||||
$(LIBS) \
|
||||
$(SHIP_DIR)/ ;
|
||||
|
||||
|
||||
include $(RULES_MIN)
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
# Building wolfSSL with DSP Use
|
||||
|
||||
## Intro
|
||||
This directory is to help with building wolfSSL for use with DSP. It assumes that the Hexagon SDK has been setup on the machine and that the environment variables have been set by calling (source ~/Qualcomm/Hexagon_SDK/3.4.3/setup_sdk_env.source). Currently offloading ECC 256 verify operations to the DSP is supported. When WOLFSSL_DSP is defined ECC verify operations are offloaded to the aDSP by default. When not in SINGLE_THREADED mode a call back function must be set for getting the handle or a handle must be set in the ecc_key structure for the operation to make use of multiple threads when offloading to the DSP. This is because creating new handles for new threads must be done.
|
||||
|
||||
|
||||
## Building
|
||||
The directory is divided up into a build for the CPU portion in IDE/HEXAGON and a build for use on the DSP located in IDE/HEXAGON/DSP. Each section has their own Makefile. The Makefile default to an Ubuntu + hexagon v65 release build but can be changed by using V=<build type>. An example of building both would be:
|
||||
|
||||
```
|
||||
cd IDE/HEXAGON
|
||||
make V=UbuntuARM_Release_aarch64
|
||||
cd DSP
|
||||
make V=hexagon_Release_dynamic_toolv83_v65
|
||||
```
|
||||
|
||||
The results from each build will be placed into the ship directories of each, for example ./UbuntuARM_Release_aarch64/ship/* and ./DSP/hexagon_Release_dynamic_toolv83_v65/ship/*.
|
||||
The Makefile creates a DSP library libwolfssl_dsp_skel.so, library libwolfssl.so, executable benchmark, example ecc-verify, example ecc-verify-benchmark and executable testwolfcrypt.
|
||||
These then need pushed to the device in order to run. An example of pushing the results to the device would be:
|
||||
|
||||
```
|
||||
cd IDE/HEXAGON
|
||||
adb push DSP/hexagon_Release_dynamic_toolv83_v65/ship/libwolfssl_dsp_skel.so /data/rfsa/adsp/
|
||||
adb push UbuntuARM_Release_aarch64/ship/libwolfssl.so /data/
|
||||
adb push UbuntuARM_Release_aarch64/ship/benchmark /data/
|
||||
adb push UbuntuARM_Release_aarch64/ship/eccverify /data/
|
||||
adb push UbuntuARM_Release_aarch64/ship/eccbenchmark /data/
|
||||
```
|
||||
|
||||
To change the settings wolfSSL is built with macros can be set in IDE/HEXAGON/user_settings.h. It contains a default setting at this point that was used for collecting benchmark values. The macro necessary to turn on use of the DSP is WOLFSSL_DSP.
|
||||
|
||||
|
||||
The script IDE/HEXAGON/build.sh was added to help speed up building and testing. An example of using the script would be:
|
||||
|
||||
```
|
||||
cd IDE/HEXAGON
|
||||
./build.sh Release
|
||||
```
|
||||
|
||||
This will delete the previous build and rebuild for Release mode. Then it will try to push the resulting library and some of the executables to the device.
|
||||
|
||||
|
||||
For increased performance uncomment the -O3 flag in IDE/HEXAGON/Makefile and IDE/HEXAGON/DSP/Makefile.
|
||||
|
||||
## Use
|
||||
|
||||
A default handle is created with the call to wolfCrypt_Init() and is set to use the aDSP. A default mutex is locked for each use of the handle to make the library stable when multiple threads are calling to DSP supported operations.
|
||||
To use wolfSSL with a user created handle it can be done by calling wc_ecc_set_handle or by setting a callback function using wolfSSL_SetHandleCb(). This should be set in the case of multithreaded applications to account for having a handle for each thread being used.
|
||||
|
||||
|
||||
#### wolfSSL_SetHandleCb
|
||||
The API wolfSSL_SetHandleCb takes a function pointer of type "int (*wolfSSL_DSP_Handle_cb)(remote_handle64 *handle, int finished void *ctx);". This callback is executed right before the operation is handed off to the DSP (finished set to 0) and right after done with the handle (finished set to 1). With ECC this would be after the ECC verify function has been called but before the information is passed on to the DSP and once again with the finished flag set after the result is returned.
|
||||
|
||||
The callback set should return 0 on successfully setting the input handle. The ctx argument is for future custom context to be passed in and is currently not used.
|
||||
|
||||
#### Expected Performance
|
||||
This is the expected results from running ./eccbenchmark using the -O3 flag
|
||||
|
||||
benchmarking using default (locks on handle for aDSP)
|
||||
5000 verifies on 1 threads took 17.481616 seconds
|
||||
10000 verifies on 2 threads took 35.324308 seconds
|
||||
|
||||
benchmarking using software (+NEON if built in)
|
||||
5000 verifies on 1 threads took 1.398336 seconds
|
||||
10000 verifies on 2 threads took 1.383992 seconds
|
||||
|
||||
benchmarking using threads on aDSP
|
||||
5000 verifies on 1 threads took 17.616811 seconds
|
||||
10000 verifies on 2 threads took 19.215413 seconds
|
||||
15000 verifies on 3 threads took 20.410200 seconds
|
||||
20000 verifies on 4 threads took 23.261446 seconds
|
||||
|
||||
benchmarking 1 thread on cDSP
|
||||
5000 verifies on 1 threads took 18.560995 seconds
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
#!/bin/bash
|
||||
if [ -z $1 ]; then
|
||||
echo "./build <Debug | Release>"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
printf "Erasing previous hexagon_$1_dynamic_toolv83_v65 and UbuntuARM_$1_aarch64\n"
|
||||
rm -rf hexagon_$1_dynamic_toolv83_v65 &> /dev/null
|
||||
rm -rf UbuntuARM_$1_aarch64 &> /dev/null
|
||||
cd ./DSP &> /dev/null
|
||||
rm -rf hexagon_$1_dynamic_toolv83_v65 &> /dev/null
|
||||
|
||||
printf "Building hexagon_$1_dynamic_toolv83_v65 ..."
|
||||
make V=hexagon_$1_dynamic_toolv83_v65 &> /dev/null
|
||||
if [ $? != 0 ]; then
|
||||
printf "failed\n"
|
||||
else
|
||||
printf "done\n"
|
||||
fi
|
||||
|
||||
cd ../ &> /dev/null
|
||||
printf "Building UbuntuARM_$1_aarch64 ..."
|
||||
make V=UbuntuARM_$1_aarch64 &> /dev/null
|
||||
if [ $? != 0 ]; then
|
||||
printf "failed\n"
|
||||
else
|
||||
printf "done\n"
|
||||
fi
|
||||
|
||||
printf "Trying to push libwolfssl_Dsp_skel.so, libwolfssl.so, benchmark, eccverify, eccbenchmark\n"
|
||||
adb push DSP/hexagon_$1_dynamic_toolv83_v65/ship/libwolfssl_dsp_skel.so /data/rfsa/adsp/
|
||||
adb push UbuntuARM_$1_aarch64/ship/libwolfssl.so /data/
|
||||
adb push UbuntuARM_$1_aarch64/ship/benchmark /data/
|
||||
adb push UbuntuARM_$1_aarch64/ship/eccverify /data/
|
||||
adb push UbuntuARM_$1_aarch64/ship/eccbenchmark /data/
|
||||
#adb push UbuntuARM_$1_aarch64/ship/testwolfcrypt /data/wolfcrypt/test/
|
||||
printf "done\n"
|
||||
exit 0
|
||||
@@ -1,185 +0,0 @@
|
||||
/* ecc-verify-benchmark.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 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 <wolfssl/wolfcrypt/settings.h>
|
||||
#include <wolfssl/wolfcrypt/sha256.h>
|
||||
#include <wolfssl/wolfcrypt/random.h>
|
||||
#include <wolfssl/wolfcrypt/ecc.h>
|
||||
#include <wolfssl/wolfcrypt/asn_public.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#define USE_CERT_BUFFERS_256
|
||||
#include <wolfssl/certs_test.h>
|
||||
|
||||
#define MAX_TIMES 5000
|
||||
#define MAX_BLOCK_SIZE 1024
|
||||
|
||||
#include <sys/time.h>
|
||||
|
||||
static double get_time()
|
||||
{
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv, 0);
|
||||
return (double)tv.tv_sec + (double)tv.tv_usec / 1000000;
|
||||
}
|
||||
|
||||
|
||||
/* software version */
|
||||
void* hash_firmware_verify(void* key)
|
||||
{
|
||||
int ret, i;
|
||||
int verify;
|
||||
const byte hash[] = {
|
||||
0XFB, 0XBA, 0XB2, 0X89, 0XF7, 0XF9, 0X4B, 0X25, 0X73, 0X6C, 0X58, 0XBE, 0X46, 0XA9, 0X94, 0XC4, 0X41, 0XFD, 0X02, 0X55, 0X2C, 0XC6, 0X02, 0X23, 0X52, 0XE3, 0XD8, 0X6D, 0X2F, 0XAB, 0X7C, 0X83
|
||||
};
|
||||
const byte sigBuf[] = {
|
||||
0X30, 0X44, 0X02, 0X20, 0X05, 0X38, 0XBC, 0X16, 0XC7, 0X67, 0X18, 0XEC, 0XE6, 0X1E, 0X43, 0X7B, 0X29, 0X8F, 0X85, 0X01, 0X33, 0XA8, 0X9B, 0XDD, 0X91, 0X32, 0X1F, 0XEC, 0XF7, 0X91, 0X18, 0X72, 0X9C, 0XE2, 0X6F, 0X31, 0X02, 0X20, 0X3E, 0X31, 0XD6, 0X40, 0XF7, 0X38, 0X3C, 0X1B, 0X6D, 0XAD, 0XE3, 0X93, 0X20, 0XE8, 0XB1, 0XBD, 0X3C, 0X59, 0XF2, 0XD2, 0X7C, 0X46, 0X1B, 0XE5, 0XE1, 0XE3, 0XAB, 0X5E, 0X76, 0X73, 0X6F, 0XFB
|
||||
};
|
||||
word32 sigLen = (word32)sizeof(sigBuf);
|
||||
word32 hashLen = (word32)sizeof(hash);
|
||||
|
||||
for (i = 0; i < MAX_TIMES; i++) {
|
||||
ret = wc_ecc_verify_hash((byte*)sigBuf, sigLen, hash, hashLen, &verify, (ecc_key*)key);
|
||||
if (ret < 0 || verify != 1) {
|
||||
printf("failed on try %d\n", i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (ret < 0 || verify != 1) {
|
||||
printf("unable to verify, ret = %d verify = %d\n", ret, verify);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/* when flag is set then try to use software only if DSP is built in */
|
||||
static int hash_firmware_verify_default(int numThreads)
|
||||
{
|
||||
int ret, i;
|
||||
word32 idx;
|
||||
double t;
|
||||
pthread_t threads[numThreads];
|
||||
ecc_key eccKey[numThreads];
|
||||
|
||||
for (i = 0; i < numThreads; i++) {
|
||||
wc_ecc_init(&(eccKey[i]));
|
||||
idx = 0;
|
||||
ret = wc_EccPrivateKeyDecode(ecc_clikey_der_256, &idx, &(eccKey[i]), sizeof_ecc_clikey_der_256);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
t = get_time();
|
||||
for (i = 0; i < numThreads; i++) {
|
||||
pthread_create(&threads[i], NULL, hash_firmware_verify, (void*)&(eccKey[i]));
|
||||
}
|
||||
|
||||
for (i = 0; i < numThreads; i++) {
|
||||
pthread_join(threads[i], NULL);
|
||||
}
|
||||
t = get_time() - t;
|
||||
printf("%d verifies on %d threads took %f seconds\n", MAX_TIMES * numThreads, numThreads, t);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef WOLFSSL_DSP
|
||||
/* domain 0 = cDSP 1 = aDSP */
|
||||
static int hash_firmware_verify_dsp(int numThreads, int domain)
|
||||
{
|
||||
int ret, i;
|
||||
word32 idx;
|
||||
double t;
|
||||
remote_handle64 handle[numThreads];
|
||||
char *sp_URI_value;
|
||||
pthread_t threads[numThreads];
|
||||
ecc_key eccKey[numThreads];
|
||||
|
||||
if (domain == 0) {
|
||||
sp_URI_value = wolfSSL_URI "&_dom=cdsp";
|
||||
}
|
||||
else {
|
||||
sp_URI_value = wolfSSL_URI "&_dom=adsp";
|
||||
}
|
||||
|
||||
for (i = 0; i < numThreads; i++) {
|
||||
wc_ecc_init(&(eccKey[i]));
|
||||
idx = 0;
|
||||
ret = wc_EccPrivateKeyDecode(ecc_clikey_der_256, &idx, &(eccKey[i]), sizeof_ecc_clikey_der_256);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = wolfSSL_open(sp_URI_value, &(handle[i]));
|
||||
if (ret != 0) {
|
||||
printf("unable to open CDSP? retVal = %d\n", ret);
|
||||
return -1;
|
||||
}
|
||||
wc_ecc_set_handle(&(eccKey[i]), handle[i]);
|
||||
}
|
||||
|
||||
t = get_time();
|
||||
for (i = 0; i < numThreads; i++) {
|
||||
pthread_create(&threads[i], NULL, hash_firmware_verify, (void*)&(eccKey[i]));
|
||||
}
|
||||
|
||||
for (i = 0; i < numThreads; i++) {
|
||||
pthread_join(threads[i], NULL);
|
||||
wolfSSL_close(handle[i]);
|
||||
}
|
||||
t = get_time() - t;
|
||||
printf("%d verifies on %d threads took %f seconds\n", MAX_TIMES * numThreads, numThreads, t);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* WOLFSSL_DSP */
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
wolfCrypt_Init();
|
||||
|
||||
printf("benchmarking using default (locks on handle for aDSP)\n");
|
||||
hash_firmware_verify_default(1);
|
||||
hash_firmware_verify_default(2);
|
||||
|
||||
printf("\nbenchmarking using software (+NEON if built in)\n");
|
||||
#ifdef WOLFSSL_DSP
|
||||
wolfSSL_SetHandleCb(NULL); /* remove calls to DSP by default */
|
||||
#endif
|
||||
hash_firmware_verify_default(1);
|
||||
hash_firmware_verify_default(2);
|
||||
|
||||
#ifdef WOLFSSL_DSP
|
||||
printf("\nbenchmarking using threads on aDSP\n");
|
||||
hash_firmware_verify_dsp(1, 1);
|
||||
hash_firmware_verify_dsp(2, 1);
|
||||
hash_firmware_verify_dsp(3, 1);
|
||||
hash_firmware_verify_dsp(4, 1);
|
||||
|
||||
printf("\nbenchmarking 1 thread on cDSP\n");
|
||||
hash_firmware_verify_dsp(1, 0);
|
||||
#endif /* WOLFSSL_DSP */
|
||||
wolfCrypt_Cleanup();
|
||||
return 0;
|
||||
}
|
||||
@@ -1,91 +0,0 @@
|
||||
/* ecc-verify.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 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 <wolfssl/wolfcrypt/settings.h>
|
||||
#include <wolfssl/wolfcrypt/sha256.h>
|
||||
#include <wolfssl/wolfcrypt/random.h>
|
||||
#include <wolfssl/wolfcrypt/ecc.h>
|
||||
#include <wolfssl/wolfcrypt/asn_public.h>
|
||||
|
||||
#define USE_CERT_BUFFERS_256
|
||||
#include <wolfssl/certs_test.h>
|
||||
|
||||
#define MAX_BLOCK_SIZE 1024
|
||||
|
||||
#ifdef WOLFSSL_DSP
|
||||
static char *sp_URI_value = wolfSSL_URI "&_dom=cdsp";
|
||||
|
||||
int hash_firmware_verify(const byte* hash, word32 hashLen, const byte* sigBuf, word32 sigLen)
|
||||
{
|
||||
int ret;
|
||||
ecc_key eccKey;
|
||||
word32 idx;
|
||||
int verify;
|
||||
remote_handle64 handle = -1;
|
||||
|
||||
idx = 0;
|
||||
ret = wc_EccPrivateKeyDecode(ecc_clikey_der_256, &idx, &eccKey, sizeof_ecc_clikey_der_256);
|
||||
if (ret < 0)
|
||||
goto exit;
|
||||
|
||||
int retVal = wolfSSL_open(sp_URI_value, &handle);
|
||||
if (retVal != 0) {
|
||||
printf("unable to open CDSP? retVal = %d\n", retVal);
|
||||
ret = -1;
|
||||
goto exit;
|
||||
}
|
||||
wc_ecc_set_handle(&eccKey, handle);
|
||||
|
||||
ret = wc_ecc_verify_hash((byte*)sigBuf, sigLen, hash, hashLen, &verify, &eccKey);
|
||||
printf("verify = %d\n", verify);
|
||||
if (ret < 0)
|
||||
goto exit;
|
||||
|
||||
wolfSSL_close(handle);
|
||||
exit:
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int ret;
|
||||
const byte hash[] = {
|
||||
0XFB, 0XBA, 0XB2, 0X89, 0XF7, 0XF9, 0X4B, 0X25, 0X73, 0X6C, 0X58, 0XBE, 0X46, 0XA9, 0X94, 0XC4, 0X41, 0XFD, 0X02, 0X55, 0X2C, 0XC6, 0X02, 0X23, 0X52, 0XE3, 0XD8, 0X6D, 0X2F, 0XAB, 0X7C, 0X83
|
||||
};
|
||||
const byte sigBuf[] = {
|
||||
0X30, 0X44, 0X02, 0X20, 0X05, 0X38, 0XBC, 0X16, 0XC7, 0X67, 0X18, 0XEC, 0XE6, 0X1E, 0X43, 0X7B, 0X29, 0X8F, 0X85, 0X01, 0X33, 0XA8, 0X9B, 0XDD, 0X91, 0X32, 0X1F, 0XEC, 0XF7, 0X91, 0X18, 0X72, 0X9C, 0XE2, 0X6F, 0X31, 0X02, 0X20, 0X3E, 0X31, 0XD6, 0X40, 0XF7, 0X38, 0X3C, 0X1B, 0X6D, 0XAD, 0XE3, 0X93, 0X20, 0XE8, 0XB1, 0XBD, 0X3C, 0X59, 0XF2, 0XD2, 0X7C, 0X46, 0X1B, 0XE5, 0XE1, 0XE3, 0XAB, 0X5E, 0X76, 0X73, 0X6F, 0XFB
|
||||
};
|
||||
word32 sigLen = (word32)sizeof(sigBuf);
|
||||
|
||||
wolfCrypt_Init();
|
||||
ret = hash_firmware_verify(hash, sizeof(hash), sigBuf, sigLen);
|
||||
printf("hash_firmware_verify: %d\n", ret);
|
||||
wolfCrypt_Cleanup();
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int main()
|
||||
{
|
||||
printf("WOLFSSL_DSP expected to be defined when building\n");
|
||||
return 0;
|
||||
}
|
||||
#endif /* WOLFSSL_DSP */
|
||||
@@ -1,14 +0,0 @@
|
||||
# vim:ft=automake
|
||||
# included from Top Level Makefile.am
|
||||
# All paths should be given relative to the root
|
||||
|
||||
EXTRA_DIST+= IDE/HEXAGON/Makefile
|
||||
EXTRA_DIST+= IDE/HEXAGON/user_settings.h
|
||||
EXTRA_DIST+= IDE/HEXAGON/README.md
|
||||
EXTRA_DIST+= IDE/HEXAGON/build.sh
|
||||
EXTRA_DIST+= IDE/HEXAGON/ecc-verify.c
|
||||
EXTRA_DIST+= IDE/HEXAGON/ecc-verify-benchmark.c
|
||||
|
||||
EXTRA_DIST+= IDE/HEXAGON/DSP/Makefile
|
||||
EXTRA_DIST+= IDE/HEXAGON/DSP/wolfssl_dsp.idl
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#ifndef USER_SETTINGS_H
|
||||
#define USER_SETTINGS_H
|
||||
|
||||
#define WOLFCRYPT_ONLY
|
||||
#define HAVE_ECC
|
||||
#define FP_ECC
|
||||
//#define FP_ENTRIES 1
|
||||
#define NO_DSA
|
||||
#define NO_DH
|
||||
#define NO_RSA
|
||||
//#define DEBUG_WOLFSSL
|
||||
|
||||
#define USE_FAST_MATH
|
||||
#define TFM_TIMING_RESISTANT
|
||||
#ifdef HAVE_ECC
|
||||
#define ECC_TIMING_RESISTANT
|
||||
#endif
|
||||
#ifndef NO_RSA
|
||||
#define WC_RSA_BLINDING
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
#define WOLFSSL_HAVE_SP_RSA
|
||||
#define WOLFSSL_HAVE_SP_ECC
|
||||
#define WOLFSSL_SP_MATH
|
||||
|
||||
#if 1
|
||||
/* ARM NEON instructions */
|
||||
#define WOLFSSL_SP_ARM64_ASM
|
||||
#endif
|
||||
#if 1
|
||||
/* Use DSP */
|
||||
#define WOLFSSL_DSP
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,6 +1,6 @@
|
||||
/* benchmark-main.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* current-time.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -44,7 +44,7 @@ void InitTimer(void) {
|
||||
SYSCTL_USE_PLL |
|
||||
SYSCTL_CFG_VCO_480), 120000000);
|
||||
|
||||
printf("Clock=%dMHz\n", (int)(ui32SysClock/1000000));
|
||||
printf("Clock=%dMHz\n", ui32SysClock/1000000) ;
|
||||
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
|
||||
ROM_TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);
|
||||
ROM_TimerLoadSet(TIMER0_BASE, TIMER_A, -1);
|
||||
@@ -64,10 +64,10 @@ double current_time(int reset)
|
||||
|
||||
/* dummy */
|
||||
double current_time(int reset) {
|
||||
static double t;
|
||||
t += 1.0; /* for avoid infinite loop of waiting time */
|
||||
static double t;
|
||||
t += 1.0; /* for avoid infinit loop of waiting time */
|
||||
if(reset)t = 0.0;
|
||||
return t ;
|
||||
}
|
||||
return t ;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
@@ -1,6 +1,6 @@
|
||||
/* minimum-startup.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -343,7 +343,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPosIndRopi</name>
|
||||
<state>1</state>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPosIndRwpi</name>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* test-main.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -34,11 +34,11 @@
|
||||
#undef ECC_USER_CURVES
|
||||
#define ECC_USER_CURVES
|
||||
|
||||
#undef ALT_ECC_SIZE
|
||||
#define ALT_ECC_SIZE
|
||||
#undef ECC_ALT_SIZE
|
||||
#define ECC_ALT_SIZE
|
||||
|
||||
#undef FP_MAX_BITS_ECC
|
||||
#define FP_MAX_BITS_ECC (256 * 2)
|
||||
#define FP_MAX_BITS_ECC 528
|
||||
|
||||
#undef TFM_TIMING_RESISTANT
|
||||
#define TFM_TIMING_RESISTANT
|
||||
|
||||
@@ -84,13 +84,11 @@
|
||||
#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
|
||||
|
||||
/* wolfSSL will compute the FP_MAX_BITS_ECC, but it can be overriden */
|
||||
/* MAX ECC BITS = ROUND8(MAX ECC) * 2 */
|
||||
//#undef FP_MAX_BITS_ECC
|
||||
//#define FP_MAX_BITS_ECC (528 * 2)
|
||||
#undef FP_MAX_BITS_ECC
|
||||
#define FP_MAX_BITS_ECC 528
|
||||
|
||||
/* Enable TFM optimizations for ECC */
|
||||
#define TFM_ECC192
|
||||
|
||||
@@ -6,7 +6,7 @@ embOS v4.16 (for Cortex-M and IAR compiler)
|
||||
wolfssl (latest version)
|
||||
|
||||
Required items (Hardware) for this guide:
|
||||
Atmel SAM V71 Xplained Ultra (Or equivalent Cortex-M Evaluation Board)
|
||||
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
|
||||
|
||||
@@ -6,7 +6,7 @@ embOS v4.16 (for Cortex-M and IAR compiler)
|
||||
wolfssl (latest version)
|
||||
|
||||
Required items (Hardware) for this guide:
|
||||
Atmel SAM V71 Xplained Ultra (Or equivalent Cortex-M Evaluation Board)
|
||||
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
|
||||
|
||||
@@ -6,7 +6,7 @@ embOS v4.16 (for Cortex-M and IAR compiler)
|
||||
wolfssl (latest version)
|
||||
|
||||
Required items (Hardware) for this guide:
|
||||
Atmel SAM V71 Xplained Ultra (Or equivalent Cortex-M Evaluation Board)
|
||||
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
|
||||
|
||||
@@ -109,7 +109,7 @@ We are now set to link to this library in the evaluation project
|
||||
#---------------------------------------------
|
||||
|
||||
5. Go to Project -> Options -> Linker -> Library (Tab)
|
||||
Add to the field "Additional libraries:"
|
||||
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
|
||||
|
||||
|
||||
@@ -31,11 +31,11 @@
|
||||
#undef ECC_USER_CURVES
|
||||
#define ECC_USER_CURVES
|
||||
|
||||
#undef ALT_ECC_SIZE
|
||||
#define ALT_ECC_SIZE
|
||||
#undef ECC_ALT_SIZE
|
||||
#define ECC_ALT_SIZE
|
||||
|
||||
#undef FP_MAX_BITS_ECC
|
||||
#define FP_MAX_BITS_ECC (256 * 2)
|
||||
#define FP_MAX_BITS_ECC 528
|
||||
|
||||
#undef TFM_TIMING_RESISTANT
|
||||
#define TFM_TIMING_RESISTANT
|
||||
|
||||
@@ -14,7 +14,7 @@ extern "C" {
|
||||
#define INTIME_RTOS
|
||||
|
||||
#undef WOLF_EXAMPLES_STACK
|
||||
#define WOLF_EXAMPLES_STACK (1<<17)
|
||||
#define WOLF_EXAMPLES_STACK 65536
|
||||
|
||||
#undef WOLFSSL_GENERAL_ALIGNMENT
|
||||
#define WOLFSSL_GENERAL_ALIGNMENT 4
|
||||
@@ -27,7 +27,7 @@ extern "C" {
|
||||
|
||||
/* disable directory support */
|
||||
#undef NO_WOLFSSL_DIR
|
||||
//#define NO_WOLFSSL_DIR
|
||||
#define NO_WOLFSSL_DIR
|
||||
|
||||
/* disable writev */
|
||||
#undef NO_WRITEV
|
||||
|
||||
@@ -55,7 +55,7 @@ int wolfExample_TLSClient(const char* ip, int port)
|
||||
int ret = 0;
|
||||
WOLFSSL_CTX* ctx = NULL;
|
||||
WOLFSSL* ssl = NULL; /* create WOLFSSL object */
|
||||
int sockFd; /* socket file descriptor */
|
||||
int sockFd = -1; /* socket file descriptor */
|
||||
struct sockaddr_in servAddr; /* struct for server address */
|
||||
char sendBuff[TLS_MAXDATASIZE], rcvBuff[TLS_MAXDATASIZE];
|
||||
|
||||
@@ -144,13 +144,13 @@ int wolfExample_TLSServer(int port)
|
||||
int ret = 0;
|
||||
WOLFSSL_CTX* ctx = NULL;
|
||||
WOLFSSL* ssl = NULL;
|
||||
int sockFd, clientFd = -1;
|
||||
int sockFd = -1, clientFd = -1;
|
||||
struct sockaddr_in serverAddr = {0}, clientAddr = {0};
|
||||
const char reply[] = "I hear ya fa shizzle!\n";
|
||||
int addrSize = sizeof(clientAddr);
|
||||
char buff[256];
|
||||
|
||||
sockFd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
sockFd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (sockFd < 0) {
|
||||
printf("Failed to create socket. Error: %d\n", errno);
|
||||
return errno;
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
</Link>
|
||||
<ClCompile>
|
||||
<ExceptionHandling>Async</ExceptionHandling>
|
||||
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;_USE_64BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -1,204 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1823534755">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1823534755" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1823534755" name="Debug" parent="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug">
|
||||
<folderInfo id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1823534755." name="/" resourcePath="">
|
||||
<toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.debug.1219033186" name="Cross ARM GCC" superClass="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.debug">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.1889985691" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.none" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.1934974013" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.1488765487" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.2137237709" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.189250506" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.318329197" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.max" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.379381336" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.1982231667" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name" value="GNU Tools for ARM Embedded Processors" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.982386377" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture" value="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.arm" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.357134062" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.cortex-m3" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.942886942" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.thumb" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.1985384014" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix" value="arm-none-eabi-" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.980821709" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c" value="gcc" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.741978820" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp" value="g++" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.644448038" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar" value="ar" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1568794824" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy" value="objcopy" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.1663916396" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump" value="objdump" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.644079467" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size" value="size" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.1653907508" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make" value="make" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.212411635" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm" value="rm" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.37217667" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.938806288" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize" value="true" valueType="boolean"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.2020299399" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/wolfssl-test}/Debug" id="ilg.gnuarmeclipse.managedbuild.cross.builder.1169013041" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1652818945" name="Cross ARM GNU Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1995204633" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.588237282" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1618862980" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.1348561577" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="../../../../wolfssl"/>
|
||||
<listOptionValue builtIn="false" value=".././config"/>
|
||||
</option>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.1370434476" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="WOLFSSL_USER_SETTINGS"/>
|
||||
</option>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1511494824" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.204098874" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1188857255" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.706026125" name="Cross ARM C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections.960189587" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.other.1923669300" name="Other linker flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.other" value="--specs=rdimon.specs -Wl,--start-group -lgcc -lc -lc -lm -lrdimon -Wl,--end-group" valueType="string"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.653534040" name="Cross ARM C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections.1864249736" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.other.1426398559" name="Other linker flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.other" value="--specs=rdimon.specs -Wl,--start-group -lgcc -lc -lc -lm -lrdimon -Wl,--end-group" valueType="string"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input.907833184" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.1802905650" name="Cross ARM GNU Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.1296666581" name="Cross ARM GNU Create Flash Image" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.913795604" name="Cross ARM GNU Create Listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.source.1264511626" name="Display source (--source|-S)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.source" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.allheaders.957974251" name="Display all headers (--all-headers|-x)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.allheaders" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.demangle.2098897888" name="Demangle names (--demangle|-C)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.demangle" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.linenumbers.511113554" name="Display line numbers (--line-numbers|-l)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.linenumbers" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide.3492907" name="Wide lines (--wide|-w)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.91497735" name="Cross ARM GNU Print Size" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format.898726007" name="Size format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.658684795">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.658684795" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.658684795" name="Release" parent="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release">
|
||||
<folderInfo id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.658684795." name="/" resourcePath="">
|
||||
<toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.release.813859650" name="Cross ARM GCC" superClass="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.release">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.794819747" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.size" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.1496674696" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.650429804" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.1570447896" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.838509098" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.662400626" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.1161227121" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.705055087" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name" value="GNU Tools for ARM Embedded Processors" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.506368524" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture" value="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.arm" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.612731672" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.cortex-m3" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.1833413616" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.thumb" valueType="enumerated"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.881134378" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix" value="arm-none-eabi-" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.2100237234" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c" value="gcc" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.1356336567" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp" value="g++" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.1525413618" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar" value="ar" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1604347618" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy" value="objcopy" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.1779877498" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump" value="objdump" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.911087419" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size" value="size" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.1710464795" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make" value="make" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.1501290946" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm" value="rm" valueType="string"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1999176868" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.1190543033" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize" value="true" valueType="boolean"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.30283807" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/wolfssl-test}/Release" id="ilg.gnuarmeclipse.managedbuild.cross.builder.394488448" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.441759325" name="Cross ARM GNU Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.594523961" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.250835699" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.377447475" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1965124250" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1682275351" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1092458319" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.1984331723" name="Cross ARM C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections.1569599516" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.other.933648471" name="Other linker flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.other" value="--specs=rdimon.specs -Wl,--start-group -lgcc -lc -lc -lm -lrdimon -Wl,--end-group" valueType="string"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.1950861502" name="Cross ARM C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections.2133729789" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.other.1119517305" name="Other linker flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.other" value="--specs=rdimon.specs -Wl,--start-group -lgcc -lc -lc -lm -lrdimon -Wl,--end-group" valueType="string"/>
|
||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input.27793787" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.513801227" name="Cross ARM GNU Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.1231377091" name="Cross ARM GNU Create Flash Image" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash"/>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.89637169" name="Cross ARM GNU Create Listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.source.2090652470" name="Display source (--source|-S)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.source" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.allheaders.1819919258" name="Display all headers (--all-headers|-x)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.allheaders" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.demangle.276097013" name="Demangle names (--demangle|-C)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.demangle" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.linenumbers.1578115309" name="Display line numbers (--line-numbers|-l)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.linenumbers" value="true" valueType="boolean"/>
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide.786035502" name="Wide lines (--wide|-w)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.createlisting.wide" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.397820407" name="Cross ARM GNU Print Size" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize">
|
||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format.226153595" name="Size format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.printsize.format"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="wolfssl-test.ilg.gnuarmeclipse.managedbuild.cross.target.elf.1253579278" name="Executable" projectType="ilg.gnuarmeclipse.managedbuild.cross.target.elf"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1613256277;ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1613256277.;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1198618439;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1181889101">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.658684795;ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.658684795.;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.377447475;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1965124250">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1823534755;ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1823534755.;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1618862980;ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1511494824">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1823534755;ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1823534755.;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.204098874;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1188857255">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.658684795;ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.658684795.;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1682275351;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1092458319">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1613256277;ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.1613256277.;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1931048491;ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.1225137803">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope"/>
|
||||
</cproject>
|
||||
394
IDE/KDS/.project
394
IDE/KDS/.project
@@ -1,394 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>wolfssl-test</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
<linkedResources>
|
||||
<link>
|
||||
<name>src/test.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/test/test.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/aes.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/aes.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/arc4.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/arc4.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/asm.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/asm.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/asn.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/asn.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/blake2b.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/blake2b.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/blake2s.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/blake2s.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/camellia.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/camellia.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/chacha.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/chacha.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/chacha20_poly1305.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/chacha20_poly1305.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/cmac.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/cmac.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/coding.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/coding.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/compress.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/compress.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/cpuid.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/cpuid.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/cryptocb.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/cryptocb.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/curve25519.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/curve25519.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/des3.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/des3.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/dh.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/dh.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/dsa.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/dsa.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/ecc.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/ecc.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/ecc_fp.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/ecc_fp.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/ed25519.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/ed25519.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/error.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/error.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/fe_low_mem.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/fe_low_mem.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/fe_operations.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/fe_operations.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/ge_low_mem.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/ge_low_mem.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/ge_operations.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/ge_operations.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/hash.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/hash.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/hc128.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/hc128.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/hmac.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/hmac.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/idea.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/idea.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/integer.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/integer.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/logging.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/logging.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/md2.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/md2.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/md4.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/md4.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/md5.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/md5.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/memory.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/memory.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/pkcs12.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/pkcs12.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/pkcs7.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/pkcs7.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/poly1305.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/poly1305.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/pwdbased.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/pwdbased.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/rabbit.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/rabbit.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/random.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/random.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/ripemd.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/ripemd.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/rsa.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/rsa.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sha.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sha.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sha256.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sha256.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sha3.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sha3.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sha512.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sha512.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/signature.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/signature.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sp_arm32.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sp_arm32.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sp_arm64.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sp_arm64.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sp_armthumb.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sp_armthumb.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sp_c32.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sp_c32.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sp_c64.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sp_c64.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sp_cortexm.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sp_cortexm.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sp_int.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sp_int.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/sp_x86_64.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/sp_x86_64.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/srp.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/srp.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/tfm.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/tfm.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/wc_encrypt.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/wc_encrypt.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/wc_pkcs11.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/wc_pkcs11.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/wc_port.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/wc_port.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/wolfevent.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/wolfevent.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfcrypt-src/wolfmath.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src/wolfmath.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfssl-src/crl.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/src/crl.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfssl-src/internal.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/src/internal.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfssl-src/keys.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/src/keys.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfssl-src/ocsp.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/src/ocsp.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfssl-src/ssl.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/src/ssl.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfssl-src/tls.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/src/tls.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfssl-src/tls13.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/src/tls13.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/wolfssl-src/wolfio.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-2-PROJECT_LOC/src/wolfio.c</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
</projectDescription>
|
||||
@@ -1,32 +0,0 @@
|
||||
/* #define NO_MAIN_DRIVER */
|
||||
#define BENCH_EMBEDDED
|
||||
#define NO_WRITEV
|
||||
#define WOLFSSL_USER_IO
|
||||
#define NO_DEV_RANDOM
|
||||
#define USE_CERT_BUFFERS_2048
|
||||
#define WOLFSSL_USER_CURRTIME
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
#define NO_WOLFSSL_DIR
|
||||
#define WOLFSSL_NO_CURRDIR
|
||||
#define NO_WOLF_C99
|
||||
#define NO_MULTIBYTE_PRINT
|
||||
|
||||
#define WOLFSSL_USER_CURRTIME /* for benchmark */
|
||||
|
||||
#define WOLFSSL_GENSEED_FORTEST /* Warning: define your own seed gen */
|
||||
|
||||
#define TFM_TIMING_RESISTANT
|
||||
#define ECC_TIMING_RESISTANT
|
||||
#define WC_RSA_BLINDING
|
||||
|
||||
#define SINGLE_THREADED /* or define RTOS option */
|
||||
/* #define WOLFSSL_CMSIS_RTOS */
|
||||
#define NO_FILESYSTEM
|
||||
|
||||
#define NO_DH
|
||||
#define HAVE_AESGCM
|
||||
#define WOLFSSL_SHA512
|
||||
#define HAVE_ECC
|
||||
#define HAVE_CURVE25519
|
||||
#define CURVE25519_SMALL
|
||||
#define HAVE_ED25519
|
||||
@@ -1,7 +0,0 @@
|
||||
# vim:ft=automake
|
||||
# included from Top Level Makefile.am
|
||||
# All paths should be given relative to the root
|
||||
|
||||
EXTRA_DIST+= IDE/KDS/.cproject
|
||||
EXTRA_DIST+= IDE/KDS/.project
|
||||
EXTRA_DIST+= IDE/KDS/config/user_settings.h
|
||||
@@ -1,14 +1,10 @@
|
||||
# Static Library: Building libwolfssl.sgx.static.lib.a for use with SGX Enclaves
|
||||
|
||||
### Requirements:
|
||||
This code was created to use Intel's SGX hardware. It is expected that the user has gone through the steps of both turning on the hardware in bios if needed and has installed the necessary software from Intel to make use of the hardware. (https://software.intel.com/en-us/sgx) If these steps have not been done then it is expected that the user is familiar with simulation software being used in place of hardware.
|
||||
|
||||
### Security:
|
||||
If not already in use, it is recommended that SP (single precision) RSA and ECC code is used. This will help mitigate potential side channel attacks. To use SP code check that wolfcrypt/src/sp_c32.c and wolfcrypt/src/sp_c64.c are compiled and add HAVE_WOLFSSL_SP=1 to the build command to define the necessary macros.
|
||||
This code was created to use Intel's SGX hardware. It is expected that the user has gone through the steps of both turning on the hardware in bios if needed and has installed the necesary software from Intel to make use of the hardware. (https://software.intel.com/en-us/sgx) If these steps have not been done then it is expected that the user is familure with simulation software being used in place of hardware.
|
||||
|
||||
### Overview and Build:
|
||||
This project creates a static library to then link with Enclaves. A simple example of an Enclave linking to the created wolfSSL library can be found in wolfssl-examples on github. This project has been tested with gcc 5.4.0 on Ubuntu 16.04.
|
||||
When building with tests the file wolfssl/options.h is expected, in downloaded bundles from wolfssl.com this file exists but when building from a cloned version of wolfSSL from GitHub then the file needs created. This is done either through cd wolfssl && ./autogen.sh && ./configure && ./config.status or by cd wolfssl && touch wolfssl/options.h.
|
||||
|
||||
To create the static library, simply call make:
|
||||
|
||||
@@ -24,10 +20,9 @@ This will create a local static library, libwolfssl.sgx.static.lib.a, that can b
|
||||
To enable wolfssl debug, add CFLAGS=-DDEBUG_WOLFSSL.
|
||||
To enable wolfssl benchmark tests with enclave, specify: HAVE_WOLFSSL_BENCHMARK at build
|
||||
To enable wolfcrypt testsuite with enclave, specify: HAVE_WOLFSSL_TEST at build
|
||||
To enable SP code, specify: HAVE_WOLFSSL_SP at build
|
||||
|
||||
For example:
|
||||
`make -f sgx_t_static.mk CFLAGS=-DDEBUG_WOLFSSL HAVE_WOLFSSL_BENCHMARK=1 HAVE_WOLFSSL_TEST=1 HAVE_WOLFSSL_SP=1`
|
||||
For example, to enable all three:
|
||||
`make -f sgx_t_static.mk CFLAGS=-DDEBUG_WOLFSSL HAVE_WOLFSSL_BENCHMARK=1 HAVE_WOLFSSL_TEST=1`
|
||||
|
||||
NOTE: This more customized step has been provided for easier execution in the
|
||||
script `build.sh`
|
||||
|
||||
@@ -5,5 +5,5 @@ CFLAGS_NEW="-DDEBUG_WOLFSSL"
|
||||
export CFLAGS="${CFLAGS} ${CFLAGS_NEW}"
|
||||
echo ${CFLAGS}
|
||||
|
||||
make -f sgx_t_static.mk HAVE_WOLFSSL_BENCHMARK=1 HAVE_WOLFSSL_TEST=1 HAVE_WOLFSSL_SP=1
|
||||
make -f sgx_t_static.mk HAVE_WOLFSSL_BENCHMARK=1 HAVE_WOLFSSL_TEST=1
|
||||
|
||||
|
||||
@@ -45,7 +45,6 @@ endif
|
||||
Crypto_Library_Name := sgx_tcrypto
|
||||
|
||||
Wolfssl_C_Extra_Flags := -DWOLFSSL_SGX
|
||||
|
||||
Wolfssl_C_Files :=$(WOLFSSL_ROOT)/wolfcrypt/src/aes.c\
|
||||
$(WOLFSSL_ROOT)/wolfcrypt/src/arc4.c\
|
||||
$(WOLFSSL_ROOT)/wolfcrypt/src/asn.c\
|
||||
@@ -87,8 +86,6 @@ Wolfssl_C_Files :=$(WOLFSSL_ROOT)/wolfcrypt/src/aes.c\
|
||||
$(WOLFSSL_ROOT)/wolfcrypt/src/sha256.c\
|
||||
$(WOLFSSL_ROOT)/wolfcrypt/src/sha512.c\
|
||||
$(WOLFSSL_ROOT)/wolfcrypt/src/signature.c\
|
||||
$(WOLFSSL_ROOT)/wolfcrypt/src/sp_c32.c\
|
||||
$(WOLFSSL_ROOT)/wolfcrypt/src/sp_c64.c\
|
||||
$(WOLFSSL_ROOT)/src/ssl.c\
|
||||
$(WOLFSSL_ROOT)/src/tls.c\
|
||||
$(WOLFSSL_ROOT)/wolfcrypt/src/wc_encrypt.c\
|
||||
@@ -108,11 +105,6 @@ ifeq ($(HAVE_WOLFSSL_BENCHMARK), 1)
|
||||
Wolfssl_Include_Paths += -I$(WOLFSSL_ROOT)/wolfcrypt/benchmark/
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_WOLFSSL_SP), 1)
|
||||
Wolfssl_C_Extra_Flags += -DWOLFSSL_HAVE_SP_RSA \
|
||||
-DWOLFSSL_HAVE_SP_DH \
|
||||
-DWOLFSSL_HAVE_SP_ECC
|
||||
endif
|
||||
|
||||
|
||||
Flags_Just_For_C := -Wno-implicit-function-declaration -std=c11
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* lpc_18xx_port.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -22,8 +22,7 @@
|
||||
|
||||
#define FP_LUT 4
|
||||
#define FP_MAX_BITS 2048 /* 4096 */
|
||||
#define ECC_USER_CURVES /* Disables P-112, P-128, P-160, P-192, P-224, P-384, P-521 but leaves P-256 enabled */
|
||||
#define FP_MAX_BITS_ECC (256 * 2)
|
||||
#define FP_MAX_BITS_ECC 512
|
||||
#define ALT_ECC_SIZE
|
||||
#define USE_FAST_MATH
|
||||
#define SMALL_SESSION_CACHE
|
||||
@@ -53,6 +52,7 @@
|
||||
#define NO_64BIT
|
||||
#define NO_WOLFSSL_SERVER
|
||||
#define NO_OLD_TLS
|
||||
#define ECC_USER_CURVES /* Disables P-112, P-128, P-160, P-192, P-224, P-384, P-521 but leaves P-256 enabled */
|
||||
#define NO_DES3
|
||||
#define NO_MD5
|
||||
#define NO_RC4
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* lpc_18xx_startup.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2019 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
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"
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
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 endianness */
|
||||
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 default 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.
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
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
|
||||
@@ -1,79 +0,0 @@
|
||||
/* main.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 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);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
# 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
|
||||
@@ -1,12 +0,0 @@
|
||||
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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user