Merge remote-tracking branch 'upstream/master' into zd19563_verify

This commit is contained in:
Kareem
2025-09-25 10:39:11 -07:00
142 changed files with 11149 additions and 3905 deletions
+325
View File
@@ -0,0 +1,325 @@
name: Arduino CI Build (1 of 4) wolfssl
#
# Test fetches wolfssl-examples/Arduino and uses local, latest github master branch wolfssl
#
# These 4 workflows across 3 repos are interdependent for the current $REPO_OWNER:
#
# THIS Arduino CI Build 1: https://github.com/$REPO_OWNER/wolfssl # /.github/workflows/arduino.yml
# - Builds Arduino library from local clone of wolfssl master branch
# - Fetches examples from https://github.com/$REPO_OWNER/wolfssl-examples
#
# Arduino CI Build 2: https://github.com/$REPO_OWNER/wolfssl-examples # /.github/workflows/arduino-release.yml
# - Tests examples based on latest published release of Arduino library, NOT latest on wolfssl github.
# - Should be identical to Arduino CI Build 3 in every way but wolfssl install.
# - Copies only compile script from wolfssl-examples
# - Builds local examples
# - No other repos used
#
# Arduino CI Build 3: https://github.com/$REPO_OWNER/wolfssl-examples # /.github/workflows/arduino.yml
# - Fetches current wolfSSL from https://github.com/$REPO_OWNER/wolfssl
# - Creates an updated Arduino library
# - Compiles local examples
# - Contains the source of `compile-all-examples.sh` and respective board-list.txt
#
# Arduino CI Build 4: https://github.com/$REPO_OWNER/Arduino-wolfssl # /.github/workflows/arduino.yml
# - Assembles and installs an updated Arduino wolfssl library from LOCAL wolfssl master source
# - Copies only compile script copied from wolfssl-examples
# - Builds local examples
# - No other repos used
#
#
# ** NOTE TO MAINTAINERS **
#
# Consider using winmerge or similar tool to keep the 4 arduino[-release].yml files in relative sync.
# Although there are some specific differences, most of the contents are otherwise identical.
#
# See https://github.com/wolfSSL/Arduino-wolfSSL
#
# To test locally:
# cd [your WOLFSSL_ROOT], e.g. cd /mnt/c/workspace/wolfssl-$USER
# [optional checkout] e.g. git checkout tags/v5.8.2-stable
# pushd ./IDE/ARDUINO
# export ARDUINO_ROOT="$HOME/Arduino/libraries"
# ./wolfssl-arduino.sh INSTALL
# cd [your WOLFSSL_EXAMPLES_ROOT] e.g. /mnt/c/workspace/wolfssl-examples-$USER
#
# START OF COMMON SECTION
on:
push:
branches: [ '**', 'master', 'main', 'release/**' ]
paths:
- '.github/workflows/arduino.yml'
- 'IDE/ARDUINO/**'
- 'src/**'
- 'wolfcrypt/**'
- 'wolfssl/**'
pull_request:
branches: [ '**' ]
paths:
- 'github/workflows/arduino.yml'
- 'IDE/ARDUINO/**'
- 'src/**'
- 'wolfcrypt/**'
- 'wolfssl/**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# END OF COMMON SECTION
jobs:
build:
if: github.repository_owner == 'wolfssl'
runs-on: ubuntu-latest
env:
REPO_OWNER: ${{ github.repository_owner }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install Arduino CLI
run: |
# Script to fetch and run install.sh from arduino/arduino-cli
# The install script will test to see if the recently installed apps in in the path
# So set it up in advance:
mkdir -p "${PWD}/bin"
echo "${PWD}/bin" >> $GITHUB_PATH
# Sets the install directory to a consistent path at the repo root.
ROOT_BIN="$GITHUB_WORKSPACE/bin"
# Ensures that BINDIR exists before the installer runs
mkdir -p "$ROOT_BIN"
# Save as a lobal environment variable
echo "$ROOT_BIN" >> "$GITHUB_PATH"
# Download and run install script from Arduino:
# -S show errors; -L follow redirects; -v Verbose
set +e # don't abort on error
set -o pipefail
curl -vSL --retry 5 --retry-delay 10 \
https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh \
| sh -x
rc=$?
c_rc=${PIPESTATUS[0]} # curl's exit code
s_rc=${PIPESTATUS[1]} # sh's exit code
set -e # restore default abort-on-error
# If there was a curl error, we have our own local copy that is more reliable and can add our own debugging
if [ "$rc" -ne 0 ]; then
echo "Primary install failed: curl=$c_rc, sh=$s_rc. Falling back..." >&2
echo "Using local copy of arduino_install.sh"
pushd ./Arduino/sketches
chmod +x ./arduino_install.sh
# Mimic curl install, does not use current directory:
BINDIR="$ROOT_BIN" sh -x ./arduino_install.sh
popd
else
echo "Alternative install script not needed."
fi
- name: Confirm Arduino CLI install
run: arduino-cli version
- name: Setup Arduino CLI
run: |
arduino-cli config init
arduino-cli core update-index
arduino-cli config add board_manager.additional_urls https://www.pjrc.com/teensy/package_teensy_index.json
arduino-cli core update-index
arduino-cli config add board_manager.additional_urls https://arduino.esp8266.com/stable/package_esp8266com_index.json
arduino-cli core update-index
arduino-cli core install esp32:esp32 # ESP32
arduino-cli core install arduino:avr # Arduino Uno, Mega, Nano
arduino-cli core install arduino:sam # Arduino Due
arduino-cli core install arduino:samd # Arduino Zero
arduino-cli core install teensy:avr # PJRC Teensy
arduino-cli core install esp8266:esp8266 # ESP8266
arduino-cli core install arduino:mbed_nano # nanorp2040connect
arduino-cli core install arduino:mbed_portenta # portenta_h7_m7
arduino-cli core install arduino:mbed_edge
# sudo "/home/$USER/.arduino15/packages/arduino/hardware/mbed_nano/4.2.4/post_install.sh"
arduino-cli core install arduino:renesas_uno
arduino-cli lib install "ArduinoJson" # Example dependency
arduino-cli lib install "WiFiNINA" # ARDUINO_SAMD_NANO_33_IOT
arduino-cli lib install "Ethernet" # Install Ethernet library
arduino-cli lib install "Bridge" # Pseudo-network for things like arduino:samd:tian
- name: Set job environment variables
run: |
# Script to assign some common environment variables after everything is installed
ICON_OK=$(printf "\xE2\x9C\x85")
ICON_FAIL=$(printf "\xE2\x9D\x8C")
echo "GITHUB_WORK=$(realpath "$GITHUB_WORKSPACE/../..")" >> "$GITHUB_ENV"
echo "ARDUINO_ROOT=$(realpath "$HOME/Arduino/libraries")" >> "$GITHUB_ENV"
# Show predefined summary:
echo "GITHUB_WORKSPACE = $GITHUB_WORKSPACE"
# Show assigned build:env values (e.g. "wolfssl", "gojimmpi" or other owners):
echo "REPO_OWNER = $REPO_OWNER"
echo "GITHUB_ENV=$GITHUB_ENV"
# Show our custom values:
echo "GITHUB_WORK = $GITHUB_WORK"
echo "ARDUINO_ROOT = $ARDUINO_ROOT"
# WOLFSSL_EXAMPLES_ROOT is the repo root, not example location
echo "WOLFSSL_EXAMPLES_ROOT = $WOLFSSL_EXAMPLES_ROOT"
- name: Get wolfssl-examples
run: |
# Fetch Arduino examples from the wolfssl-examples repo
echo "Start pwd:"
pwd
# we're typically in $GITHUB_WORKSPACE=/home/runner/work/wolfssl/wolfssl
# goto /home/runner/work to fetch wolfssl-examples
echo "Current pwd for wolfssl-examples clone fetch: $(pwd)"
GITHUB_WORK=$(realpath "$GITHUB_WORKSPACE/../..")
echo "GITHUB_WORKSPACE=$GITHUB_WORKSPACE"
# Typically /home/runner/work
echo "GITHUB_WORK=$GITHUB_WORK"
pushd "$GITHUB_WORK"
echo "Updated pwd for wolfssl-examples clone fetch: $(pwd)"
git clone --depth 1 https://github.com/$REPO_OWNER/wolfssl-examples.git wolfssl-examples-publish
cd ./wolfssl-examples-publish
echo "WOLFSSL_EXAMPLES_ROOT=$(pwd)"
echo "Path for wolfssl-examples-publish: $(pwd)"
popd # GITHUB_WORK
# ** END ** Get wolfssl-examples
- name: Install wolfSSL Arduino library
run: |
# Run the local wolfssl-arduino.sh install script to install wolfssl Arduino library.
# Methods of installing Arduino library:
# 1) arduino-cli lib install "wolfSSL"
# 2) manual copy of files (typical of the Arduino-wolfssl repo)
# 3) run ./wolfssl-arduino.sh INSTALL (typical of the wolfssl repo)
echo "Current pwd for wolfssl-examples clone fetch: $(pwd)"
GITHUB_WORK=$(realpath "$GITHUB_WORKSPACE/../..")
echo "GITHUB_WORKSPACE=$GITHUB_WORKSPACE"
# Typically /home/runner/work
echo "GITHUB_WORK=$GITHUB_WORK"
pwd
pushd ./IDE/ARDUINO
# Set default ARDUINO_ROOT to Arduino library.
export ARDUINO_ROOT="$HOME/Arduino/libraries"
export WOLFSSL_EXAMPLES_ROOT="$GITHUB_WORK/wolfssl-examples-publish"
echo "ARDUINO_ROOT: $WOLFSSL_EXAMPLES_ROOT"
echo "WOLFSSL_EXAMPLES_ROOT: $WOLFSSL_EXAMPLES_ROOT"
bash ./wolfssl-arduino.sh INSTALL # Install wolfSSL library
popd
# ** END ** Install wolfSSL Arduino library
- name: List installed Arduino libraries
run: arduino-cli lib list
- name: Get compile-all-examples.sh
run: |
# Fetch compile script FROM THE CURRENT OWNER.
# This repo is Arduino-wolfssl; we'll fetch the script from the wolfssl-examples for the same repository owner.
echo "Repository owner: $REPO_OWNER"
echo "Current directory: $PWD"
echo "Current pwd for wolfssl-examples clone fetch: $PWD"
WOLFSSL_EXAMPLES_DIRECTORY="$ARDUINO_ROOT/wolfssl/examples"
THIS_BOARD_LIST="board_list.txt"
echo "WOLFSSL_EXAMPLES_DIRECTORY=$WOLFSSL_EXAMPLES_DIRECTORY"
# Fetch script and board list into WOLFSSL_EXAMPLES_DIRECTORY
echo "Fetching board_list.txt from REPO_OWNER=$REPO_OWNER"
curl -L "https://raw.githubusercontent.com/$REPO_OWNER/wolfssl-examples/master/Arduino/sketches/board_list.txt" -o "$WOLFSSL_EXAMPLES_DIRECTORY/$THIS_BOARD_LIST"
# Check if the first line is "404: Not Found" - which would indicate the curl path above is bad.
FILE="$WOLFSSL_EXAMPLES_DIRECTORY/board_list.txt"
# Ensure the file exists
if [[ ! -f "$FILE" ]]; then
echo "File not found: $FILE"
exit 1
fi
# Check if the first line is "404: Not Found"
if [[ $(head -n 1 "$FILE") == "404: Not Found" ]]; then
echo "The first line is '404: Not Found'"
exit 1
fi
# Fetch the compile script from repo: https://github.com/[$USER]/wolfssl-examples/
echo "Fetching compile-all-examples.sh from REPO_OWNER=$REPO_OWNER"
curl -L "https://raw.githubusercontent.com/$REPO_OWNER/wolfssl-examples/master/Arduino/sketches/compile-all-examples.sh" -o "$WOLFSSL_EXAMPLES_DIRECTORY/compile-all-examples.sh"
# Check if the first line is "404: Not Found" - which would indicate the curl path above is bad.
FILE="$WOLFSSL_EXAMPLES_DIRECTORY/compile-all-examples.sh"
# Ensure the file exists
if [[ ! -f "$FILE" ]]; then
echo "File not found: $FILE"
exit 1
fi
# Check if the first line is "404: Not Found"
if [[ $(head -n 1 "$FILE") == "404: Not Found" ]]; then
echo "The first line is '404: Not Found'"
exit 1
fi
pushd "$WOLFSSL_EXAMPLES_DIRECTORY"
echo "Current directory: $PWD"
echo "Current directory $PWD"
echo "Contents:"
ls -al
find ./ -type f | sort
# ensure we can execute the script here (permissions lost during curl fetch)
chmod +x ./compile-all-examples.sh
echo "Found compile script: $(ls -al ./compile-all-examples.sh ./$THIS_BOARD_LIST)"
popd
# ** END ** Get compile-all-examples.sh
# This will fail with Arduino published wolfSSL v5.7.6 and older
# as the examples moved. See https://github.com/wolfSSL/wolfssl/pull/8514
#
- name: Compile Arduino Sketches for Various Boards
run: |
# Call the compile-all-examples.sh script to compile all the examples for each of the fqbn names in the local copy of board_list.txt
echo "Current directory: $PWD"
echo "ARDUINO_ROOT: $ARDUINO_ROOT"
WOLFSSL_EXAMPLES_DIRECTORY="$ARDUINO_ROOT/wolfssl/examples"
echo "WOLFSSL_EXAMPLES_DIRECTORY: $WOLFSSL_EXAMPLES_DIRECTORY"
echo "Change directory to Arduino examples..."
pushd "$WOLFSSL_EXAMPLES_DIRECTORY"
echo "Current directory: $PWD"
echo "Calling ./compile-all-examples.sh"
bash ./compile-all-examples.sh
popd
# End Compile Arduino Sketches for Various Boards
+1
View File
@@ -79,6 +79,7 @@ jobs:
lookup-only: true
- name: Checkout hostap
if: steps.cache.outputs.cache-hit != 'true'
run: git clone git://w1.fi/hostap.git hostap
build_uml_linux:
@@ -14,8 +14,7 @@ concurrency:
jobs:
make_check:
strategy:
fail-fast: false
if: github.repository_owner == 'wolfssl'
runs-on: macos-latest
# This should be a safe limit for the tests to run.
timeout-minutes: 5
+1
View File
@@ -59,6 +59,7 @@ jobs:
'--enable-lms=small,verify-only --enable-xmss=small,verify-only',
'--disable-sys-ca-certs',
'--enable-all CPPFLAGS=-DWOLFSSL_DEBUG_CERTS ',
'--enable-all CFLAGS="-DWOLFSSL_CHECK_MEM_ZERO"',
]
name: make check
if: github.repository_owner == 'wolfssl'
+2 -2
View File
@@ -45,8 +45,8 @@ jobs:
- name: Confirm packages built
run: |
DEB_COUNT=$(find -name 'libwolfssl*.deb' | wc -l)
if [ "$DEB_COUNT" != "2" ]; then
echo Did not find exactly two deb packages!!!
if [ "$DEB_COUNT" != "3" ]; then
echo Did not find exactly three deb packages!!!
exit 1
fi
# disabled 20240919 -- broken target.
+33
View File
@@ -0,0 +1,33 @@
name: Build Rust Wrapper
# START OF COMMON SECTION
on:
push:
branches: [ 'master', 'main', 'release/**' ]
pull_request:
branches: [ '*' ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# END OF COMMON SECTION
jobs:
build_wolfssl:
name: Build wolfSSL Rust Wrapper
if: github.repository_owner == 'wolfssl'
runs-on: ubuntu-24.04
# This should be a safe limit for the tests to run.
timeout-minutes: 10
steps:
- name: Build wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
with:
path: wolfssl
configure: --enable-all
- name: Build Rust Wrapper
working-directory: wolfssl
run: make -C wrapper/rust
- name: Run Rust Wrapper Tests
working-directory: wolfssl
run: make -C wrapper/rust test
+3
View File
@@ -62,6 +62,9 @@ jobs:
uses: open-watcom/setup-watcom@v0
with:
version: ${{ matrix.platform.owimage }}
tag: 2025-09-01-Build
# Currently fixed to this build because of latest compiler error:
# file clbrdll.lib(fltuse80): undefined symbol _SetLD80bit_
- name: Checkout wolfSSL
uses: actions/checkout@v4
+5 -1
View File
@@ -33,7 +33,7 @@ aclocal.m4
aminclude.am
lt*.m4
Makefile.in
Makefile
/Makefile
depcomp
missing
libtool
@@ -449,6 +449,7 @@ MagicCrypto
# debian packaging
debian/changelog
debian/control
debian/rules
*.deb
# Ada/Alire files
@@ -457,6 +458,9 @@ wrapper/Ada/config/
wrapper/Ada/lib/
wrapper/Ada/obj/
# Rust wrapper files
/wrapper/rust/*/target/
# PlatformIO
/**/.pio
/**/.vscode/.browse.c_cpp.db*
+18 -2
View File
@@ -2,6 +2,7 @@ AES_GCM_GMULT_NCT
AFX_RESOURCE_DLL
AFX_TARG_ENU
ALLOW_BINARY_MISMATCH_INTROSPECTION
ALLOW_SELFSIGNED_INVALID_CERTSIGN
ALLOW_V1_EXTENSIONS
ANDROID
APP_ESP_HTTP_CLIENT
@@ -16,9 +17,14 @@ ARDUINO_ARCH_NRF52
ARDUINO_ARCH_RP2040
ARDUINO_ARCH_SAMD
ARDUINO_ARCH_STM32
ARDUINO_AVR_ETHERNET
ARDUINO_AVR_LEONARDO_ETH
ARDUINO_SAMD_MKR1000
ARDUINO_SAMD_NANO_33_IOT
ARDUINO_SAMD_ZERO
ARDUINO_SAM_DUE
ARDUINO_SEEED_XIAO
ARDUINO_TEENSY40
ARDUINO_TEENSY41
ASN_DUMP_OID
ASN_TEMPLATE_SKIP_ISCA_CHECK
@@ -206,17 +212,20 @@ ENABLE_SECURE_SOCKETS_LOGS
ESP32
ESP8266
ESP_ENABLE_WOLFSSH
ESP_IDF_VERSION
ESP_IDF_VERSION_MAJOR
ESP_IDF_VERSION_MINOR
ESP_PLATFORM
ESP_TASK_MAIN_STACK
ETHERNET_AVAILABLE
ETHERNET_H
EV_TRIGGER
EXTERNAL_LOADER_APP
FORCE_FAILURE_GETRANDOM
FP_ECC_CONTROL
FREERTOS_TCP_WINSIM
FREESCALE
FREESCALE_MQX
FREESCALE_RNGB
FREESCALE_USE_MMCAU_CLASSIC
FSL_FEATURE_HAS_L1CACHE
@@ -559,6 +568,7 @@ USE_SECRET_CALLBACK
USE_STSAFE_RNG_SEED
USE_STSAFE_VERBOSE
USE_TLSV13
USE_WINDOWS_API
USE_WOLF_STRNSTR
USS_API
WC_AESXTS_STREAM_NO_REQUEST_ACCOUNTING
@@ -604,11 +614,15 @@ WC_RSA_NO_FERMAT_CHECK
WC_SHA384
WC_SHA384_DIGEST_SIZE
WC_SHA512
WC_SKIP_INCLUDED_C_FILES
WC_SSIZE_TYPE
WC_STRICT_SIG
WC_WANT_FLAG_DONT_USE_AESNI
WC_XMSS_FULL_HASH
WIFIESPAT
WIFI_101
WIFI_AVAILABLE
WIFI_NINA
WIN_REUSE_CRYPT_HANDLE
WOLFCRYPT_FIPS_CORE_DYNAMIC_HASH_VALUE
WOLFSENTRY_H
@@ -660,7 +674,6 @@ WOLFSSL_CAAM_BLACK_KEY_SM
WOLFSSL_CAAM_NO_BLACK_KEY
WOLFSSL_CALLBACKS
WOLFSSL_CHECK_DESKEY
WOLFSSL_CHECK_MEM_ZERO
WOLFSSL_CHIBIOS
WOLFSSL_CLANG_TIDY
WOLFSSL_CLIENT_EXAMPLE
@@ -756,7 +769,6 @@ WOLFSSL_MULTICIRCULATE_ALTNAMELIST
WOLFSSL_NONBLOCK_OCSP
WOLFSSL_NOSHA3_384
WOLFSSL_NOT_WINDOWS_API
WOLFSSL_NO_ATOMIC
WOLFSSL_NO_BIO_ADDR_IN
WOLFSSL_NO_CLIENT
WOLFSSL_NO_CLIENT_CERT_ERROR
@@ -952,6 +964,7 @@ __ARM_ARCH_7M__
__ARM_FEATURE_CRYPTO
__ASSEMBLER__
__ATOMIC_RELAXED
__AVR_ARCH__
__AVR__
__BCPLUSPLUS__
__BIG_ENDIAN__
@@ -984,6 +997,7 @@ __LINUX__
__LP64
__LP64__
__MACH__
__MEGAAVR__
__MICROBLAZE__
__MINGW32__
__MINGW64_VERSION_MAJOR
@@ -1006,6 +1020,8 @@ __SAM3X4C__
__SAM3X4E__
__SAM3X8C__
__SAM3X8E__
__SAMD21__
__SAMD51__
__SANITIZE_ADDRESS__
__SDCC_VERSION_MAJOR
__SDCC_VERSION_MINOR
+1
View File
@@ -2689,6 +2689,7 @@ if(WOLFSSL_EXAMPLES)
tests/api/test_ossl_ec.c
tests/api/test_ossl_ecx.c
tests/api/test_ossl_dsa.c
tests/api/test_tls13.c
tests/srp.c
tests/suites.c
tests/w64wrapper.c
+4 -4
View File
@@ -9,7 +9,7 @@ NOTE: * wolfSSL is now GPLv3 instead of GPLv2
* MD5 is now disabled by default
PR stands for Pull Request, and PR <NUMBER> references a GitHub pull request number where the code change was added.
PR stands for Pull Request, and PR (NUMBER) references a GitHub pull request number where the code change was added.
## Vulnerabilities
@@ -208,7 +208,7 @@ https://www.wolfssl.com/about/wolfssl-software-development-process-quality-assur
NOTE: * --enable-heapmath is deprecated
PR stands for Pull Request, and PR <NUMBER> references a GitHub pull request
PR stands for Pull Request, and PR (NUMBER) references a GitHub pull request
number where the code change was added.
@@ -424,7 +424,7 @@ NOTE:
user_settings.h.
PR stands for Pull Request, and PR <NUMBER> references a GitHub pull request
PR stands for Pull Request, and PR (NUMBER) references a GitHub pull request
number where the code change was added.
@@ -544,7 +544,7 @@ https://www.wolfssl.com/about/wolfssl-software-development-process-quality-assur
NOTE: * --enable-heapmath is being deprecated and will be removed by end of 2024
PR stands for Pull Request, and PR <NUMBER> references a GitHub pull request
PR stands for Pull Request, and PR (NUMBER) references a GitHub pull request
number where the code change was added.
+1 -2
View File
@@ -2,5 +2,4 @@ FROM debian:latest
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get install -y build-essential autoconf gawk debhelper lintian
RUN apt-get install -y build-essential autoconf gawk debhelper lintian dpkg-dev
+8 -8
View File
@@ -1,18 +1,18 @@
# wolfSSL with Arduino
See the [example sketches](./sketches/README.md):
NOTE: Moving; See https://github.com/wolfSSL/wolfssl-examples/pull/499
See the [example sketches](https://github.com/wolfSSL/wolfssl-examples/tree/master/Arduino):
Bare-bones templates:
- [sketches/wolfssl_version](./sketches/wolfssl_version/README.md) single file.
- [sketches/template](./sketches/template/README.md) multiple file example.
- [sketches/wolfssl_version](https://github.com/wolfSSL/wolfssl-examples/tree/master/Arduino/sketches/wolfssl_version/README.md) single file.
- [sketches/template](https://github.com/wolfSSL/wolfssl-examples/tree/master/Arduino/sketches/template/README.md) multiple file example.
Functional examples:
- [sketches/wolfssl_AES_CTR](./sketches/wolfssl_AES_CTR/README.md) AES CTR Encrypt / decrypt.
- [sketches/wolfssl_client](./sketches/wolfssl_client/README.md) TLS Client.
- [sketches/wolfssl_server](./sketches/wolfssl_server/README.md) TLS Server.
- [sketches/wolfssl_AES_CTR](https://github.com/wolfSSL/wolfssl-examples/tree/master/Arduino/sketches/wolfssl_AES_CTR/README.md) AES CTR Encrypt / decrypt.
- [sketches/wolfssl_client](https://github.com/wolfSSL/wolfssl-examples/tree/master/Arduino/sketches/wolfssl_client/README.md) TLS Client.
- [sketches/wolfssl_server](https://github.com/wolfSSL/wolfssl-examples/tree/master/Arduino/sketches/wolfssl_server/README.md) TLS Server.
- [sketches/wolfssl_client_dtls](https://github.com/wolfSSL/wolfssl-examples/tree/master/Arduino/sketches/wolfssl_client_dtls/README.md) DTLS Client.
- [sketches/wolfssl_server_dtls](https://github.com/wolfSSL/wolfssl-examples/tree/master/Arduino/sketches/wolfssl_server_dtls/README.md) DTLS Server.
Both the `template` and `wolfssl_AES_CTR` examples include VisualGDB project files.
+58 -26
View File
@@ -26,6 +26,9 @@
# The Arduino library include file is "wolfssl.h" (all lower case)
# The Published wolfSSL Arduino Registry is at https://github.com/wolfSSL/Arduino-wolfSSL.git
# See https://downloads.arduino.cc/libraries/logs/github.com/wolfSSL/Arduino-wolfSSL/
#
echo "wolfssl-arduino.sh v5.8.2 rev B"
ROOT_DIR="/wolfssl"
# The Arduino Version will initially have a suffix appended during fine tuning stage.
@@ -70,18 +73,24 @@ if [ "$ROOT_DIR" = "" ]; then
exit 1
fi
if [ "$ARDUINO_ROOT" = "" ]; then
echo "No ARDUINO_ROOT export... detecting..."
ARDUINO_ROOT="$HOME/Arduino/libraries"
ARDUINO_ROOT="$HOME/Arduino/libraries"
# Check environment
if [ -n "$WSL_DISTRO_NAME" ]; then
# we found a non-blank WSL environment distro name
current_path="$(pwd)"
pattern="/mnt/?"
if echo "$current_path" | grep -Eq "^$pattern"; then
# if we are in WSL and shared Windows file system, 'ln' does not work.
ARDUINO_ROOT="/mnt/c/Users/$USER/Documents/Arduino/libraries"
# Check environment
if [ -n "$WSL_DISTRO_NAME" ]; then
# we found a non-blank WSL environment distro name
echo "Found WSL: $WSL_DISTRO_NAME"
current_path="$(pwd)"
pattern="/mnt/?"
if echo "$current_path" | grep -Eq "^$pattern"; then
# if we are in WSL and shared Windows file system, 'ln' does not work.
ARDUINO_ROOT="/mnt/c/Users/$USER/Documents/Arduino/libraries"
echo "ARDUINO_ROOT set to $ARDUINO_ROOT"
fi
fi
else
echo "Using export ARDUINO_ROOT"
fi
echo "The Arduino library root is: $ARDUINO_ROOT"
@@ -173,7 +182,7 @@ THIS_DIR=${PWD##*/}
if [ "$THIS_DIR" = "ARDUINO" ]; then
# mkdir ./wolfssl
if [ -d ".${ROOT_DIR}" ]; then
echo "ERROR: $(realpath ".${ROOT_DIR}") is not empty"
echo "ERROR: $(realpath ".${ROOT_DIR}") is not empty; failed prior install? Please remove."
exit 1
else
echo "Step 01: mkdir .${ROOT_DIR}"
@@ -267,6 +276,7 @@ if [ "$THIS_DIR" = "ARDUINO" ]; then
echo "Destination EXAMPLES_DIR=.${EXAMPLES_DIR}"
echo "EXAMPLES_DIR_REAL_PATH=${EXAMPLES_DIR_REAL_PATH}"
# Only explicit source code is copied to the Arduino library. Edit with caution, no automation:
if [ -n "$WOLFSSL_EXAMPLES_ROOT" ]; then
echo "Copy template example...."
mkdir -p ".${EXAMPLES_DIR}"/template/wolfssl_library/src
@@ -279,23 +289,33 @@ if [ "$THIS_DIR" = "ARDUINO" ]; then
echo "Copy wolfssl_AES_CTR example...."
mkdir -p ".${EXAMPLES_DIR}"/wolfssl_AES_CTR
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_AES_CTR/wolfssl_AES_CTR.ino ".${EXAMPLES_DIR}"/wolfssl_AES_CTR/wolfssl_AES_CTR.ino || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_AES_CTR/README.md ".${EXAMPLES_DIR}"/wolfssl_AES_CTR/README.md || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_AES_CTR/wolfssl_AES_CTR.ino ".${EXAMPLES_DIR}"/wolfssl_AES_CTR/wolfssl_AES_CTR.ino || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_AES_CTR/README.md ".${EXAMPLES_DIR}"/wolfssl_AES_CTR/README.md || exit 1
echo "Copy wolfssl_client example...."
mkdir -p ".${EXAMPLES_DIR}"/wolfssl_client
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_client/wolfssl_client.ino ".${EXAMPLES_DIR}"/wolfssl_client/wolfssl_client.ino || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_client/README.md ".${EXAMPLES_DIR}"/wolfssl_client/README.md || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_client/wolfssl_client.ino ".${EXAMPLES_DIR}"/wolfssl_client/wolfssl_client.ino || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_client/README.md ".${EXAMPLES_DIR}"/wolfssl_client/README.md || exit 1
echo "Copy wolfssl_client_dtls example...."
mkdir -p ".${EXAMPLES_DIR}"/wolfssl_client_dtls
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_client_dtls/wolfssl_client_dtls.ino ".${EXAMPLES_DIR}"/wolfssl_client_dtls/wolfssl_client_dtls.ino || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_client_dtls/README.md ".${EXAMPLES_DIR}"/wolfssl_client_dtls/README.md || exit 1
echo "Copy wolfssl_server example...."
mkdir -p .${EXAMPLES_DIR}/wolfssl_server
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_server/wolfssl_server.ino ".${EXAMPLES_DIR}"/wolfssl_server/wolfssl_server.ino || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_server/README.md ".${EXAMPLES_DIR}"/wolfssl_server/README.md || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_server/wolfssl_server.ino ".${EXAMPLES_DIR}"/wolfssl_server/wolfssl_server.ino || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_server/README.md ".${EXAMPLES_DIR}"/wolfssl_server/README.md || exit 1
echo "Copy wolfssl_server_dtls example...."
mkdir -p .${EXAMPLES_DIR}/wolfssl_server_dtls
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_server_dtls/wolfssl_server_dtls.ino ".${EXAMPLES_DIR}"/wolfssl_server_dtls/wolfssl_server_dtls.ino || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_server_dtls/README.md ".${EXAMPLES_DIR}"/wolfssl_server_dtls/README.md || exit 1
echo "Copy wolfssl_version example...."
mkdir -p .${EXAMPLES_DIR}/wolfssl_version
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_version/wolfssl_version.ino ".${EXAMPLES_DIR}"/wolfssl_version/wolfssl_version.ino || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_version/README.md ".${EXAMPLES_DIR}"/wolfssl_version/README.md || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_version/wolfssl_version.ino ".${EXAMPLES_DIR}"/wolfssl_version/wolfssl_version.ino || exit 1
$CP_CMD "$WOLFSSL_EXAMPLES_ROOT"/Arduino/sketches/wolfssl_version/README.md ".${EXAMPLES_DIR}"/wolfssl_version/README.md || exit 1
else
NO_ARDUINO_EXAMPLES=1
fi
@@ -364,27 +384,39 @@ if [ "$THIS_OPERATION" = "INSTALL" ]; then
# Nearly an ordinary copy, but we remove any lines with ">>" (typically edit with caution warning in comments)
grep -v '>>' ../../examples/configs/user_settings_arduino.h > ".${ROOT_SRC_DIR}"/user_settings.h || exit 1
# Show the user_settings.h revision string:
echo "This user_settings.h revision string:"
grep "WOLFSSL_USER_SETTINGS_ID" ."${ROOT_SRC_DIR}/user_settings.h"
echo ""
if [ "$THIS_INSTALL_IS_GITHUB" = "true" ]; then
echo "Installing to GitHub directory: $THIS_INSTALL_DIR"
cp -r ."$ROOT_DIR"/* "$THIS_INSTALL_DIR" || exit 1
cp -r ."$ROOT_DIR"/* "$THIS_INSTALL_DIR" || exit 1
echo "Removing workspace library directory: .$ROOT_DIR"
rm -rf ".$ROOT_DIR"
rm -rf ".$ROOT_DIR" || exit 1
else
echo "Installing to local directory:"
if [ "$THIS_INSTALL_DIR" = "" ]; then
echo "mv .$ROOT_DIR $ARDUINO_ROOT"
mv ."$ROOT_DIR" "$ARDUINO_ROOT" || exit 1
if [ -n "$WSL_DISTRO_NAME" ]; then
# setfattr not installed by default
# echo "Set system.wsl_case_sensitive .$ROOT_DIR"
# setfattr -x system.wsl_case_sensitive .$ROOT_DIR
#
# use copy instead of move to avoid possible system.wsl_case_sensitive warnings
echo "cp -r .\"$ROOT_DIR\" \"$ARDUINO_ROOT\""
cp -r ."$ROOT_DIR" "$ARDUINO_ROOT" || exit 1
echo "rm -rf .\"$ROOT_DIR\""
rm -rf ."$ROOT_DIR" || exit 1
else
echo "mv .$ROOT_DIR $ARDUINO_ROOT"
mv ."$ROOT_DIR" "$ARDUINO_ROOT" || exit 1
fi
echo "Arduino wolfSSL Version: $WOLFSSL_VERSION$WOLFSSL_VERSION_ARUINO_SUFFIX"
else
echo "cp -r .\"$ROOT_DIR\"/* \"$THIS_INSTALL_DIR\""
mkdir -p "$THIS_INSTALL_DIR" || exit 1
cp -r ."$ROOT_DIR"/* "$THIS_INSTALL_DIR" || exit 1
mkdir -p "$THIS_INSTALL_DIR" || exit 1
cp -r ."$ROOT_DIR"/* "$THIS_INSTALL_DIR" || exit 1
fi
fi
fi
@@ -7,6 +7,19 @@ message(STATUS "Begin project ${CMAKE_PROJECT_NAME}")
cmake_minimum_required(VERSION 3.16)
# For the main project using ESP-IDF version 6 or greater.
# Numerous "dangerous relocation: call8: call target out of range: memcpy" errors encountered
# So we'll allow long calls with the `-mlongcalls` compiler option for all components.
if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
message(STATUS "Adding mlongcalls")
add_compile_options(-mlongcalls)
add_link_options(-mlongcalls)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mlongcalls")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mlongcalls")
endif()
endif()
# Optional no watchdog typically used for test & benchmark
if (idf_target STREQUAL "esp8266" OR IDF_TARGET STREQUAL "esp8266" OR IDF_VERSION_MAJOR VERSION_LESS "5.0")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_ESP_NO_WATCHDOG=1")
@@ -144,5 +157,15 @@ endif()
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
# Once the project is loaded, next check for ESP-IDF version 6 or greater.
# Numerous "dangerous relocation: call8: call target out of range: memcpy" errors encountered
# So we'll allow long calls with the `-mlongcalls` compiler option for all components.
if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
message(STATUS "mlongcalls for all components")
idf_build_set_property(COMPILE_OPTIONS "-mlongcalls" APPEND)
endif()
endif()
project(wolfssl_template)
message(STATUS "end project")
@@ -30,7 +30,7 @@
/* This user_settings.h is for Espressif ESP-IDF
*
* Standardized wolfSSL Espressif ESP32 + ESP8266 user_settings.h V5.7.0-1
* Standardized wolfSSL Espressif ESP32 + ESP8266 user_settings.h V5.8.2-1 certs
*
* Do not include any wolfssl headers here.
*
@@ -257,11 +257,6 @@
#define WOLFSSL_AES_DIRECT
#endif
/* Pick a cert buffer size: */
/* #define USE_CERT_BUFFERS_2048 */
/* #define USE_CERT_BUFFERS_1024 */
#define USE_CERT_BUFFERS_2048
/* The Espressif sdkconfig will have chipset info.
**
** Some possible values:
@@ -377,10 +372,6 @@
/* #define DEBUG_WOLFSSL */
#define DEBUG_WOLFSSL_MALLOC
/* See test.c that sets cert buffers; we'll set them here: */
#define USE_CERT_BUFFERS_256
#define USE_CERT_BUFFERS_2048
/* RSA_LOW_MEM: Half as much memory but twice as slow. */
#define RSA_LOW_MEM
@@ -678,9 +669,6 @@
#undef HAVE_AESGCM
#define HAVE_AESGCM
#else
/* default settings */
#define USE_CERT_BUFFERS_2048
#endif
/* Chipset detection from sdkconfig.h
@@ -1058,10 +1046,9 @@ Turn on timer debugging (used when CPU cycles not available)
#error "USE_CERT_BUFFERS_1024 is already defined. Pick one."
#endif
/* Be sure to include in app when using example certs: */
#include <wolfssl/certs_test.h>
/* Be sure to include in app, not here, when using example certs: */
/* #include <wolfssl/certs_test.h> */
#define USE_CERT_BUFFERS_256
#define CTX_CA_CERT ca_cert_der_2048
#define CTX_CA_CERT_SIZE sizeof_ca_cert_der_2048
#define CTX_CA_CERT_TYPE WOLFSSL_FILETYPE_ASN1
@@ -1085,10 +1072,9 @@ Turn on timer debugging (used when CPU cycles not available)
#error "USE_CERT_BUFFERS_2048 is already defined. Pick one."
#endif
/* Be sure to include in app when using example certs: */
#include <wolfssl/certs_test.h>
/* Be sure to include in app, not here, when using example certs: */
/* #include <wolfssl/certs_test.h> */
#define USE_CERT_BUFFERS_256
#define CTX_CA_CERT ca_cert_der_1024
#define CTX_CA_CERT_SIZE sizeof_ca_cert_der_1024
#define CTX_CA_CERT_TYPE WOLFSSL_FILETYPE_ASN1
@@ -1108,7 +1094,6 @@ Turn on timer debugging (used when CPU cycles not available)
#define CTX_SERVER_KEY_TYPE WOLFSSL_FILETYPE_ASN1
#else
/* Optionally define custom cert arrays, sizes, and types here */
#error "Must define USE_CERT_BUFFERS_2048 or USE_CERT_BUFFERS_1024"
#endif
#endif /* Conditional key and cert constant names */
@@ -7,6 +7,19 @@ message(STATUS "Begin project ${CMAKE_PROJECT_NAME}")
cmake_minimum_required(VERSION 3.16)
# For the main project using ESP-IDF version 6 or greater.
# Numerous "dangerous relocation: call8: call target out of range: memcpy" errors encountered
# So we'll allow long calls with the `-mlongcalls` compiler option for all components.
if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
message(STATUS "Adding mlongcalls")
add_compile_options(-mlongcalls)
add_link_options(-mlongcalls)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mlongcalls")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mlongcalls")
endif()
endif()
# Optional no watchdog typically used for test & benchmark
if (idf_target STREQUAL "esp8266" OR IDF_TARGET STREQUAL "esp8266" OR IDF_VERSION_MAJOR VERSION_LESS "5.0")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_ESP_NO_WATCHDOG=1")
@@ -144,5 +157,15 @@ endif()
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
# Once the project is loaded, next check for ESP-IDF version 6 or greater.
# Numerous "dangerous relocation: call8: call target out of range: memcpy" errors encountered
# So we'll allow long calls with the `-mlongcalls` compiler option for all components.
if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
message(STATUS "mlongcalls for all components")
idf_build_set_property(COMPILE_OPTIONS "-mlongcalls" APPEND)
endif()
endif()
project(wolfssl_benchmark)
message(STATUS "end project")
@@ -30,7 +30,7 @@
/* This user_settings.h is for Espressif ESP-IDF
*
* Standardized wolfSSL Espressif ESP32 + ESP8266 user_settings.h V5.7.0-1
* Standardized wolfSSL Espressif ESP32 + ESP8266 user_settings.h V5.8.2-1 certs
*
* Do not include any wolfssl headers here.
*
@@ -257,11 +257,6 @@
#define WOLFSSL_AES_DIRECT
#endif
/* Pick a cert buffer size: */
/* #define USE_CERT_BUFFERS_2048 */
/* #define USE_CERT_BUFFERS_1024 */
#define USE_CERT_BUFFERS_2048
/* The Espressif sdkconfig will have chipset info.
**
** Some possible values:
@@ -377,10 +372,6 @@
/* #define DEBUG_WOLFSSL */
#define DEBUG_WOLFSSL_MALLOC
/* See test.c that sets cert buffers; we'll set them here: */
#define USE_CERT_BUFFERS_256
#define USE_CERT_BUFFERS_2048
/* RSA_LOW_MEM: Half as much memory but twice as slow. */
#define RSA_LOW_MEM
@@ -678,9 +669,6 @@
#undef HAVE_AESGCM
#define HAVE_AESGCM
#else
/* default settings */
#define USE_CERT_BUFFERS_2048
#endif
/* Chipset detection from sdkconfig.h
@@ -1058,10 +1046,9 @@ Turn on timer debugging (used when CPU cycles not available)
#error "USE_CERT_BUFFERS_1024 is already defined. Pick one."
#endif
/* Be sure to include in app when using example certs: */
#include <wolfssl/certs_test.h>
/* Be sure to include in app, not here, when using example certs: */
/* #include <wolfssl/certs_test.h> */
#define USE_CERT_BUFFERS_256
#define CTX_CA_CERT ca_cert_der_2048
#define CTX_CA_CERT_SIZE sizeof_ca_cert_der_2048
#define CTX_CA_CERT_TYPE WOLFSSL_FILETYPE_ASN1
@@ -1085,10 +1072,9 @@ Turn on timer debugging (used when CPU cycles not available)
#error "USE_CERT_BUFFERS_2048 is already defined. Pick one."
#endif
/* Be sure to include in app when using example certs: */
#include <wolfssl/certs_test.h>
/* Be sure to include in app, not here, when using example certs: */
/* #include <wolfssl/certs_test.h> */
#define USE_CERT_BUFFERS_256
#define CTX_CA_CERT ca_cert_der_1024
#define CTX_CA_CERT_SIZE sizeof_ca_cert_der_1024
#define CTX_CA_CERT_TYPE WOLFSSL_FILETYPE_ASN1
@@ -1108,7 +1094,6 @@ Turn on timer debugging (used when CPU cycles not available)
#define CTX_SERVER_KEY_TYPE WOLFSSL_FILETYPE_ASN1
#else
/* Optionally define custom cert arrays, sizes, and types here */
#error "Must define USE_CERT_BUFFERS_2048 or USE_CERT_BUFFERS_1024"
#endif
#endif /* Conditional key and cert constant names */
@@ -7,6 +7,19 @@ message(STATUS "Begin project ${CMAKE_PROJECT_NAME}")
cmake_minimum_required(VERSION 3.16)
# For the main project using ESP-IDF version 6 or greater.
# Numerous "dangerous relocation: call8: call target out of range: memcpy" errors encountered
# So we'll allow long calls with the `-mlongcalls` compiler option for all components.
if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
message(STATUS "Adding mlongcalls")
add_compile_options(-mlongcalls)
add_link_options(-mlongcalls)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mlongcalls")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mlongcalls")
endif()
endif()
# Optional no watchdog typically used for test & benchmark
if (idf_target STREQUAL "esp8266" OR IDF_TARGET STREQUAL "esp8266" OR IDF_VERSION_MAJOR VERSION_LESS "5.0")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_ESP_NO_WATCHDOG=1")
@@ -144,5 +157,15 @@ endif()
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
# Once the project is loaded, next check for ESP-IDF version 6 or greater.
# Numerous "dangerous relocation: call8: call target out of range: memcpy" errors encountered
# So we'll allow long calls with the `-mlongcalls` compiler option for all components.
if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
message(STATUS "mlongcalls for all components")
idf_build_set_property(COMPILE_OPTIONS "-mlongcalls" APPEND)
endif()
endif()
project(wolfssl_client)
message(STATUS "end project")
@@ -30,7 +30,7 @@
/* This user_settings.h is for Espressif ESP-IDF
*
* Standardized wolfSSL Espressif ESP32 + ESP8266 user_settings.h V5.7.0-1
* Standardized wolfSSL Espressif ESP32 + ESP8266 user_settings.h V5.8.2-1 certs
*
* Do not include any wolfssl headers here.
*
@@ -257,11 +257,6 @@
#define WOLFSSL_AES_DIRECT
#endif
/* Pick a cert buffer size: */
/* #define USE_CERT_BUFFERS_2048 */
/* #define USE_CERT_BUFFERS_1024 */
#define USE_CERT_BUFFERS_2048
/* The Espressif sdkconfig will have chipset info.
**
** Some possible values:
@@ -377,10 +372,6 @@
/* #define DEBUG_WOLFSSL */
#define DEBUG_WOLFSSL_MALLOC
/* See test.c that sets cert buffers; we'll set them here: */
#define USE_CERT_BUFFERS_256
#define USE_CERT_BUFFERS_2048
/* RSA_LOW_MEM: Half as much memory but twice as slow. */
#define RSA_LOW_MEM
@@ -678,9 +669,6 @@
#undef HAVE_AESGCM
#define HAVE_AESGCM
#else
/* default settings */
#define USE_CERT_BUFFERS_2048
#endif
/* Chipset detection from sdkconfig.h
@@ -1058,10 +1046,9 @@ Turn on timer debugging (used when CPU cycles not available)
#error "USE_CERT_BUFFERS_1024 is already defined. Pick one."
#endif
/* Be sure to include in app when using example certs: */
#include <wolfssl/certs_test.h>
/* Be sure to include in app, not here, when using example certs: */
/* #include <wolfssl/certs_test.h> */
#define USE_CERT_BUFFERS_256
#define CTX_CA_CERT ca_cert_der_2048
#define CTX_CA_CERT_SIZE sizeof_ca_cert_der_2048
#define CTX_CA_CERT_TYPE WOLFSSL_FILETYPE_ASN1
@@ -1085,10 +1072,9 @@ Turn on timer debugging (used when CPU cycles not available)
#error "USE_CERT_BUFFERS_2048 is already defined. Pick one."
#endif
/* Be sure to include in app when using example certs: */
#include <wolfssl/certs_test.h>
/* Be sure to include in app, not here, when using example certs: */
/* #include <wolfssl/certs_test.h> */
#define USE_CERT_BUFFERS_256
#define CTX_CA_CERT ca_cert_der_1024
#define CTX_CA_CERT_SIZE sizeof_ca_cert_der_1024
#define CTX_CA_CERT_TYPE WOLFSSL_FILETYPE_ASN1
@@ -1108,7 +1094,6 @@ Turn on timer debugging (used when CPU cycles not available)
#define CTX_SERVER_KEY_TYPE WOLFSSL_FILETYPE_ASN1
#else
/* Optionally define custom cert arrays, sizes, and types here */
#error "Must define USE_CERT_BUFFERS_2048 or USE_CERT_BUFFERS_1024"
#endif
#endif /* Conditional key and cert constant names */
@@ -21,8 +21,23 @@
#ifndef _CLIENT_TLS_H_
#define _CLIENT_TLS_H_
/* Local project, auto-generated configuration */
#include "sdkconfig.h"
/* This example uses wolfssl test certificates */
#if 1
/* See wolfssl/certs_test.h */
#if defined(CONFIG_IDF_TARGET_ESP32C2) || \
defined(CONFIG_IDF_TARGET_ESP8684) || \
defined(CONFIG_IDF_TARGET_ESP8266)
/* Use smaller certs for low-memory devices */
#define USE_CERT_BUFFERS_1024
#else
#define USE_CERT_BUFFERS_2048
#endif
/* always include smallest testing 32 byte RSA/ECC keys */
#define USE_CERT_BUFFERS_256
#else
/* define your own certificate macros; see user_settings.h */
#endif
#include <wolfssl/wolfcrypt/settings.h>
#include <wolfssl/ssl.h>
@@ -7,6 +7,19 @@ message(STATUS "Begin project ${CMAKE_PROJECT_NAME}")
cmake_minimum_required(VERSION 3.16)
# For the main project using ESP-IDF version 6 or greater.
# Numerous "dangerous relocation: call8: call target out of range: memcpy" errors encountered
# So we'll allow long calls with the `-mlongcalls` compiler option for all components.
if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
message(STATUS "Adding mlongcalls")
add_compile_options(-mlongcalls)
add_link_options(-mlongcalls)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mlongcalls")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mlongcalls")
endif()
endif()
# Optional no watchdog typically used for test & benchmark
if (idf_target STREQUAL "esp8266" OR IDF_TARGET STREQUAL "esp8266" OR IDF_VERSION_MAJOR VERSION_LESS "5.0")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_ESP_NO_WATCHDOG=1")
@@ -144,5 +157,15 @@ endif()
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
# Once the project is loaded, next check for ESP-IDF version 6 or greater.
# Numerous "dangerous relocation: call8: call target out of range: memcpy" errors encountered
# So we'll allow long calls with the `-mlongcalls` compiler option for all components.
if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
message(STATUS "mlongcalls for all components")
idf_build_set_property(COMPILE_OPTIONS "-mlongcalls" APPEND)
endif()
endif()
project(wolfssl_server)
message(STATUS "end project")
@@ -30,7 +30,7 @@
/* This user_settings.h is for Espressif ESP-IDF
*
* Standardized wolfSSL Espressif ESP32 + ESP8266 user_settings.h V5.7.0-1
* Standardized wolfSSL Espressif ESP32 + ESP8266 user_settings.h V5.8.2-1 certs
*
* Do not include any wolfssl headers here.
*
@@ -257,11 +257,6 @@
#define WOLFSSL_AES_DIRECT
#endif
/* Pick a cert buffer size: */
/* #define USE_CERT_BUFFERS_2048 */
/* #define USE_CERT_BUFFERS_1024 */
#define USE_CERT_BUFFERS_2048
/* The Espressif sdkconfig will have chipset info.
**
** Some possible values:
@@ -377,10 +372,6 @@
/* #define DEBUG_WOLFSSL */
#define DEBUG_WOLFSSL_MALLOC
/* See test.c that sets cert buffers; we'll set them here: */
#define USE_CERT_BUFFERS_256
#define USE_CERT_BUFFERS_2048
/* RSA_LOW_MEM: Half as much memory but twice as slow. */
#define RSA_LOW_MEM
@@ -678,9 +669,6 @@
#undef HAVE_AESGCM
#define HAVE_AESGCM
#else
/* default settings */
#define USE_CERT_BUFFERS_2048
#endif
/* Chipset detection from sdkconfig.h
@@ -1058,10 +1046,9 @@ Turn on timer debugging (used when CPU cycles not available)
#error "USE_CERT_BUFFERS_1024 is already defined. Pick one."
#endif
/* Be sure to include in app when using example certs: */
#include <wolfssl/certs_test.h>
/* Be sure to include in app, not here, when using example certs: */
/* #include <wolfssl/certs_test.h> */
#define USE_CERT_BUFFERS_256
#define CTX_CA_CERT ca_cert_der_2048
#define CTX_CA_CERT_SIZE sizeof_ca_cert_der_2048
#define CTX_CA_CERT_TYPE WOLFSSL_FILETYPE_ASN1
@@ -1085,10 +1072,9 @@ Turn on timer debugging (used when CPU cycles not available)
#error "USE_CERT_BUFFERS_2048 is already defined. Pick one."
#endif
/* Be sure to include in app when using example certs: */
#include <wolfssl/certs_test.h>
/* Be sure to include in app, not here, when using example certs: */
/* #include <wolfssl/certs_test.h> */
#define USE_CERT_BUFFERS_256
#define CTX_CA_CERT ca_cert_der_1024
#define CTX_CA_CERT_SIZE sizeof_ca_cert_der_1024
#define CTX_CA_CERT_TYPE WOLFSSL_FILETYPE_ASN1
@@ -1108,7 +1094,6 @@ Turn on timer debugging (used when CPU cycles not available)
#define CTX_SERVER_KEY_TYPE WOLFSSL_FILETYPE_ASN1
#else
/* Optionally define custom cert arrays, sizes, and types here */
#error "Must define USE_CERT_BUFFERS_2048 or USE_CERT_BUFFERS_1024"
#endif
#endif /* Conditional key and cert constant names */
@@ -21,6 +21,24 @@
#ifndef _SERVER_TLS_
#define _SERVER_TLS_
/* This example uses wolfssl test certificates */
#if 1
/* See wolfssl/certs_test.h */
#if defined(CONFIG_IDF_TARGET_ESP32C2) || \
defined(CONFIG_IDF_TARGET_ESP8684) || \
defined(CONFIG_IDF_TARGET_ESP8266)
/* Use smaller certs for low-memory devices */
#define USE_CERT_BUFFERS_1024
#else
#define USE_CERT_BUFFERS_2048
#endif
/* always include smallest testing 32 byte RSA/ECC keys */
#define USE_CERT_BUFFERS_256
#else
/* define your own certificate macros; see user_settings.h */
#endif
#include <wolfssl/wolfcrypt/settings.h> /* includes wolfSSL user-settings.h */
#include <wolfssl/ssl.h>
#include "sdkconfig.h"
@@ -7,6 +7,19 @@ message(STATUS "Begin project ${CMAKE_PROJECT_NAME}")
cmake_minimum_required(VERSION 3.16)
# For the main project using ESP-IDF version 6 or greater.
# Numerous "dangerous relocation: call8: call target out of range: memcpy" errors encountered
# So we'll allow long calls with the `-mlongcalls` compiler option for all components.
if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
message(STATUS "Adding mlongcalls")
add_compile_options(-mlongcalls)
add_link_options(-mlongcalls)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mlongcalls")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mlongcalls")
endif()
endif()
# Optional no watchdog typically used for test & benchmark
if (idf_target STREQUAL "esp8266" OR IDF_TARGET STREQUAL "esp8266" OR IDF_VERSION_MAJOR VERSION_LESS "5.0")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_ESP_NO_WATCHDOG=1")
@@ -144,5 +157,15 @@ endif()
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
# Once the project is loaded, next check for ESP-IDF version 6 or greater.
# Numerous "dangerous relocation: call8: call target out of range: memcpy" errors encountered
# So we'll allow long calls with the `-mlongcalls` compiler option for all components.
if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
message(STATUS "mlongcalls for all components")
idf_build_set_property(COMPILE_OPTIONS "-mlongcalls" APPEND)
endif()
endif()
project(wolfssl_test)
message(STATUS "end project")
@@ -30,7 +30,7 @@
/* This user_settings.h is for Espressif ESP-IDF
*
* Standardized wolfSSL Espressif ESP32 + ESP8266 user_settings.h V5.7.0-1
* Standardized wolfSSL Espressif ESP32 + ESP8266 user_settings.h V5.8.2-1 certs
*
* Do not include any wolfssl headers here.
*
@@ -257,11 +257,6 @@
#define WOLFSSL_AES_DIRECT
#endif
/* Pick a cert buffer size: */
/* #define USE_CERT_BUFFERS_2048 */
/* #define USE_CERT_BUFFERS_1024 */
#define USE_CERT_BUFFERS_2048
/* The Espressif sdkconfig will have chipset info.
**
** Some possible values:
@@ -377,10 +372,6 @@
/* #define DEBUG_WOLFSSL */
#define DEBUG_WOLFSSL_MALLOC
/* See test.c that sets cert buffers; we'll set them here: */
#define USE_CERT_BUFFERS_256
#define USE_CERT_BUFFERS_2048
/* RSA_LOW_MEM: Half as much memory but twice as slow. */
#define RSA_LOW_MEM
@@ -678,9 +669,6 @@
#undef HAVE_AESGCM
#define HAVE_AESGCM
#else
/* default settings */
#define USE_CERT_BUFFERS_2048
#endif
/* Chipset detection from sdkconfig.h
@@ -1058,10 +1046,9 @@ Turn on timer debugging (used when CPU cycles not available)
#error "USE_CERT_BUFFERS_1024 is already defined. Pick one."
#endif
/* Be sure to include in app when using example certs: */
#include <wolfssl/certs_test.h>
/* Be sure to include in app, not here, when using example certs: */
/* #include <wolfssl/certs_test.h> */
#define USE_CERT_BUFFERS_256
#define CTX_CA_CERT ca_cert_der_2048
#define CTX_CA_CERT_SIZE sizeof_ca_cert_der_2048
#define CTX_CA_CERT_TYPE WOLFSSL_FILETYPE_ASN1
@@ -1085,10 +1072,9 @@ Turn on timer debugging (used when CPU cycles not available)
#error "USE_CERT_BUFFERS_2048 is already defined. Pick one."
#endif
/* Be sure to include in app when using example certs: */
#include <wolfssl/certs_test.h>
/* Be sure to include in app, not here, when using example certs: */
/* #include <wolfssl/certs_test.h> */
#define USE_CERT_BUFFERS_256
#define CTX_CA_CERT ca_cert_der_1024
#define CTX_CA_CERT_SIZE sizeof_ca_cert_der_1024
#define CTX_CA_CERT_TYPE WOLFSSL_FILETYPE_ASN1
@@ -1108,7 +1094,6 @@ Turn on timer debugging (used when CPU cycles not available)
#define CTX_SERVER_KEY_TYPE WOLFSSL_FILETYPE_ASN1
#else
/* Optionally define custom cert arrays, sizes, and types here */
#error "Must define USE_CERT_BUFFERS_2048 or USE_CERT_BUFFERS_1024"
#endif
#endif /* Conditional key and cert constant names */
+516
View File
@@ -0,0 +1,516 @@
# Makefile for the INtime wolfSSL library component
#
SWENGENV := $(RMX_SRC_BASE)/tools/swenghg
#
# makefile -- defines the macros, directives and rules necessary to build the
# wolfSSL library.
#
# NOTES:
# 1. This makefile is a "wrapper" makefile for the Visual Studio 80
# INtime package project. The makefile provides RCS and component
# release support not provided by the project's native visual Studio
# makefile.
#
# 2. The SWENG environment assumes makefile execution from a Windows NT
# environment.
#
# 3. The SWENG environment assumes that a user has Microsoft Network
# access to the ESO server directories.
#
# 4. A SWENG makefile makes no assumptions concerning a user's command
# path. All command pathnames are explicit. Furthermore, the
# directory component of a pathname is defined by a macro that can be
# overridden at makefile invocation.
#
# The same cannot be said for MS Developer Studio makefiles -- they
# assume MSVC and Windows NT commands are in the user's path.
#
# 5. A SWENG makefile makes no assumptions concerning a user's environment
# variable definitions.
#
# The same cannot be said for MS Developer Studio makefiles -- they
# assume various environment variables are set properly to build their
# components.
#
# 6. A SWENG makefile executes standard MKS and MSVC tools. Other tool
# sets require additional macro and rule definition.
#
# Default macros and directives.
#
# NOTES:
# 1. These files must always be included before all component-specific
# macros and directives.
.INCLUDE:$(SWENGENV)/macros.wnt
.INCLUDE:$(SWENGENV)/intimemacros.wnt
# Component and version number macros:
#
# COMPONENT: The name of the product component built by this makefile.
# DUE TO THE IDIOSYNCRATIC NATURE OF RCS, THIS MACRO MUST NOT
# CONTAIN ANY SPECIAL CHARACTERS, INCLUDING " " AND "."! For
# example, the macro for the Real-Time Application Loader
# could be defined as:
#
# COMPONENT := Real_Time_Application_Loader
#
# In the SWENG environment, a PRODUCT is the complete software
# package sent to a customer (e.g., INtime V1.00). A PRODUCT
# is composed of one or more COMPONENTs (e.g., Real-Time
# Application Loader, NTX Library, etc.)
#
# When choosing names for new components, ensure that they
# are unique.
#
# VERSION: The version number associated with the component(s) built
# by this makefile. DUE TO THE IDIOSYNCRATIC NATURE OF RCS,
# THIS MACRO MUST NOT CONTAIN ANY SPECIAL CHARACTERS,
# INCLUDING " " AND "."! For example, the macro for version
# 1.00 is defined:
#
# VERSION := 100
#
# NAME: A string used to name both the engineering version of the
# component built by this makefile and the source files used
# to build it.
#
# NOTES:
# 1. These macros must not be deleted or renamed. Their values should be
# modified to match the components built by this makefile.
#
# 2. The "engineer" target will not complete unless the COMPONENT,
# VERSION, and NAME macros are defined.
COMPONENT := wolfssl_intime
VERSION := 572
NAME := $(COMPONENT)_$(VERSION)
# MS Developer Studio project name and directory macros.
#
# PROJECT: The project name for this component.
#
# SUB_PROJECTS: The sub-project name(s) for this component.
#
# TARG_DIR: The target directory for component files, relative to the
# project and sub-project directories (generally, "Debug" or
# "Release").
#
# TARG_TYPE: The target type for the project and sub-projects
# (generally, "Debug" or "Release").
#
# NOTES:
# 1. These macros must not be deleted or renamed. Their values should be
# modified to match the project/directory structure of the component(s)
# built by this makefile. Unused macros values should be defined as
# $(NULL).
PROJECT := wolfssl
SUB_PROJECTS := $(NULL)
.IF $(DEBUG)
TARG_DIR := Debug
TARG_TYPE := Debug
.ELSE
TARG_DIR := Release
TARG_TYPE := Release
.END
# MKS make search path for machine-generated files.
#
# NOTES:
# 1. All machine-generated target files that do not reside in the current
# working directory require a .SOURCE directive. Otherwise, a .SOURCE
# directive is optional (but will improve makefile performance).
.SOURCE.lib: $(TARG_DIR)
# File list macros:
#
# TARGETS: The component(s) built by this makefile. These are the files
# built by the default rule ("make" or "make all").
# LOGFILE: A log file containing revision data for the project members
# (files) used to build the TARGETS. The file is built by the
# "engineer" rule.
# MAKEFILE: Makefile used to build the TARGETS (this file).
# ASM: Assembly source code files used to build the TARGETS (.asm).
# C: C source code files used to build the TARGETS (.c)
# CPP: C++ source code files used to build the TARGETS (.cpp).
# SRCS: The concatenation of ASM, C, and CPP.
# HDRS: Header files used to build the TARGETS (.h, .hpp, .inc).
# OBJ: Object files used to build the TARGETS (.obj).
# DEBRIS: Machine-generated files to be deleted by the "clean" rule.
#
# NOTES:
# 1. These macros must not be deleted or renamed. Their values may be
# modified to match the files used to build the component(s) associated
# with this makefile.
#
# 2. The "engineer" rule will not complete unless the LOGFILE macro is
# defined.
EXEC_TARGS := libwolfssl572.lib
SRC_TARGS := user_settings.h
TARGETS := $(EXEC_TARGS)
LOGFILE := $(PROJECT).txt
MAKEFILE := makefile
ASM :=
C :=
CPP :=
RCFILE :=
SRCS :=
OBJ :=
CFGS :=
DEBRIS := $(LOGFILE) release* debug* *.sdf *.user *.aps *.bak *~
INCL_TARGS := wolfssl/callbacks.h \
wolfssl/certs_test.h \
wolfssl/crl.h \
wolfssl/error-ssl.h \
wolfssl/include.am \
wolfssl/internal.h \
wolfssl/ocsp.h \
wolfssl/options.h \
wolfssl/options.h.in \
wolfssl/quic.h \
wolfssl/sniffer.h \
wolfssl/sniffer_error.h \
wolfssl/sniffer_error.rc \
wolfssl/ssl.h \
wolfssl/test.h \
wolfssl/version.h \
wolfssl/version.h.in \
wolfssl/wolfio.h \
wolfssl/openssl/aes.h \
wolfssl/openssl/asn1.h \
wolfssl/openssl/asn1t.h \
wolfssl/openssl/bio.h \
wolfssl/openssl/bn.h \
wolfssl/openssl/buffer.h \
wolfssl/openssl/camellia.h \
wolfssl/openssl/cmac.h \
wolfssl/openssl/cms.h \
wolfssl/openssl/compat_types.h \
wolfssl/openssl/conf.h \
wolfssl/openssl/crypto.h \
wolfssl/openssl/des.h \
wolfssl/openssl/dh.h \
wolfssl/openssl/dsa.h \
wolfssl/openssl/ec.h \
wolfssl/openssl/ec448.h \
wolfssl/openssl/ec25519.h \
wolfssl/openssl/ecdh.h \
wolfssl/openssl/ecdsa.h \
wolfssl/openssl/ecdh.h \
wolfssl/openssl/ecdsa.h \
wolfssl/openssl/ed448.h \
wolfssl/openssl/ed25519.h \
wolfssl/openssl/engine.h \
wolfssl/openssl/err.h \
wolfssl/openssl/evp.h \
wolfssl/openssl/fips_rand.h \
wolfssl/openssl/hmac.h \
wolfssl/openssl/include.am \
wolfssl/openssl/kdf.h \
wolfssl/openssl/lhash.h \
wolfssl/openssl/md4.h \
wolfssl/openssl/md5.h \
wolfssl/openssl/modes.h \
wolfssl/openssl/obj_mac.h \
wolfssl/openssl/objects.h \
wolfssl/openssl/ocsp.h \
wolfssl/openssl/opensslconf.h \
wolfssl/openssl/opensslv.h \
wolfssl/openssl/ossl_typ.h \
wolfssl/openssl/pem.h \
wolfssl/openssl/pkcs7.h \
wolfssl/openssl/pkcs12.h \
wolfssl/openssl/rand.h \
wolfssl/openssl/rc4.h \
wolfssl/openssl/ripemd.h \
wolfssl/openssl/rsa.h \
wolfssl/openssl/sha.h \
wolfssl/openssl/sha3.h \
wolfssl/openssl/srp.h \
wolfssl/openssl/ssl.h \
wolfssl/openssl/ssl23.h \
wolfssl/openssl/stack.h \
wolfssl/openssl/tls1.h \
wolfssl/openssl/txt_db.h \
wolfssl/openssl/ui.h \
wolfssl/openssl/x509.h \
wolfssl/openssl/x509_vfy.h \
wolfssl/openssl/x509v3.h \
wolfssl/wolfcrypt/aes.h \
wolfssl/wolfcrypt/arc4.h \
wolfssl/wolfcrypt/asn.h \
wolfssl/wolfcrypt/asn_public.h \
wolfssl/wolfcrypt/async.h \
wolfssl/wolfcrypt/blake2.h \
wolfssl/wolfcrypt/blake2-impl.h \
wolfssl/wolfcrypt/blake2-int.h \
wolfssl/wolfcrypt/camellia.h \
wolfssl/wolfcrypt/chacha.h \
wolfssl/wolfcrypt/chacha20_poly1305.h \
wolfssl/wolfcrypt/cmac.h \
wolfssl/wolfcrypt/coding.h \
wolfssl/wolfcrypt/compress.h \
wolfssl/wolfcrypt/cpuid.h \
wolfssl/wolfcrypt/cryptocb.h \
wolfssl/wolfcrypt/curve448.h \
wolfssl/wolfcrypt/curve25519.h \
wolfssl/wolfcrypt/des3.h \
wolfssl/wolfcrypt/dh.h \
wolfssl/wolfcrypt/dilithium.h \
wolfssl/wolfcrypt/dsa.h \
wolfssl/wolfcrypt/ecc.h \
wolfssl/wolfcrypt/eccsi.h \
wolfssl/wolfcrypt/ed448.h \
wolfssl/wolfcrypt/ed25519.h \
wolfssl/wolfcrypt/error-crypt.h \
wolfssl/wolfcrypt/ext_kyber.h \
wolfssl/wolfcrypt/ext_lms.h \
wolfssl/wolfcrypt/ext_xmss.h \
wolfssl/wolfcrypt/falcon.h \
wolfssl/wolfcrypt/fe_448.h \
wolfssl/wolfcrypt/fe_operations.h \
wolfssl/wolfcrypt/fips.h \
wolfssl/wolfcrypt/fips_test.h \
wolfssl/wolfcrypt/ge_448.h \
wolfssl/wolfcrypt/ge_operations.h \
wolfssl/wolfcrypt/hash.h \
wolfssl/wolfcrypt/hmac.h \
wolfssl/wolfcrypt/hpke.h \
wolfssl/wolfcrypt/include.am \
wolfssl/wolfcrypt/integer.h \
wolfssl/wolfcrypt/kdf.h \
wolfssl/wolfcrypt/kyber.h \
wolfssl/wolfcrypt/lms.h \
wolfssl/wolfcrypt/logging.h \
wolfssl/wolfcrypt/md2.h \
wolfssl/wolfcrypt/md4.h \
wolfssl/wolfcrypt/md5.h \
wolfssl/wolfcrypt/mem_track.h \
wolfssl/wolfcrypt/memory.h \
wolfssl/wolfcrypt/misc.h \
wolfssl/wolfcrypt/mpi_class.h \
wolfssl/wolfcrypt/mpi_superclass.h \
wolfssl/wolfcrypt/pkcs7.h \
wolfssl/wolfcrypt/pkcs11.h \
wolfssl/wolfcrypt/pkcs12.h \
wolfssl/wolfcrypt/poly1305.h \
wolfssl/wolfcrypt/pwdbased.h \
wolfssl/wolfcrypt/random.h \
wolfssl/wolfcrypt/rc2.h \
wolfssl/wolfcrypt/ripemd.h \
wolfssl/wolfcrypt/rsa.h \
wolfssl/wolfcrypt/sakke.h \
wolfssl/wolfcrypt/selftest.h \
wolfssl/wolfcrypt/settings.h \
wolfssl/wolfcrypt/sha.h \
wolfssl/wolfcrypt/sha3.h \
wolfssl/wolfcrypt/sha256.h \
wolfssl/wolfcrypt/sha512.h \
wolfssl/wolfcrypt/signature.h \
wolfssl/wolfcrypt/siphash.h \
wolfssl/wolfcrypt/sm2.h \
wolfssl/wolfcrypt/sm3.h \
wolfssl/wolfcrypt/sm4.h \
wolfssl/wolfcrypt/sp.h \
wolfssl/wolfcrypt/sp_int.h \
wolfssl/wolfcrypt/sphincs.h \
wolfssl/wolfcrypt/srp.h \
wolfssl/wolfcrypt/tfm.h \
wolfssl/wolfcrypt/types.h \
wolfssl/wolfcrypt/visibility.h \
wolfssl/wolfcrypt/wc_encrypt.h \
wolfssl/wolfcrypt/wc_kyber.h \
wolfssl/wolfcrypt/wc_pkcs11.h \
wolfssl/wolfcrypt/wc_port.h \
wolfssl/wolfcrypt/wolfevent.h \
wolfssl/wolfcrypt/wolfmath.h \
wolfssl/wolfcrypt/xmss.h \
wolfssl/wolfcrypt/port/nrf51.h \
wolfssl/wolfcrypt/port/af_alg/afalg_hash.h \
wolfssl/wolfcrypt/port/af_alg/wc_afalg.h \
wolfssl/wolfcrypt/port/aria/aria-crypt.h \
wolfssl/wolfcrypt/port/aria/aria-cryptocb.h \
wolfssl/wolfcrypt/port/arm/cryptoCell.h \
wolfssl/wolfcrypt/port/atmel/atmel.h \
wolfssl/wolfcrypt/port/autosar/CryIf.h \
wolfssl/wolfcrypt/port/autosar/Crypto.h \
wolfssl/wolfcrypt/port/autosar/Csm.h \
wolfssl/wolfcrypt/port/autosar/StandardTypes.h \
wolfssl/wolfcrypt/port/caam/caam_driver.h \
wolfssl/wolfcrypt/port/caam/caam_error.h \
wolfssl/wolfcrypt/port/caam/caam_qnx.h \
wolfssl/wolfcrypt/port/caam/wolfcaam.h \
wolfssl/wolfcrypt/port/caam/wolfcaam_aes.h \
wolfssl/wolfcrypt/port/caam/wolfcaam_cmac.h \
wolfssl/wolfcrypt/port/caam/wolfcaam_ecdsa.h \
wolfssl/wolfcrypt/port/caam/wolfcaam_fsl_nxp.h \
wolfssl/wolfcrypt/port/caam/wolfcaam_hash.h \
wolfssl/wolfcrypt/port/caam/wolfcaam_qnx.h \
wolfssl/wolfcrypt/port/caam/wolfcaam_rsa.h \
wolfssl/wolfcrypt/port/caam/wolfcaam_seco.h \
wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h \
wolfssl/wolfcrypt/port/caam/wolfcaam_x25519.h \
wolfssl/wolfcrypt/port/cavium/cavium_nitrox.h \
wolfssl/wolfcrypt/port/cavium/cavium_octeon_sync.h \
wolfssl/wolfcrypt/port/cypress/psoc6_crypto.h \
wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h \
wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h \
wolfssl/wolfcrypt/port/Espressif/esp-sdk-lib.h \
wolfssl/wolfcrypt/port/intel/quickassist.h \
wolfssl/wolfcrypt/port/intel/quickassist_mem.h \
wolfssl/wolfcrypt/port/intel/quickassist_sync.h \
wolfssl/wolfcrypt/port/iotsafe/iotsafe.h \
wolfssl/wolfcrypt/port/kcapi/kcapi_dh.h \
wolfssl/wolfcrypt/port/kcapi/kcapi_ecc.h \
wolfssl/wolfcrypt/port/kcapi/kcapi_hash.h \
wolfssl/wolfcrypt/port/kcapi/kcapi_hmac.h \
wolfssl/wolfcrypt/port/kcapi/kcapi_rsa.h \
wolfssl/wolfcrypt/port/kcapi/wc_kcapi.h \
wolfssl/wolfcrypt/port/liboqs/liboqs.h \
wolfssl/wolfcrypt/port/maxim/maxq10xx.h \
wolfssl/wolfcrypt/port/nxp/dcp_port.h \
wolfssl/wolfcrypt/port/nxp/ksdk_port.h \
wolfssl/wolfcrypt/port/nxp/se050_port.h \
wolfssl/wolfcrypt/port/pic32/pic32mz-crypt.h \
wolfssl/wolfcrypt/port/psa/psa.h \
wolfssl/wolfcrypt/port/Renesas/renesas_cmn.h \
wolfssl/wolfcrypt/port/Renesas/renesas_sync.h \
wolfssl/wolfcrypt/port/Renesas/renesas_tsip_types.h \
wolfssl/wolfcrypt/port/Renesas/renesas-fspsm-crypt.h \
wolfssl/wolfcrypt/port/Renesas/renesas-fspsm-types.h \
wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h \
wolfssl/wolfcrypt/port/riscv/riscv-64-asm.h \
wolfssl/wolfcrypt/port/silabs/silabs_aes.h \
wolfssl/wolfcrypt/port/silabs/silabs_ecc.h \
wolfssl/wolfcrypt/port/silabs/silabs_hash.h \
wolfssl/wolfcrypt/port/silabs/silabs_random.h \
wolfssl/wolfcrypt/port/st/stm32.h \
wolfssl/wolfcrypt/port/st/stsafe.h \
wolfssl/wolfcrypt/port/ti/ti-ccm.h \
wolfssl/wolfcrypt/port/ti/ti-hash.h \
wolfssl/wolfcrypt/port/xilinx/xil-sha3.h \
wolfssl/wolfcrypt/port/xilinx/xil-versal-glue.h \
wolfssl/wolfcrypt/port/xilinx/xil-versal-trng.h
# Default rules.
#
# NOTES:
# 1. These files must always be included after the macro definitions and
# before the component-specific rules.
.INCLUDE:$(SWENGENV)/rules.wnt
.INCLUDE:$(SWENGENV)/intimerules.wnt
# Component-specific rules, including:
#
# prodeng: checks TARGETS into an engineering release directory using the
# "puttarg.ksh" script.
#
# NOTES:
# 1. The "prodeng" rule must not be renamed or deleted! It should,
# however, be modified to reflect the engineering release requirements
# of the TARGETS.
#
# 2. Rules for each of the TARGETS should be added here.
#
# 3. Additional rules may be added as necessary. Care should be taken so
# that rules defined in the rules.wnt file are not redefined here.
prodeng: "$(PROD_ENG)/rt/include/wolfssl572/wolfssl" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/openssl" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/af_alg" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/aria" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/arm" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/atmel" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/autosar" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/caam" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/cavium" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/cypress" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/devcrypto" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/espressif" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/intel" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/iotsafe" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/kcapi" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/liboqs" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/maxim" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/nxp" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/pic32" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/psa" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/Renesas" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/riscv" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/silabs" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/st" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/ti" "$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/xilinx" \
"$(PROD_ENG)/rt/lib"
[@
for f in $(EXEC_TARGS); do
$(SWENGENV)/puttarg $(PROD_ENG)/rt/lib $(TARG_DIR)/$$f Engineer $(NAME) "$(MESSAGE)"
done
for f in $(SRC_TARGS); do
$(SWENGENV)/puttarg $(PROD_ENG)/rt/include/wolfssl572 $$f Engineer $(NAME) "$(MESSAGE)"
done
for f in $(INCL_TARGS); do
dir=`dirname $$f | gres "wolfssl(.*)" "\1"`
if [ ! -d $(PROD_ENG)/rt/include/wolfssl572/wolfssl$$dir ] ; then
mkdir $(PROD_ENG)/rt/include/wolfssl572/wolfssl$$dir
fi
$(SWENGENV)/puttarg $(PROD_ENG)/rt/include/wolfssl572/wolfssl$$dir ../../$$f Engineer $(NAME) "$(MESSAGE)"
done
]
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/openssl" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfcrypt/port/af_alg" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/aria" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/arm" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/atmel" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/autosar" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/caam" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/cavium" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/cypress" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/devcrypto" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/espressif" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/intel" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/iotsafe" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/kcapi" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/liboqs" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/maxim" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/nxp" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/pic32" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/psa" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/Renesas" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/riscv" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/silabs" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/st" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/ti" \
"$(PROD_ENG)/rt/include/wolfssl572/wolfssl/wolfcrypt/port/xilinx" \
"$(PROD_ENG)/rt/lib":
$(MKSBIN)/mkdir -p $@
# Build project binaries, project help files, and sub-project binaries.
#
# NOTES:
# 1. To ensure that the correct environment is present when invoking a MS
# Developer Studio makefile, the rule initializes the required
# environment variables in a sub-shell before invoking the makefile.
#
# 2. Path vectors are converted to Microsoft-style pathname slashes
# via 'redmond.ksh' before passing them as environment variables to
# Microsoft tools.
SOLUTIONFILE = wolfssl-lib.sln
.INCLUDE: $(SWENGENV)/vs2019.wnt
$(EXEC_TARGS) .PROLOG: rt_tree
[@
rm -f msbuild.log
msbuild $(SOLUTIONFILE) /t:Rebuild /p:Configuration=$(TARG_TYPE) /fileLogger
ec=$$?
if [ $$ec -ne 0 ]; then
echo Failed to build $(@)
else
echo Success!
fi
exit $$ec
]
+4 -1
View File
@@ -10,4 +10,7 @@ EXTRA_DIST += \
IDE/INTIME-RTOS/wolfExamples.c \
IDE/INTIME-RTOS/wolfExamples.h \
IDE/INTIME-RTOS/wolfExamples.vcxproj \
IDE/INTIME-RTOS/wolfExamples.sln
IDE/INTIME-RTOS/wolfExamples.sln \
IDE/INTIME-RTOS/wolfssl-lib.sln \
IDE/INTIME-RTOS/wolfssl-lib.vcxproj \
IDE/INTIME-RTOS/Makefile
+234 -210
View File
@@ -1,210 +1,234 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|INtime">
<Configuration>Debug</Configuration>
<Platform>INtime</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|INtime">
<Configuration>Release</Configuration>
<Platform>INtime</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<Text Include="README.md" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="libwolfssl.c" />
<ClCompile Include="..\..\src\crl.c" />
<ClCompile Include="..\..\src\internal.c" />
<ClCompile Include="..\..\src\wolfio.c" />
<ClCompile Include="..\..\src\keys.c" />
<ClCompile Include="..\..\src\ocsp.c" />
<ClCompile Include="..\..\src\sniffer.c" />
<ClCompile Include="..\..\src\ssl.c" />
<ClCompile Include="..\..\src\tls.c" />
<ClCompile Include="..\..\wolfcrypt\src\aes.c" />
<ClCompile Include="..\..\wolfcrypt\src\arc4.c" />
<ClCompile Include="..\..\wolfcrypt\src\asm.c" />
<ClCompile Include="..\..\wolfcrypt\src\asn.c" />
<ClCompile Include="..\..\wolfcrypt\src\blake2b.c" />
<ClCompile Include="..\..\wolfcrypt\src\camellia.c" />
<ClCompile Include="..\..\wolfcrypt\src\chacha.c" />
<ClCompile Include="..\..\wolfcrypt\src\chacha20_poly1305.c" />
<ClCompile Include="..\..\wolfcrypt\src\cmac.c" />
<ClCompile Include="..\..\wolfcrypt\src\coding.c" />
<ClCompile Include="..\..\wolfcrypt\src\compress.c" />
<ClCompile Include="..\..\wolfcrypt\src\curve25519.c" />
<ClCompile Include="..\..\wolfcrypt\src\des3.c" />
<ClCompile Include="..\..\wolfcrypt\src\dh.c" />
<ClCompile Include="..\..\wolfcrypt\src\dsa.c" />
<ClCompile Include="..\..\wolfcrypt\src\ecc.c" />
<ClCompile Include="..\..\wolfcrypt\src\ed25519.c" />
<ClCompile Include="..\..\wolfcrypt\src\error.c" />
<ClCompile Include="..\..\wolfcrypt\src\fe_low_mem.c" />
<ClCompile Include="..\..\wolfcrypt\src\fe_operations.c" />
<ClCompile Include="..\..\wolfcrypt\src\ge_low_mem.c" />
<ClCompile Include="..\..\wolfcrypt\src\ge_operations.c" />
<ClCompile Include="..\..\wolfcrypt\src\hash.c" />
<ClCompile Include="..\..\wolfcrypt\src\kdf.c" />
<ClCompile Include="..\..\wolfcrypt\src\hmac.c" />
<ClCompile Include="..\..\wolfcrypt\src\integer.c" />
<ClCompile Include="..\..\wolfcrypt\src\logging.c" />
<ClCompile Include="..\..\wolfcrypt\src\md2.c" />
<ClCompile Include="..\..\wolfcrypt\src\md4.c" />
<ClCompile Include="..\..\wolfcrypt\src\md5.c" />
<ClCompile Include="..\..\wolfcrypt\src\memory.c" />
<ClCompile Include="..\..\wolfcrypt\src\pkcs12.c" />
<ClCompile Include="..\..\wolfcrypt\src\pkcs7.c" />
<ClCompile Include="..\..\wolfcrypt\src\poly1305.c" />
<ClCompile Include="..\..\wolfcrypt\src\pwdbased.c" />
<ClCompile Include="..\..\wolfcrypt\src\random.c" />
<ClCompile Include="..\..\wolfcrypt\src\ripemd.c" />
<ClCompile Include="..\..\wolfcrypt\src\rsa.c" />
<ClCompile Include="..\..\wolfcrypt\src\sha.c" />
<ClCompile Include="..\..\wolfcrypt\src\sha256.c" />
<ClCompile Include="..\..\wolfcrypt\src\sha512.c" />
<ClCompile Include="..\..\wolfcrypt\src\signature.c" />
<ClCompile Include="..\..\wolfcrypt\src\srp.c" />
<ClCompile Include="..\..\wolfcrypt\src\tfm.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_encrypt.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_port.c" />
<ClCompile Include="..\..\wolfcrypt\src\wolfevent.c" />
<ClCompile Include="..\..\wolfcrypt\src\wolfmath.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="user_settings.h" />
<ClInclude Include="..\..\wolfssl\callbacks.h" />
<ClInclude Include="..\..\wolfssl\certs_test.h" />
<ClInclude Include="..\..\wolfssl\crl.h" />
<ClInclude Include="..\..\wolfssl\error-ssl.h" />
<ClInclude Include="..\..\wolfssl\internal.h" />
<ClInclude Include="..\..\wolfssl\ocsp.h" />
<ClInclude Include="..\..\wolfssl\options.h" />
<ClInclude Include="..\..\wolfssl\sniffer.h" />
<ClInclude Include="..\..\wolfssl\sniffer_error.h" />
<ClInclude Include="..\..\wolfssl\ssl.h" />
<ClInclude Include="..\..\wolfssl\test.h" />
<ClInclude Include="..\..\wolfssl\version.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\aes.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\arc4.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\asn.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\asn_public.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\async.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\blake2-impl.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\blake2-int.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\blake2.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\camellia.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\chacha.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\chacha20_poly1305.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\cmac.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\coding.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\compress.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\curve25519.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\des3.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\dh.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\dsa.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\ecc.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\ed25519.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\error-crypt.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\fe_operations.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\fips_test.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\ge_operations.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\hash.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\hmac.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\integer.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\logging.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\md2.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\md4.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\md5.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\memory.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\mem_track.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\misc.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\mpi_class.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\mpi_superclass.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\pkcs12.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\pkcs7.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\poly1305.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\pwdbased.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\random.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\ripemd.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\rsa.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\settings.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\sha.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\sha256.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\sha512.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\signature.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\srp.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\tfm.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\types.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\visibility.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\wc_encrypt.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\wc_port.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\wolfevent.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\wolfmath.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{1731767D-573F-45C9-A466-191DA0D180CF}</ProjectGuid>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<IntDir>$(Configuration)_$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<IntDir>$(Configuration)_$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<ClCompile>
</ClCompile>
<Link>
<Version>21076.20052</Version>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>rt.lib;pcibus.lib;netlib.lib;clib.lib;vshelper.lib</AdditionalDependencies>
<OutputFile>$(SolutionDir)$(Configuration)\\libwolfssl.rsl</OutputFile>
</Link>
<ClCompile>
<ExceptionHandling>Async</ExceptionHandling>
<PreprocessorDefinitions>_USRDLL;WOLFSSL_DLL;BUILDING_WOLFSSL;WOLFSSL_USER_SETTINGS;_USE_64BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<ClCompile>
</ClCompile>
<Link>
<Version>21076.20052</Version>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>rt.lib;pcibus.lib;netlib.lib;clib.lib;vshelper.lib</AdditionalDependencies>
<OutputFile>$(SolutionDir)$(Configuration)\\libwolfssl.rsl</OutputFile>
</Link>
<ClCompile>
<ExceptionHandling>Async</ExceptionHandling>
<PreprocessorDefinitions>_USRDLL;WOLFSSL_DLL;BUILDING_WOLFSSL;WOLFSSL_USER_SETTINGS;_USE_64BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|INtime">
<Configuration>Debug</Configuration>
<Platform>INtime</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|INtime">
<Configuration>Release</Configuration>
<Platform>INtime</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<Text Include="README.md" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="libwolfssl.c" />
<ClCompile Include="..\..\src\crl.c" />
<ClCompile Include="..\..\src\dtls13.c" />
<ClCompile Include="..\..\src\dtls.c" />
<ClCompile Include="..\..\src\internal.c" />
<ClCompile Include="..\..\src\wolfio.c" />
<ClCompile Include="..\..\src\keys.c" />
<ClCompile Include="..\..\src\ocsp.c" />
<ClCompile Include="..\..\src\sniffer.c" />
<ClCompile Include="..\..\src\ssl.c" />
<ClCompile Include="..\..\src\tls.c" />
<ClCompile Include="..\..\src\tls13.c" />
<ClCompile Include="..\..\wolfcrypt\src\aes.c" />
<ClCompile Include="..\..\wolfcrypt\src\arc4.c" />
<ClCompile Include="..\..\wolfcrypt\src\asm.c" />
<ClCompile Include="..\..\wolfcrypt\src\asn.c" />
<ClCompile Include="..\..\wolfcrypt\src\blake2b.c" />
<ClCompile Include="..\..\wolfcrypt\src\blake2s.c" />
<ClCompile Include="..\..\wolfcrypt\src\camellia.c" />
<ClCompile Include="..\..\wolfcrypt\src\chacha.c" />
<ClCompile Include="..\..\wolfcrypt\src\chacha20_poly1305.c" />
<ClCompile Include="..\..\wolfcrypt\src\cmac.c" />
<ClCompile Include="..\..\wolfcrypt\src\coding.c" />
<ClCompile Include="..\..\wolfcrypt\src\compress.c" />
<ClCompile Include="..\..\wolfcrypt\src\curve25519.c" />
<ClCompile Include="..\..\wolfcrypt\src\cpuid.c" />
<ClCompile Include="..\..\wolfcrypt\src\cryptocb.c" />
<ClCompile Include="..\..\wolfcrypt\src\des3.c" />
<ClCompile Include="..\..\wolfcrypt\src\dilithium.c" />
<ClCompile Include="..\..\wolfcrypt\src\dh.c" />
<ClCompile Include="..\..\wolfcrypt\src\dsa.c" />
<ClCompile Include="..\..\wolfcrypt\src\ecc.c" />
<ClCompile Include="..\..\wolfcrypt\src\ed25519.c" />
<ClCompile Include="..\..\wolfcrypt\src\ed448.c" />
<ClCompile Include="..\..\wolfcrypt\src\error.c" />
<!--ClCompile Include="..\..\wolfcrypt\src\ext_kyber.c" /-->
<ClCompile Include="..\..\wolfcrypt\src\falcon.c" />
<ClCompile Include="..\..\wolfcrypt\src\fe_448.c" />
<ClCompile Include="..\..\wolfcrypt\src\fe_low_mem.c" />
<ClCompile Include="..\..\wolfcrypt\src\fe_operations.c" />
<ClCompile Include="..\..\wolfcrypt\src\ge_448.c" />
<ClCompile Include="..\..\wolfcrypt\src\ge_low_mem.c" />
<ClCompile Include="..\..\wolfcrypt\src\ge_operations.c" />
<ClCompile Include="..\..\wolfcrypt\src\hash.c" />
<ClCompile Include="..\..\wolfcrypt\src\kdf.c" />
<!--ClCompile Include="..\..\wolfcrypt\src\wc_kyber.c" /-->
<!--ClCompile Include="..\..\wolfcrypt\src\wc_kyber_poly.c" /-->
<ClCompile Include="..\..\wolfcrypt\src\hmac.c" />
<ClCompile Include="..\..\wolfcrypt\src\integer.c" />
<ClCompile Include="..\..\wolfcrypt\src\logging.c" />
<ClCompile Include="..\..\wolfcrypt\src\md2.c" />
<ClCompile Include="..\..\wolfcrypt\src\md4.c" />
<ClCompile Include="..\..\wolfcrypt\src\md5.c" />
<ClCompile Include="..\..\wolfcrypt\src\memory.c" />
<ClCompile Include="..\..\wolfcrypt\src\pkcs12.c" />
<ClCompile Include="..\..\wolfcrypt\src\pkcs7.c" />
<ClCompile Include="..\..\wolfcrypt\src\poly1305.c" />
<ClCompile Include="..\..\wolfcrypt\src\pwdbased.c" />
<ClCompile Include="..\..\wolfcrypt\src\random.c" />
<ClCompile Include="..\..\wolfcrypt\src\rc2.c" />
<ClCompile Include="..\..\wolfcrypt\src\ripemd.c" />
<ClCompile Include="..\..\wolfcrypt\src\rsa.c" />
<ClCompile Include="..\..\wolfcrypt\src\sha.c" />
<ClCompile Include="..\..\wolfcrypt\src\sha256.c" />
<ClCompile Include="..\..\wolfcrypt\src\sha3.c" />
<ClCompile Include="..\..\wolfcrypt\src\sha512.c" />
<ClCompile Include="..\..\wolfcrypt\src\signature.c" />
<ClCompile Include="..\..\wolfcrypt\src\sphincs.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_c32.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_c64.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_int.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_x86_64.c" />
<ClCompile Include="..\..\wolfcrypt\src\srp.c" />
<ClCompile Include="..\..\wolfcrypt\src\tfm.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_encrypt.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_port.c" />
<ClCompile Include="..\..\wolfcrypt\src\wolfevent.c" />
<ClCompile Include="..\..\wolfcrypt\src\wolfmath.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_pkcs11.c" />
<ClCompile Include="..\..\wolfcrypt\src\port\liboqs\liboqs.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="user_settings.h" />
<ClInclude Include="..\..\wolfssl\callbacks.h" />
<ClInclude Include="..\..\wolfssl\certs_test.h" />
<ClInclude Include="..\..\wolfssl\crl.h" />
<ClInclude Include="..\..\wolfssl\error-ssl.h" />
<ClInclude Include="..\..\wolfssl\internal.h" />
<ClInclude Include="..\..\wolfssl\ocsp.h" />
<ClInclude Include="..\..\wolfssl\options.h" />
<ClInclude Include="..\..\wolfssl\sniffer.h" />
<ClInclude Include="..\..\wolfssl\sniffer_error.h" />
<ClInclude Include="..\..\wolfssl\ssl.h" />
<ClInclude Include="..\..\wolfssl\test.h" />
<ClInclude Include="..\..\wolfssl\version.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\aes.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\arc4.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\asn.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\asn_public.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\async.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\blake2-impl.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\blake2-int.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\blake2.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\camellia.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\chacha.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\chacha20_poly1305.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\cmac.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\coding.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\compress.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\curve25519.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\des3.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\dh.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\dsa.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\ecc.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\ed25519.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\error-crypt.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\fe_operations.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\fips_test.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\ge_operations.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\hash.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\hmac.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\integer.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\logging.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\md2.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\md4.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\md5.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\memory.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\mem_track.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\misc.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\mpi_class.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\mpi_superclass.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\pkcs12.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\pkcs7.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\poly1305.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\pwdbased.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\random.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\ripemd.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\rsa.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\settings.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\sha.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\sha256.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\sha512.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\signature.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\srp.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\tfm.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\types.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\visibility.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\wc_encrypt.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\wc_port.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\wolfevent.h" />
<ClInclude Include="..\..\wolfssl\wolfcrypt\wolfmath.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{1731767D-573F-45C9-A466-191DA0D180CF}</ProjectGuid>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<IntDir>$(Configuration)_$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<IntDir>$(Configuration)_$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<ClCompile>
</ClCompile>
<Link>
<Version>21076.20052</Version>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>rt.lib;pcibus.lib;netlib.lib;clib.lib;vshelper.lib</AdditionalDependencies>
<OutputFile>$(SolutionDir)$(Configuration)\\libwolfssl.rsl</OutputFile>
</Link>
<ClCompile>
<ExceptionHandling>Async</ExceptionHandling>
<PreprocessorDefinitions>_USRDLL;WOLFSSL_DLL;BUILDING_WOLFSSL;WOLFSSL_USER_SETTINGS;_USE_64BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<ClCompile>
</ClCompile>
<Link>
<Version>21076.20052</Version>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>rt.lib;pcibus.lib;netlib.lib;clib.lib;vshelper.lib</AdditionalDependencies>
<OutputFile>$(SolutionDir)$(Configuration)\\libwolfssl.rsl</OutputFile>
</Link>
<ClCompile>
<ExceptionHandling>Async</ExceptionHandling>
<PreprocessorDefinitions>_USRDLL;WOLFSSL_DLL;BUILDING_WOLFSSL;WOLFSSL_USER_SETTINGS;_USE_64BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
+3
View File
@@ -284,6 +284,9 @@ extern "C" {
#undef OPENSSL_EXTRA
#define OPENSSL_EXTRA
#undef OPENSSL_ALL
#define OPENSSL_ALL
#undef WOLFSSL_BASE64_ENCODE
#define WOLFSSL_BASE64_ENCODE
+93 -93
View File
@@ -1,93 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|INtime">
<Configuration>Debug</Configuration>
<Platform>INtime</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|INtime">
<Configuration>Release</Configuration>
<Platform>INtime</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<Text Include="README.md" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="wolfExamples.c" />
<ClCompile Include="..\..\wolfcrypt\test\test.c" />
<ClCompile Include="..\..\wolfcrypt\benchmark\benchmark.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="user_settings.h" />
<ClInclude Include="wolfExamples.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{557A7EFD-2627-478A-A855-50F518DD13EE}</ProjectGuid>
<ProjectName>wolfExamples</ProjectName>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<IntDir>$(Configuration)_$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<IntDir>$(Configuration)_$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<ClCompile>
</ClCompile>
<Link>
<Version>21076.20053</Version>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>rt.lib;pcibus.lib;netlib.lib;clib.lib;vshelper.lib;libwolfssl.lib</AdditionalDependencies>
<OutputFile>$(SolutionDir)$(Configuration)\\wolfExamples.rta</OutputFile>
<AdditionalLibraryDirectories>$(ProjectDir)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<ClCompile>
<ExceptionHandling>Async</ExceptionHandling>
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;_USE_64BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<ClCompile>
</ClCompile>
<Link>
<Version>21076.20053</Version>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>rt.lib;pcibus.lib;netlib.lib;clib.lib;vshelper.lib;libwolfssl.lib</AdditionalDependencies>
<OutputFile>$(SolutionDir)$(Configuration)\\wolfExamples.rta</OutputFile>
<AdditionalLibraryDirectories>$(ProjectDir)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<ClCompile>
<ExceptionHandling>Async</ExceptionHandling>
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
</ClCompile>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|INtime">
<Configuration>Debug</Configuration>
<Platform>INtime</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|INtime">
<Configuration>Release</Configuration>
<Platform>INtime</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<Text Include="README.md" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="wolfExamples.c" />
<ClCompile Include="..\..\wolfcrypt\test\test.c" />
<ClCompile Include="..\..\wolfcrypt\benchmark\benchmark.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="user_settings.h" />
<ClInclude Include="wolfExamples.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{557A7EFD-2627-478A-A855-50F518DD13EE}</ProjectGuid>
<ProjectName>wolfExamples</ProjectName>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<IntDir>$(Configuration)_$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<IntDir>$(Configuration)_$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<ClCompile>
</ClCompile>
<Link>
<Version>21076.20053</Version>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>rt.lib;pcibus.lib;netlib.lib;clib.lib;vshelper.lib;libwolfssl.lib</AdditionalDependencies>
<OutputFile>$(SolutionDir)$(Configuration)\\wolfExamples.rta</OutputFile>
<AdditionalLibraryDirectories>$(ProjectDir)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<ClCompile>
<ExceptionHandling>Async</ExceptionHandling>
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;_USE_64BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<ClCompile>
</ClCompile>
<Link>
<Version>21076.20053</Version>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>rt.lib;pcibus.lib;netlib.lib;clib.lib;vshelper.lib;libwolfssl.lib</AdditionalDependencies>
<OutputFile>$(SolutionDir)$(Configuration)\\wolfExamples.rta</OutputFile>
<AdditionalLibraryDirectories>$(ProjectDir)$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<ClCompile>
<ExceptionHandling>Async</ExceptionHandling>
<PreprocessorDefinitions>WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
</ClCompile>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
+22
View File
@@ -0,0 +1,22 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wolfssl-lib", "wolfssl-lib.vcxproj", "{3BBA3633-A077-4A57-A242-0A22328E5CF6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|INtime = Debug|INtime
Release|INtime = Release|INtime
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3BBA3633-A077-4A57-A242-0A22328E5CF6}.Debug|INtime.ActiveCfg = Debug|INtime
{3BBA3633-A077-4A57-A242-0A22328E5CF6}.Debug|INtime.Build.0 = Debug|INtime
{3BBA3633-A077-4A57-A242-0A22328E5CF6}.Release|INtime.ActiveCfg = Release|INtime
{3BBA3633-A077-4A57-A242-0A22328E5CF6}.Release|INtime.Build.0 = Release|INtime
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
+363
View File
@@ -0,0 +1,363 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|INtime">
<Configuration>Debug</Configuration>
<Platform>INtime</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|INtime">
<Configuration>Release</Configuration>
<Platform>INtime</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<Text Include="README.md" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\bio.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\conf.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\dtls.c" />
<ClCompile Include="..\..\src\dtls13.c" />
<ClCompile Include="..\..\src\pk.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\quic.c" />
<ClCompile Include="..\..\src\ssl_asn1.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ssl_bn.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ssl_certman.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ssl_crypto.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ssl_load.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ssl_misc.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ssl_p7p12.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ssl_sess.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\tls13.c" />
<ClCompile Include="..\..\src\x509.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\x509_str.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\wolfcrypt\src\async.c" />
<ClCompile Include="..\..\wolfcrypt\src\blake2s.c" />
<ClCompile Include="..\..\wolfcrypt\src\cpuid.c" />
<ClCompile Include="..\..\wolfcrypt\src\cryptocb.c" />
<ClCompile Include="..\..\wolfcrypt\src\curve448.c" />
<ClCompile Include="..\..\wolfcrypt\src\dilithium.c" />
<ClCompile Include="..\..\wolfcrypt\src\eccsi.c" />
<ClCompile Include="..\..\wolfcrypt\src\ed448.c" />
<ClCompile Include="..\..\wolfcrypt\src\evp.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\wolfcrypt\src\ext_kyber.c" />
<ClCompile Include="..\..\wolfcrypt\src\ext_lms.c" />
<ClCompile Include="..\..\wolfcrypt\src\ext_xmss.c" />
<ClCompile Include="..\..\wolfcrypt\src\falcon.c" />
<ClCompile Include="..\..\wolfcrypt\src\fe_448.c" />
<ClCompile Include="..\..\wolfcrypt\src\fips.c" />
<ClCompile Include="..\..\wolfcrypt\src\fips_test.c" />
<ClCompile Include="..\..\wolfcrypt\src\ge_448.c" />
<ClCompile Include="..\..\wolfcrypt\src\hpke.c" />
<ClCompile Include="..\..\wolfcrypt\src\kdf.c" />
<ClCompile Include="..\..\wolfcrypt\src\misc.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\wolfcrypt\src\rc2.c" />
<ClCompile Include="..\..\wolfcrypt\src\sakke.c" />
<ClCompile Include="..\..\wolfcrypt\src\selftest.c" />
<ClCompile Include="..\..\wolfcrypt\src\sha3.c" />
<ClCompile Include="..\..\wolfcrypt\src\siphash.c" />
<ClCompile Include="..\..\wolfcrypt\src\sm2.c" />
<ClCompile Include="..\..\wolfcrypt\src\sm3.c" />
<ClCompile Include="..\..\wolfcrypt\src\sm4.c" />
<ClCompile Include="..\..\wolfcrypt\src\sphincs.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_arm32.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_arm64.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_armthumb.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_c32.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_c64.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_cortexm.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_dsp32.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_int.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_sm2_arm32.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_sm2_arm64.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_sm2_armthumb.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_sm2_c32.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_sm2_c64.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_sm2_cortexm.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_sm2_x86_64.c" />
<ClCompile Include="..\..\wolfcrypt\src\sp_x86_64.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_dsp.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_kyber.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_kyber_poly.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_lms.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_lms_impl.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_pkcs11.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_xmss.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_xmss_impl.c" />
<ClCompile Include="..\..\wolfcrypt\src\wolfcrypt_first.c" />
<ClCompile Include="..\..\wolfcrypt\src\wolfcrypt_last.c" />
<ClCompile Include="libwolfssl.c" />
<ClCompile Include="..\..\src\crl.c" />
<ClCompile Include="..\..\src\internal.c" />
<ClCompile Include="..\..\src\wolfio.c" />
<ClCompile Include="..\..\src\keys.c" />
<ClCompile Include="..\..\src\ocsp.c" />
<ClCompile Include="..\..\src\sniffer.c" />
<ClCompile Include="..\..\src\ssl.c" />
<ClCompile Include="..\..\src\tls.c" />
<ClCompile Include="..\..\wolfcrypt\src\aes.c" />
<ClCompile Include="..\..\wolfcrypt\src\arc4.c" />
<ClCompile Include="..\..\wolfcrypt\src\asm.c" />
<ClCompile Include="..\..\wolfcrypt\src\asn.c" />
<ClCompile Include="..\..\wolfcrypt\src\blake2b.c" />
<ClCompile Include="..\..\wolfcrypt\src\camellia.c" />
<ClCompile Include="..\..\wolfcrypt\src\chacha.c" />
<ClCompile Include="..\..\wolfcrypt\src\chacha20_poly1305.c" />
<ClCompile Include="..\..\wolfcrypt\src\cmac.c" />
<ClCompile Include="..\..\wolfcrypt\src\coding.c" />
<ClCompile Include="..\..\wolfcrypt\src\compress.c" />
<ClCompile Include="..\..\wolfcrypt\src\curve25519.c" />
<ClCompile Include="..\..\wolfcrypt\src\des3.c" />
<ClCompile Include="..\..\wolfcrypt\src\dh.c" />
<ClCompile Include="..\..\wolfcrypt\src\dsa.c" />
<ClCompile Include="..\..\wolfcrypt\src\ecc.c" />
<ClCompile Include="..\..\wolfcrypt\src\ecc_fp.c" />
<ClCompile Include="..\..\wolfcrypt\src\ed25519.c" />
<ClCompile Include="..\..\wolfcrypt\src\error.c" />
<ClCompile Include="..\..\wolfcrypt\src\fe_low_mem.c" />
<ClCompile Include="..\..\wolfcrypt\src\fe_operations.c" />
<ClCompile Include="..\..\wolfcrypt\src\ge_low_mem.c" />
<ClCompile Include="..\..\wolfcrypt\src\ge_operations.c" />
<ClCompile Include="..\..\wolfcrypt\src\hash.c" />
<ClCompile Include="..\..\wolfcrypt\src\hmac.c" />
<ClCompile Include="..\..\wolfcrypt\src\integer.c" />
<ClCompile Include="..\..\wolfcrypt\src\logging.c" />
<ClCompile Include="..\..\wolfcrypt\src\md2.c" />
<ClCompile Include="..\..\wolfcrypt\src\md4.c" />
<ClCompile Include="..\..\wolfcrypt\src\md5.c" />
<ClCompile Include="..\..\wolfcrypt\src\memory.c" />
<ClCompile Include="..\..\wolfcrypt\src\pkcs12.c" />
<ClCompile Include="..\..\wolfcrypt\src\pkcs7.c" />
<ClCompile Include="..\..\wolfcrypt\src\poly1305.c" />
<ClCompile Include="..\..\wolfcrypt\src\pwdbased.c" />
<ClCompile Include="..\..\wolfcrypt\src\random.c" />
<ClCompile Include="..\..\wolfcrypt\src\ripemd.c" />
<ClCompile Include="..\..\wolfcrypt\src\rsa.c" />
<ClCompile Include="..\..\wolfcrypt\src\sha.c" />
<ClCompile Include="..\..\wolfcrypt\src\sha256.c" />
<ClCompile Include="..\..\wolfcrypt\src\sha512.c" />
<ClCompile Include="..\..\wolfcrypt\src\signature.c" />
<ClCompile Include="..\..\wolfcrypt\src\srp.c" />
<ClCompile Include="..\..\wolfcrypt\src\tfm.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_encrypt.c" />
<ClCompile Include="..\..\wolfcrypt\src\wc_port.c" />
<ClCompile Include="..\..\wolfcrypt\src\wolfevent.c" />
<ClCompile Include="..\..\wolfcrypt\src\wolfmath.c" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\wolfcrypt\src\chacha_asm.asm" />
<None Include="..\..\wolfcrypt\src\chacha_asm.S" />
<None Include="..\..\wolfcrypt\src\fe_x25519_asm.S" />
<None Include="..\..\wolfcrypt\src\fp_mont_small.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_12.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_17.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_20.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_24.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_28.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_3.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_32.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_4.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_48.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_6.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_64.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_7.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_8.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_9.i" />
<None Include="..\..\wolfcrypt\src\fp_mul_comba_small_set.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_12.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_17.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_20.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_24.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_28.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_3.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_32.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_4.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_48.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_6.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_64.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_7.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_8.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_9.i" />
<None Include="..\..\wolfcrypt\src\fp_sqr_comba_small_set.i" />
<None Include="..\..\wolfcrypt\src\include.am" />
<None Include="..\..\wolfcrypt\src\poly1305_asm.asm" />
<None Include="..\..\wolfcrypt\src\poly1305_asm.S" />
<None Include="..\..\wolfcrypt\src\sha256_asm.S" />
<None Include="..\..\wolfcrypt\src\sha3_asm.S" />
<None Include="..\..\wolfcrypt\src\sha512_asm.S" />
<None Include="..\..\wolfcrypt\src\sm3_asm.S" />
<None Include="..\..\wolfcrypt\src\sp_sm2_x86_64_asm.S" />
<None Include="..\..\wolfcrypt\src\sp_x86_64_asm.asm" />
<None Include="..\..\wolfcrypt\src\sp_x86_64_asm.S" />
<None Include="..\..\wolfcrypt\src\wc_kyber_asm.S" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\wolfcrypt\src\fe_x25519_128.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{3BBA3633-A077-4A57-A242-0A22328E5CF6}</ProjectGuid>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<INtimeDseg>0</INtimeDseg>
<INtimeNode>Local</INtimeNode>
<INtimeOdir>0</INtimeOdir>
<TargetName>libwolfssl572</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<INtimeDseg>0</INtimeDseg>
<INtimeNode>Local</INtimeNode>
<INtimeOdir>0</INtimeOdir>
<TargetName>libwolfssl572</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|INtime'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PreprocessorDefinitions>DEBUG_WOLFSSL;_USRDLL;WOLFSSL_DLL;BUILDING_WOLFSSL;WOLFSSL_USER_SETTINGS;_DEBUG;INTIME_RTOS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>Async</ExceptionHandling>
<BufferSecurityCheck>true</BufferSecurityCheck>
<FunctionLevelLinking>false</FunctionLevelLinking>
<FloatingPointExceptions>false</FloatingPointExceptions>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<OpenMPSupport>false</OpenMPSupport>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<ErrorReporting>Prompt</ErrorReporting>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\..\;$(intime)\rt\include\network7;$(intime)\rt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>rt.lib;pcibus.lib;netlib.lib;clib.lib;vshelper.lib</AdditionalDependencies>
<HeapReserveSize>0</HeapReserveSize>
<Version>21076.20052</Version>
<DelayLoadDLLs>
</DelayLoadDLLs>
<GenerateManifest>false</GenerateManifest>
<AssemblyDebug>false</AssemblyDebug>
<HeapCommitSize>0</HeapCommitSize>
<StackReserveSize>0</StackReserveSize>
<StackCommitSize>0</StackCommitSize>
<TurnOffAssemblyGeneration>false</TurnOffAssemblyGeneration>
<LinkErrorReporting>PromptImmediately</LinkErrorReporting>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
</Link>
<Lib>
<OutputFile>$(SolutionDir)$(Configuration)\$(TargetName).lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|INtime'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>false</IntrinsicFunctions>
<PreprocessorDefinitions>_USRDLL;WOLFSSL_DLL;BUILDING_WOLFSSL;WOLFSSL_USER_SETTINGS;INTIME_RTOS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>Async</ExceptionHandling>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<StringPooling>true</StringPooling>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FloatingPointExceptions>false</FloatingPointExceptions>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<ErrorReporting>Prompt</ErrorReporting>
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)..\..\;$(intime)\rt\include\network7;$(intime)\rt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>None</DebugInformationFormat>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>false</GenerateDebugInformation>
<AdditionalDependencies>rt.lib;pcibus.lib;netlib.lib;clib.lib;vshelper.lib</AdditionalDependencies>
<HeapReserveSize>0</HeapReserveSize>
<Version>21076.20052</Version>
<DelayLoadDLLs>
</DelayLoadDLLs>
<GenerateManifest>false</GenerateManifest>
<AssemblyDebug>false</AssemblyDebug>
<HeapCommitSize>0</HeapCommitSize>
<StackReserveSize>0</StackReserveSize>
<StackCommitSize>0</StackCommitSize>
<LinkErrorReporting>PromptImmediately</LinkErrorReporting>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
</Link>
<Lib>
<OutputFile>$(SolutionDir)$(Configuration)\$(TargetName).lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
+5
View File
@@ -5,6 +5,11 @@ CFLAGS_NEW="-DDEBUG_WOLFSSL -I/usr/lib/gcc/x86_64-linux-gnu/$(gcc -dumpversion)/
export CFLAGS="${CFLAGS} ${CFLAGS_NEW}"
echo ${CFLAGS}
# create an empty options.h file if none exist
if [ ! -f ../../wolfssl/options.h ]; then
touch ../../wolfssl/options.h
fi
NEW_INCLUDE_PATH="$C_INCLUDE_PATH:/usr/lib/gcc/x86_64-linux-gnu/$(gcc -dumpversion)/include"
export C_INCLUDE_PATH="$NEW_INCLUDE_PATH"
+28 -25
View File
@@ -21,25 +21,25 @@ The wolfssl Project Summary is listed below and is relevant for every project.
|Board|EK-RA6M3|
|Device|R7FA6M3AH3CFC|
|Toolchain|GCC ARM Embedded|
|FSP Version|3.5.0|
|FSP Version|6.1.0|
#### Selected software components
|Components|Version|
|:--|:--|
|Board Support Package Common Files|v3.5.0|
|Arm CMSIS Version 5 - Core (M)|v5.8.0+renesas.0.fsp.3.5.0|
|FreeRTOS|v10.4.3-LTS.Patch.2+fsp.3.5.0|
|RA6M3-EK Board Support Files|v3.5.0|
|Board support package for R7FA6M3AH3CFC|v3.5.0|
|Board support package for RA6M3|v3.5.0|
|Board support package for RA6M3 - FSP Data|v3.5.0|
|FreeRTOS - Memory Management - Heap 4|v10.4.3-LTS.Patch.2+fsp.3.5.0|
|r_ether to FreeRTOS+TCP Wrapper|v3.5.0|
|Ethernet|v3.5.0|
|Ethernet PHY|v3.5.0|
|FreeRTOS+TCP|v2.3.2-LTS.Patch.1+fsp.3.5.0|
|FreeRTOS - Buffer Allocation 2|v2.3.2-LTS.Patch.1+fsp.3.5.0|
|Board Support Package Common Files|v6.1.0|
|Arm CMSIS Version 5 - Core (M)|v6.1.0+renesas.0.fsp.6.1.0|
|FreeRTOS|v11.1.0+fsp.6.1.0|
|RA6M3-EK Board Support Files|v6.1.0|
|Board support package for R7FA6M3AH3CFC|v6.1.0|
|Board support package for RA6M3|v6.1.0|
|Board support package for RA6M3 - FSP Data|v6.1.0|
|FreeRTOS - Memory Management - Heap 4|v11.1.0+fsp.6.1.0|
|r_ether to FreeRTOS+TCP Wrapper|v6.1.0|
|Ethernet|v6.1.0|
|Ethernet PHY|v6.1.0|
|FreeRTOS+TCP|v4.3.3+fsp.6.1.0|
|FreeRTOS - Buffer Allocation 2|v4.3.3+fsp.6.1.0|
## Setup Steps
@@ -51,11 +51,11 @@ The following steps explain how to generate the missing files and where to place
1.) Create a 'dummy' Renesas RA C Library Project.
+ Click File->New->`RA C/C++ Project`
+ Click `Renesas RA C Library Project`. Click Next
+ Enter `dummy_library` as the project name. Click Next.
+ Under `Board: Custom User Board`, select `EK-RA6M3`.
+ Under `RTOS: No RTOS`, select `FreeRTOS`.
+ Click Next. Select `FreeRTOS - Minimal - Static Allocation`
+ Select `None`. Click Next.
+ Select `Static Library`. Under `RTOS: No RTOS`, select `FreeRTOS`. Click Next
+ Select `FreeRTOS - Minimal - Static Allocation`
+ Click Finish.
+ Open Smart Configurator by clicking configuration.xml in the project
+ Go to `BSP` tab and increase Heap Size under `RA Common` on Properties page, e.g. 0x1000
@@ -64,17 +64,18 @@ The following steps explain how to generate the missing files and where to place
|Property|Value|
|:--|:--|
|Thread Symbol|wolfssl_tst_thread|
|Thread Name|wolf_tst_thread|
|Thread Symbol|wolfssl_tst_thd|
|Thread Name|wolf_tst_thd|
|Thread Stack size|increase depending on your environment<br> e.g. 0xA000|
|Thread MemoryAllocation|Dynamic|
|Thread Memory Allocation Support Dynamic Allocation|Enabled|
|Memory Allocation Total Heap Size|increase depending on your environment<br> e.g. 0x20000|
|Common General Use Mutexes|Enabled|
|Common General Enable Backward Compatibility|Enabled|
|Common Memory Allocation Support Dynamic Allocation|Enabled|
|Common Memory Allocation Total Heap Size|increase depending on your environment<br> e.g. 0x20000|
+ Add `Heap 4` stack to sce_tst_thread from `New Stack` -> `RTOS` -> `FreeRTOS Heap 4`
+ Add `FreeRTOS + TCP` stack to sce_tst_thread from `New Stack` -> `Networking` -> `FreeRTOS+TCP` and set properties
+ Add `FreeRTOS + TCP` stack to sce_tst_thread from `New Stack` -> `Networking` -> `FreeRTOS+TCP` and set properties. Go to `Add Ethernet Driver` box, and click the box to select `New` -> `Ethernet (r_ether)`
. Set properties.
|Property|Value|
|:--|:--|
@@ -84,9 +85,10 @@ The following steps explain how to generate the missing files and where to place
2.) Create a 'dummy' Renesas RA C Project Using RA Library.
+ Click File->New->`RA C/C++ Project`
+ Click `Renesas RA C Project Using RA Library`. Click Next
+ Enter `dummy_app` as the project name. Click Next.
+ Under `Executable Using an RA Static library`
+ Under `Board: Custom User Board`, select `EK-RA6M3`.
+ Select `None`. Click Next.
+ Select `Executable Using an RA Static library`, and `No RTOS`. Click Finish
+ Enter `dummy_app` as the project name. Click Next
+ Select `dummy_library` from Select Renesas RA library project.
+ Click Finish.
@@ -125,6 +127,7 @@ The following steps explain how to generate the missing files and where to place
+ Select and Copy the following folder inside dummy_app\
`script/`
`Debug/`
+ Paste the copied folders into each executable projects which are Crypt test, benchmark, client and server projects\
+ The `dummy_app` project can now be deleted.
@@ -54,7 +54,7 @@
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1066354393" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.1749606599" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.hard" valueType="enumerated"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.1387289429" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
<builder buildPath="${workspace_loc:/benchmark_wolfCrypt_RA6M3G}/Debug" id="com.renesas.cdt.managedbuild.gnuarm.builder.101353899" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<builder buildPath="${workspace_loc:/benchmark_wolfCrypt_RA6M3G}/Debug" id="com.renesas.cdt.managedbuild.gnuarm.builder.101353899" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make ビルダー" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<tool commandLinePattern="${SECURE_BUILD_COMMAND} ${COMMAND} ${cross_toolchain_flags} ${FLAGS} -c ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.117420076" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1915546252" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.541441314" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
@@ -93,6 +93,10 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra_cfg/fsp_cfg/driver}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/aws/amazon-freertos/libraries/freertos_plus/standard/freertos_plus_tcp/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/fsp/src/rm_freertos_plus_tcp}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/aws/FreeRTOS/FreeRTOS/Source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/aws/FreeRTOS/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/arm/CMSIS_6/CMSIS/Core/Include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/Debug}&quot;"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.2089894925" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_RENESAS_RA_"/>
@@ -205,7 +209,7 @@
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.860211730" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.1408755248" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.hard" valueType="enumerated"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.836244175" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
<builder buildPath="${workspace_loc:/benchmark_wolfCrypt_RA6M3G}/Release" id="com.renesas.cdt.managedbuild.gnuarm.builder.1745155981" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<builder buildPath="${workspace_loc:/benchmark_wolfCrypt_RA6M3G}/Release" id="com.renesas.cdt.managedbuild.gnuarm.builder.1745155981" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make ビルダー" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<tool commandLinePattern="${SECURE_BUILD_COMMAND} ${COMMAND} ${cross_toolchain_flags} ${FLAGS} -c ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1499452602" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1733850904" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.121988378" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
@@ -23,7 +23,7 @@
int benchmark_test(void *args);
void wolfssl_thread_entry(void *pvParameters) {
void wolfssl_tst_thd_entry(void *pvParameters) {
FSP_PARAMETER_NOT_USED(pvParameters);
initialise_monitor_handles();
benchmark_test(0);
@@ -54,7 +54,7 @@
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.944256802" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.1728690592" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.hard" valueType="enumerated"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.847055546" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
<builder buildPath="${workspace_loc:/client_wolfSSL_RA6M3}/Debug" id="com.renesas.cdt.managedbuild.gnuarm.builder.2111237750" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<builder buildPath="${workspace_loc:/client_wolfSSL_RA6M3}/Debug" id="com.renesas.cdt.managedbuild.gnuarm.builder.2111237750" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make ビルダー" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<tool commandLinePattern="${SECURE_BUILD_COMMAND} ${COMMAND} ${cross_toolchain_flags} ${FLAGS} -c ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1877074676" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1521871638" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.1475977607" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
@@ -99,6 +99,10 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/aws/amazon-freertos/libraries/freertos_plus/standard/freertos_plus_tcp/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/fsp/src/rm_freertos_plus_tcp}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra_cfg/fsp_cfg/driver}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/aws/FreeRTOS/FreeRTOS/Source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/aws/FreeRTOS/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/arm/CMSIS_6/CMSIS/Core/Include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/Debug}&quot;"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.11889101" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_RENESAS_RA_"/>
@@ -206,7 +210,7 @@
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1224145047" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.850599989" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.hard" valueType="enumerated"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.171223350" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
<builder buildPath="${workspace_loc:/client_wolfSSL_RA6M3}/Release" id="com.renesas.cdt.managedbuild.gnuarm.builder.8777288" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<builder buildPath="${workspace_loc:/client_wolfSSL_RA6M3}/Release" id="com.renesas.cdt.managedbuild.gnuarm.builder.8777288" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make ビルダー" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<tool commandLinePattern="${SECURE_BUILD_COMMAND} ${COMMAND} ${cross_toolchain_flags} ${FLAGS} -c ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.342148693" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1084564839" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.1173403640" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
@@ -34,20 +34,7 @@
#include <stdio.h>
#include "hal_data.h"
/* the function is called just before main() to set up pins */
/* this needs to be called to setup IO Port */
void R_BSP_WarmStart (bsp_warm_start_event_t event)
{
if (BSP_WARM_START_POST_C == event) {
/* C runtime environment and system clocks are setup. */
/* Configure pins. */
R_IOPORT_Open(&g_ioport_ctrl, g_ioport.p_cfg);
}
}
void wolfssl_thread_entry(void *pvParameters) {
void wolfssl_tst_thd_entry(void *pvParameters) {
FSP_PARAMETER_NOT_USED(pvParameters);
/* FreeRTOS+TCP Objects */
@@ -54,7 +54,7 @@
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.971503214" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.580641031" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.hard" valueType="enumerated"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.213566214" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
<builder buildPath="${workspace_loc:/server_wolfSSL_RA6M3}/Debug" id="com.renesas.cdt.managedbuild.gnuarm.builder.967969835" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<builder buildPath="${workspace_loc:/server_wolfSSL_RA6M3}/Debug" id="com.renesas.cdt.managedbuild.gnuarm.builder.967969835" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make ビルダー" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<tool commandLinePattern="${SECURE_BUILD_COMMAND} ${COMMAND} ${cross_toolchain_flags} ${FLAGS} -c ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.79325762" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1806607058" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.828777158" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
@@ -99,6 +99,10 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/aws/amazon-freertos/libraries/freertos_plus/standard/freertos_plus_tcp/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/fsp/src/rm_freertos_plus_tcp}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra_cfg/fsp_cfg/driver}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/aws/FreeRTOS/FreeRTOS/Source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/aws/FreeRTOS/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/arm/CMSIS_6/CMSIS/Core/Include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/Debug}&quot;"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.924310622" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_RENESAS_RA_"/>
@@ -207,7 +211,7 @@
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.284360640" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.534529996" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.hard" valueType="enumerated"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.683276783" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
<builder buildPath="${workspace_loc:/server_wolfSSL_RA6M3}/Release" id="com.renesas.cdt.managedbuild.gnuarm.builder.606246866" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<builder buildPath="${workspace_loc:/server_wolfSSL_RA6M3}/Release" id="com.renesas.cdt.managedbuild.gnuarm.builder.606246866" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make ビルダー" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<tool commandLinePattern="${SECURE_BUILD_COMMAND} ${COMMAND} ${cross_toolchain_flags} ${FLAGS} -c ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.399996946" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.617058558" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.1734515939" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
@@ -32,20 +32,8 @@
#include <stdio.h>
#include "hal_data.h"
/* the function is called just before main() to set up pins */
/* this needs to be called to setup IO Port */
void R_BSP_WarmStart (bsp_warm_start_event_t event)
{
if (BSP_WARM_START_POST_C == event) {
/* C runtime environment and system clocks are setup. */
/* Configure pins. */
R_IOPORT_Open(&g_ioport_ctrl, g_ioport.p_cfg);
}
}
void wolfssl_thread_entry(void *pvParameters) {
void wolfssl_tst_thd_entry(void *pvParameters) {
FSP_PARAMETER_NOT_USED(pvParameters);
/* FreeRTOS+TCP parameters and objects */
@@ -54,7 +54,7 @@
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1533237073" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.1986600717" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.hard" valueType="enumerated"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.330510769" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
<builder buildPath="${workspace_loc:/test_wolfCrypt_RA6M3G}/Debug" id="com.renesas.cdt.managedbuild.gnuarm.builder.381371815" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<builder buildPath="${workspace_loc:/test_wolfCrypt_RA6M3G}/Debug" id="com.renesas.cdt.managedbuild.gnuarm.builder.381371815" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make ビルダー" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<tool commandLinePattern="${SECURE_BUILD_COMMAND} ${COMMAND} ${cross_toolchain_flags} ${FLAGS} -c ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.563593978" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.9644899" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.1207837318" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" useByScannerDiscovery="true" valueType="includePath">
@@ -78,6 +78,7 @@
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.97449013" name="Language standard" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std" useByScannerDiscovery="true" value="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.c99" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.1182988840" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../common&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/Debug}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../../../../../&quot;"/>
<listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/fsp/inc}&quot;"/>
@@ -91,6 +92,9 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra_cfg/aws}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra_cfg/fsp_cfg/bsp}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra_cfg/fsp_cfg/driver}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/aws/FreeRTOS/FreeRTOS/Source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/aws/FreeRTOS/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3/ra/arm/CMSIS_6/CMSIS/Core/Include}&quot;"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.1484906637" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_RENESAS_RA_"/>
@@ -199,7 +203,7 @@
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.226581298" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.1814264128" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.hard" valueType="enumerated"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.1908205217" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
<builder buildPath="${workspace_loc:/test_wolfCrypt_RA6M3G}/Release" id="com.renesas.cdt.managedbuild.gnuarm.builder.1012539774" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<builder buildPath="${workspace_loc:/test_wolfCrypt_RA6M3G}/Release" id="com.renesas.cdt.managedbuild.gnuarm.builder.1012539774" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make ビルダー" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gnuarm.builder"/>
<tool commandLinePattern="${SECURE_BUILD_COMMAND} ${COMMAND} ${cross_toolchain_flags} ${FLAGS} -c ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1216775450" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1297918163" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.228561926" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
@@ -22,7 +22,7 @@
#include <wolfssl/wolfcrypt/settings.h>
#include "wolfcrypt/test/test.h"
void wolfssl_thread_entry(void* pvParameters)
void wolfssl_tst_thd_entry(void* pvParameters)
{
FSP_PARAMETER_NOT_USED (pvParameters);
/* Benchmark output is displayed to Renesas Debug Virtual Console */
@@ -67,6 +67,8 @@
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.816669574" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs.1258533267" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_RENESAS_RA_"/>
<listOptionValue builtIn="false" value="_RA_CORE=CM4"/>
<listOptionValue builtIn="false" value="_RA_ORDINAL=1"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.1781159522" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/fsp/inc}&quot;"/>
@@ -84,6 +86,10 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/aws/amazon-freertos/libraries/freertos_plus/standard/freertos_plus_tcp/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra_cfg/fsp_cfg/driver}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;.&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/aws/FreeRTOS/FreeRTOS/Source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/arm/CMSIS_6/CMSIS/Core/Include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/aws/FreeRTOS/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/include}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.1944945543" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
</tool>
@@ -92,6 +98,8 @@
<listOptionValue builtIn="false" value="_RENESAS_RA_"/>
<listOptionValue builtIn="false" value="WOLFSSL_RENESAS_RA6M3G"/>
<listOptionValue builtIn="false" value="WOLFSSL_USER_SETTINGS"/>
<listOptionValue builtIn="false" value="_RA_CORE=CM4"/>
<listOptionValue builtIn="false" value="_RA_ORDINAL=1"/>
</option>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.1681064330" name="Language standard" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std" useByScannerDiscovery="true" value="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.c99" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.891615582" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">
@@ -113,6 +121,10 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra_cfg/fsp_cfg/driver}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M3G/ra/aws/amazon-freertos/libraries/freertos_plus/standard/freertos_plus_tcp/source/portable}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;.&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/aws/FreeRTOS/FreeRTOS/Source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/arm/CMSIS_6/CMSIS/Core/Include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/aws/FreeRTOS/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/include}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1304089417" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
</tool>
@@ -151,6 +163,116 @@
</tool>
</toolChain>
</folderInfo>
<folderInfo id="com.renesas.cdt.managedbuild.gnuarm.config.lib.debug.1761706989./ra/aws" name="aws" resourcePath="ra/aws">
<toolChain id="com.renesas.cdt.managedbuild.gnuarm.toolchain.lib.debug.91030017" name="GCC ARM Embedded" superClass="com.renesas.cdt.managedbuild.gnuarm.toolchain.lib.debug" unusedChildren="">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.2001249505.1108024184" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.2001249505"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.377600243.1900454493" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.377600243"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.2017676735.165034946" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.2017676735"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.576805455.752800906" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.576805455"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.45850729.1450135011" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.45850729"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.686367944.1219290554" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.686367944"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.1933780576.473553102" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.1933780576"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.1119124835.1042603563" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.1119124835"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.1672302679.202628566" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.1672302679"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.804524944.794330601" name="Arm family (-mcpu)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.804524944"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.639185237.1688476763" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.639185237"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.713463303.979675815" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.713463303"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.1410723886.1415411329" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.1410723886"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.1060276466.1385698993" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.1060276466"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.165975284.293508603" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.165975284"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1060167818.1218186697" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1060167818"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.481833856.2065255469" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.481833856"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1526590825.1167692129" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1526590825"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.1723421995.1511521612" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.1723421995"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.6541130.426559080" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.6541130"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1151421133.1442105199" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1151421133"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.1881347657.667334624" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.1881347657"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1076035654.108668343" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1076035654"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.185856133.884135613" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.185856133"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.310685565.389236246" name="Warn on various unused elements (-Wunused)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.310685565"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.739177720.573498222" name="Warn on uninitialized variables (-Wuninitialised)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.739177720"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.901972467.1653210091" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.901972467"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.1056252107.2053737810" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.1056252107"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.588700457.1328782573" name="Warn on undeclared global function (-Wmissing-declaration)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.588700457"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.1597869170.1594918566" name="Warn on implicit conversions (-Wconversion)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.1597869170"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.1142953678.1050407566" name="Warn if pointer arithmetic (-Wpointer-arith)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.1142953678"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.1255373971.2040735761" name="Warn if shadowed variable (-Wshadow)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.1255373971"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.74885269.1758863180" name="Warn if suspicious logical ops (-Wlogical-op)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.74885269"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.624464928.58240205" name="Warn if struct is returned (-Wagreggate-return)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.624464928"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.2007958701.414810561" name="Warn if floats are compared as equal (-Wfloat-equal)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.2007958701"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1540347333" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1937788536">
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.1964016942" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1440201808" name="GNU ARM Cross C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1195007717">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other.1444318747" name="Other compiler flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other" value="-w" valueType="string"/>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.1814244990" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1435664558" name="GNU ARM Cross C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1212762249">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other.1974426833" name="Other compiler flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other" value="-w" valueType="string"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.880285696" name="GNU ARM Cross C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.1185911797"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.12606855" name="GNU ARM Cross C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.311751680"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.1475653493" name="GNU ARM Cross Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.273078254"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.1416259339" name="GNU ARM Cross Create Flash Image" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.227390892"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.282020455" name="GNU ARM Cross Create Listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.545796882"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.1865404358" name="GNU ARM Cross Print Size" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.699161355"/>
</toolChain>
</folderInfo>
<folderInfo id="com.renesas.cdt.managedbuild.gnuarm.config.lib.debug.1761706989./ra/arm" name="arm" resourcePath="ra/arm">
<toolChain id="com.renesas.cdt.managedbuild.gnuarm.toolchain.lib.debug.343535006" name="GCC ARM Embedded" superClass="com.renesas.cdt.managedbuild.gnuarm.toolchain.lib.debug" unusedChildren="">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.2001249505.1450147824" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.2001249505"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.377600243.1675348043" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.377600243"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.2017676735.835209035" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.2017676735"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.576805455.344641597" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.576805455"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.45850729.2035890685" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.45850729"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.686367944.2063211290" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.686367944"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.1933780576.1819176375" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.1933780576"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.1119124835.777780299" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.1119124835"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.1672302679.1925510550" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.1672302679"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.804524944.943958585" name="Arm family (-mcpu)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.804524944"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.639185237.1145217310" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.639185237"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.713463303.640847764" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.713463303"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.1410723886.1322257809" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.1410723886"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.1060276466.1442097510" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.1060276466"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.165975284.839224690" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.165975284"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1060167818.1097605179" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1060167818"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.481833856.1579147089" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.481833856"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1526590825.480644907" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1526590825"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.1723421995.166049991" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.1723421995"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.6541130.119724110" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.6541130"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1151421133.318895847" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1151421133"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.1881347657.669835270" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.1881347657"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1076035654.1469939414" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1076035654"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.185856133.955906304" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.185856133"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.310685565.497506214" name="Warn on various unused elements (-Wunused)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.310685565"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.739177720.1949570024" name="Warn on uninitialized variables (-Wuninitialised)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.739177720"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.901972467.1484626281" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.901972467"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.1056252107.747698365" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.1056252107"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.588700457.547912405" name="Warn on undeclared global function (-Wmissing-declaration)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.588700457"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.1597869170.1779195624" name="Warn on implicit conversions (-Wconversion)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.1597869170"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.1142953678.1810713340" name="Warn if pointer arithmetic (-Wpointer-arith)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.1142953678"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.1255373971.1147375845" name="Warn if shadowed variable (-Wshadow)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.1255373971"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.74885269.1851840902" name="Warn if suspicious logical ops (-Wlogical-op)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.74885269"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.624464928.2104300534" name="Warn if struct is returned (-Wagreggate-return)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.624464928"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.2007958701.1410330719" name="Warn if floats are compared as equal (-Wfloat-equal)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.2007958701"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1683495442" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.1937788536">
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.1845970605" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1652269700" name="GNU ARM Cross C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1195007717">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other.953419839" name="Other compiler flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other" value="-w" valueType="string"/>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.331909678" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.735151687" name="GNU ARM Cross C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1212762249">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other.2121414228" name="Other compiler flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other" value="-w" valueType="string"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.232454180" name="GNU ARM Cross C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.1185911797"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.1276557083" name="GNU ARM Cross C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.311751680"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.1705617811" name="GNU ARM Cross Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.273078254"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.909620799" name="GNU ARM Cross Create Flash Image" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.227390892"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.1096946542" name="GNU ARM Cross Create Listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.545796882"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.510843886" name="GNU ARM Cross Print Size" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.699161355"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry excluding="common|wolfcrypt|src|src/crl.c|src/bio.c|ra|ra_gen" flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name=""/>
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="ra"/>
@@ -230,6 +352,8 @@
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs.564659763" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_RENESAS_RA_"/>
<listOptionValue builtIn="false" value="WOLFSSL_RENESAS_RA6M3G"/>
<listOptionValue builtIn="false" value="_RA_CORE=CM4"/>
<listOptionValue builtIn="false" value="_RA_ORDINAL=1"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.373460777" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/fsp/inc}&quot;"/>
@@ -248,6 +372,10 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/aws/amazon-freertos/libraries/freertos_plus/standard/freertos_plus_tcp/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra_cfg/fsp_cfg/driver}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;.&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/aws/FreeRTOS/FreeRTOS/Source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/arm/CMSIS_6/CMSIS/Core/Include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/aws/FreeRTOS/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/include}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.1333795089" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
</tool>
@@ -260,6 +388,8 @@
<listOptionValue builtIn="false" value="configUSE_MUTEXES=1"/>
<listOptionValue builtIn="false" value="configSUPPORT_STATIC_ALLOCATION=1"/>
<listOptionValue builtIn="false" value="configMEMORY_DYNAMIC_ALLOCATION=1"/>
<listOptionValue builtIn="false" value="_RA_CORE=CM4"/>
<listOptionValue builtIn="false" value="_RA_ORDINAL=1"/>
</option>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.4825216" name="Language standard" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std" useByScannerDiscovery="true" value="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.c99" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.947802473" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">
@@ -278,6 +408,10 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/aws/amazon-freertos/libraries/freertos_plus/standard/freertos_plus_tcp/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra_cfg/fsp_cfg/driver}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;.&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/aws/FreeRTOS/FreeRTOS/Source/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/arm/CMSIS_6/CMSIS/Core/Include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/ra/aws/FreeRTOS/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/source/include}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.179918099" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
</tool>
@@ -316,6 +450,116 @@
</tool>
</toolChain>
</folderInfo>
<folderInfo id="com.renesas.cdt.managedbuild.gnuarm.config.lib.release.764611173./ra/aws" name="aws" resourcePath="ra/aws">
<toolChain id="com.renesas.cdt.managedbuild.gnuarm.toolchain.lib.release.841262386" name="GCC ARM Embedded" superClass="com.renesas.cdt.managedbuild.gnuarm.toolchain.lib.release" unusedChildren="">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.108708741.268489898" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.108708741"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.493159718.595308363" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.493159718"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.510155687.185182196" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.510155687"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.1446253115.1754931245" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.1446253115"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.799994481.222621468" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.799994481"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.807491339.38834977" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.807491339"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.295018593.953158158" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.295018593"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.1246069395.688900980" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.1246069395"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.490030095.1559633018" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.490030095"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.2103553360.105365571" name="Arm family (-mcpu)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.2103553360"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.1893374652.1806828881" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.1893374652"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.469714856.1777921757" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.469714856"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.2016546203.1029662828" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.2016546203"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.118965071.623619160" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.118965071"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.2079701456.669770466" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.2079701456"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1564469790.999346301" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1564469790"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.1768209294.309178141" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.1768209294"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1832870324.1502596531" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1832870324"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.674776333.412791702" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.674776333"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.477658091.1732565883" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.477658091"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1191230920.101713400" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1191230920"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.108292829.880634767" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.108292829"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1112374071.676068018" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1112374071"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.1555340921.1992175329" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.1555340921"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.586319347.2002697044" name="Warn on various unused elements (-Wunused)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.586319347"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.99678983.543790376" name="Warn on uninitialized variables (-Wuninitialised)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.99678983"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.1599378543.70059659" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.1599378543"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.635741850.977893998" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.635741850"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.1565105596.481834515" name="Warn on undeclared global function (-Wmissing-declaration)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.1565105596"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.902138649.2070603189" name="Warn on implicit conversions (-Wconversion)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.902138649"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.438745077.1946313977" name="Warn if pointer arithmetic (-Wpointer-arith)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.438745077"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.2007533808.290542154" name="Warn if shadowed variable (-Wshadow)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.2007533808"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.1202316177.1021894556" name="Warn if suspicious logical ops (-Wlogical-op)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.1202316177"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.1438675558.1691638130" name="Warn if struct is returned (-Wagreggate-return)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.1438675558"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.1570502611.1736056155" name="Warn if floats are compared as equal (-Wfloat-equal)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.1570502611"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.174676040" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.315036765">
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.746965816" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1200455962" name="GNU ARM Cross C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1007215142">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other.453274674" name="Other compiler flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other" value="-w" valueType="string"/>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.99032971" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.1968377712" name="GNU ARM Cross C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.619807753">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other.470700972" name="Other compiler flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other" value="-w" valueType="string"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.851780040" name="GNU ARM Cross C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.918399890"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.1866494507" name="GNU ARM Cross C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.1156606973"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.1864013800" name="GNU ARM Cross Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.219033935"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.408871102" name="GNU ARM Cross Create Flash Image" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.840367062"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.1594321218" name="GNU ARM Cross Create Listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.1457763339"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.1270950787" name="GNU ARM Cross Print Size" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.993906098"/>
</toolChain>
</folderInfo>
<folderInfo id="com.renesas.cdt.managedbuild.gnuarm.config.lib.release.764611173./ra/arm" name="arm" resourcePath="ra/arm">
<toolChain id="com.renesas.cdt.managedbuild.gnuarm.toolchain.lib.release.1304302803" name="GCC ARM Embedded" superClass="com.renesas.cdt.managedbuild.gnuarm.toolchain.lib.release" unusedChildren="">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.108708741.724359540" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.108708741"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.493159718.409707622" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.493159718"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.510155687.223231316" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.510155687"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.1446253115.1425950636" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.1446253115"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.799994481.1840680707" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.799994481"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.807491339.156648222" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.807491339"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.295018593.703235600" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.295018593"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.1246069395.1067049168" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.1246069395"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.490030095.469915089" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.490030095"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.2103553360.824278182" name="Arm family (-mcpu)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.2103553360"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.1893374652.1981233456" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.1893374652"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.469714856.1327471490" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.469714856"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.2016546203.1783964207" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.2016546203"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.118965071.1509550005" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.118965071"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.2079701456.971576282" name="Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.ar.2079701456"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1564469790.1186674688" name="Hex/Bin converter" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objcopy.1564469790"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.1768209294.1087918809" name="Listing generator" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.objdump.1768209294"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1832870324.1065544037" name="Size command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.size.1832870324"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.674776333.1694531840" name="Build command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.make.674776333"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.477658091.1609130535" name="Remove command" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.rm.477658091"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1191230920.2023387958" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1191230920"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.108292829.2036079893" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.108292829"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1112374071.1379940229" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.1112374071"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.1555340921.101483448" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.1555340921"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.586319347.1969593843" name="Warn on various unused elements (-Wunused)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.586319347"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.99678983.601301996" name="Warn on uninitialized variables (-Wuninitialised)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.99678983"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.1599378543.520690415" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.1599378543"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.635741850.278085474" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.635741850"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.1565105596.989240394" name="Warn on undeclared global function (-Wmissing-declaration)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.1565105596"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.902138649.990632019" name="Warn on implicit conversions (-Wconversion)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.902138649"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.438745077.1488784842" name="Warn if pointer arithmetic (-Wpointer-arith)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.438745077"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.2007533808.1452456768" name="Warn if shadowed variable (-Wshadow)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.2007533808"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.1202316177.239403668" name="Warn if suspicious logical ops (-Wlogical-op)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.1202316177"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.1438675558.1096318820" name="Warn if struct is returned (-Wagreggate-return)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.1438675558"/>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.1570502611.777405987" name="Warn if floats are compared as equal (-Wfloat-equal)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.1570502611"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.815468667" name="GNU ARM Cross Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.315036765">
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.1447635171" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.423579013" name="GNU ARM Cross C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.1007215142">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other.1744967881" name="Other compiler flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other" value="-w" valueType="string"/>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.333027275" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.930430993" name="GNU ARM Cross C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.619807753">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other.1898228441" name="Other compiler flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other" value="-w" valueType="string"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.220065215" name="GNU ARM Cross C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.918399890"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.921229835" name="GNU ARM Cross C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.1156606973"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.1275848948" name="GNU ARM Cross Archiver" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.archiver.219033935"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.2073472652" name="GNU ARM Cross Create Flash Image" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createflash.840367062"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.1016269343" name="GNU ARM Cross Create Listing" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.createlisting.1457763339"/>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.354014570" name="GNU ARM Cross Print Size" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.printsize.993906098"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="ra"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="ra_gen"/>
+47 -41
View File
@@ -24,29 +24,29 @@ The wolfssl Project Summary is listed below and is relevant for every project.
|Board|EK-RA6M4|
|Device|R7FA6M4AF3CFB|
|Toolchain|GCC ARM Embedded|
|FSP Version|5.4.0|
|FSP Version|6.1.0|
#### Selected software components
|Components|Version|
|:--|:--|
|Board Support Package Common Files|v5.4.0|
|Secure Cryptography Engine on RA6 Protected Mode|v5.4.0|
|I/O Port|v5.4.0|
|Arm CMSIS Version 5 - Core (M)|v6.1.0+fsp.5.4.0|
|RA6M4-EK Board Support Files|v5.4.0|
|Board support package for R7FA6M4AF3CFB|v5.4.0|
|Board support package for RA6M4 - Events|v5.4.0|
|Board support package for RA6M4|v5.4.0|
|Board support package for RA6M4 - FSP Data|v5.4.0|
|FreeRTOS|v10.6.1+fsp.5.4.0|
|FreeRTOS - Memory Management - Heap 4|v10.6.1+fsp.5.4.0|
|r_ether to FreeRTOS+TCP Wrapper|v5.4.0|
|Ethernet|v5.4.0|
|Ethernet PHY|v5.4.0|
|FreeRTOS+TCP|v4.0.0+fsp.5.4.0|
|FreeRTOS - Buffer Allocation 2|v4.0.0+fsp.5.4.0|
|FreeRTOS Port|v5.4.0|
|Board Support Package Common Files|v6.1.0|
|Secure Cryptography Engine on RA6 Protected Mode|v6.1.0|
|I/O Port|v6.1.0|
|Arm CMSIS Version 5 - Core (M)|v6.1.0+fsp.6.1.0|
|RA6M4-EK Board Support Files|v6.1.0|
|Board support package for R7FA6M4AF3CFB|v6.1.0|
|Board support package for RA6M4 - Events|v6.1.0|
|Board support package for RA6M4|v6.1.0|
|Board support package for RA6M4 - FSP Data|v6.1.0|
|FreeRTOS|v11.1.0+fsp.6.1.0|
|FreeRTOS - Memory Management - Heap 4|v11.1.0+fsp.6.1.0|
|r_ether to FreeRTOS+TCP Wrapper|v6.1.0|
|Ethernet|v6.1.0|
|Ethernet PHY|v6.1.0|
|FreeRTOS+TCP|v4.3.3+fsp.6.1.0|
|FreeRTOS - Buffer Allocation 2|v4.3.3+fsp.6.1.0|
|FreeRTOS Port|v6.1.0|
## Setup Steps and Build wolfSSL Library
@@ -58,10 +58,11 @@ The wolfssl Project Summary is listed below and is relevant for every project.
2.) Create a `dummy_library` Static Library.
+ Click File->New->`RA C/C++ Project`.
+ Select `EK-RA6M4` from Drop-down list.
+ Check `Static Library`.
+ Select FreeRTOS from RTOS selection. Click Next.
+ Click File->New->`RA C/C++ Project`. Select `EK-RA6M4` from Drop-down list.
+ Select `Flat(Non-TrustZone) Project`. Click Next.
+ Select `None`. Click Next.
+ Check `Static Library`. Click Next.
+ Select `FreeRTOS` from RTOS selection. Click Next.
+ Check `FreeRTOS minimal - Static Allocation`. Click Finish.
+ Open Smart Configurator by clicking configuration.xml in the project
+ Go to `BSP` tab and increase Heap Size under `RA Common` on Properties page, e.g. 0x1000
@@ -82,7 +83,8 @@ The wolfssl Project Summary is listed below and is relevant for every project.
+ Add `Heap 4` stack to sce_tst_thread from `New Stack` -> `RTOS` -> `FreeRTOS Heap 4`
+ Add `FreeRTOS + TCP` stack to sce_tst_thread from `New Stack` -> `Networking` -> `FreeRTOS+TCP` and set properties
+ Add Ethernet Driver by clicking `Add Ethernet Driver` element and select `New` -> `Ethernet(r_ether)`
+ Increase Heap size of `RA Common`. Go to `BSP` tab and inclease `RA Common` -> `Heap size (bytes)` to 0x2000
|Property|Value|
|:--|:--|
|Network Events call vApplicationIPNetworkEventHook|Disable|
@@ -97,15 +99,15 @@ The wolfssl Project Summary is listed below and is relevant for every project.
4.) Create a 'dummy_application' Renesas RA C Project Using RA Library.
+ Click File->New->`RA C/C++ Project`.
+ Select `EK-RA6M4` from Drop-down list.
+ Check `Executable Using an RA Static Library`.
+ Select FreeRTOS from RTOS selection. Click Finish.
+ Click File->New->`RA C/C++ Project`. Select `EK-RA6M4` from Drop-down list. Click Next.
+ Select `Flat(Non-TrustZone) Project`. Click Next
+ Select `None`. Click Next
+ Check `Executable Using an RA Static Library`. Select FreeRTOS from RTOS selection. Click Finish.
+ Enter `dummy_application` as the project name. Click Next.
+ Under `RA library project`, select `wolfSSL_RA6M4`.
+ Click Finish.
+ Under `RA library project`, select `wolfSSL_RA6M4`. Click Finish.
+ Copy the following folder and file at `dummy_application` to `test_RA6M4`\
script/\
Debug/\
src/sce_tst_thread_entry.c
+ Add `sce_test()` call under /* TODO: add your own code here */ line at sce_tst_thread_entry.c
@@ -131,29 +133,33 @@ The wolfssl Project Summary is listed below and is relevant for every project.
+ To place RTT block specific area, you can add the following line to `fsp.ld`:
```
.bss :
__ram_from_flash$$ :
{
. = ALIGN(4);
__bss_start__ = .;
*(.bss*)
*(COMMON)
KEEP(*(.rtt_block)) /* <-- for SEGGER_RTT control block */
. = ALIGN(4);
__bss_end__ = .;
} > RAM
__ram_from_flash$$Base = .;__ram_from_flash$$Load = LOADADDR(__ram_from_flash$$);
/* section.ram.from_flash */
*(.ram_from_flash)
/* section.ram.code_from_flash */
*(.txt.rtt_block) /* <-- for SEGGER_RTT control block */
*(.ram_code_from_flash)
*(.data*)
*(vtable)
__ram_from_flash$$Limit = .;
}> RAM AT > FLASH
```
Also, adding the following line to `SEGGER_RTT.c`:
```
SEGGER_RTT_CB _SEGGER_RTT __attribute__((section(".rtt_block")));
SEGGER_RTT_CB _SEGGER_RTT __attribute__((section(".txt.rtt_block")));
```
As the result, you can find the following similar line in the map file.
e.g.
[test_RA6M4.map]
```
.rtt_block 0x20023648 0xa8 ./src/SEGGER_RTT/SEGGER_RTT.o
0x20023648 _SEGGER_RTT
*(.txt.rtt_block)
.txt.rtt_block
0x20000000 0xa8 ./src/SEGGER_RTT/SEGGER_RTT.o
0x20000000 _SEGGER_RTT
````
you can specify "RTT control block" to 0x20023648 by Address
OR
@@ -87,6 +87,7 @@
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.1084991557" name="Language standard" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std" useByScannerDiscovery="true" value="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.c99" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.2023903025" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/key_data}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M4/Debug}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../common&quot;"/>
<listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../../../../../&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfSSL_RA6M4/src}&quot;"/>
@@ -50,19 +50,6 @@ void abort(void);
int sce_crypt_test();
#endif
void R_BSP_WarmStart(bsp_warm_start_event_t event);
/* the function is called just before main() to set up pins */
/* this needs to be called to setup IO Port */
void R_BSP_WarmStart (bsp_warm_start_event_t event)
{
if (BSP_WARM_START_POST_C == event) {
/* C runtime environment and system clocks are setup. */
/* Configure pins. */
R_IOPORT_Open(&g_ioport_ctrl, g_ioport.p_cfg);
}
}
#if defined(TLS_CLIENT)
+1 -1
View File
@@ -1830,7 +1830,7 @@ double current_time(void)
(void) date;
/* return seconds.milliseconds */
return ((double) time.Hours * 24) + ((double) time.Minutes * 60)
return ((double) time.Hours * 3600) + ((double) time.Minutes * 60)
+ (double) time.Seconds + ((double) subsec / 1000);
}
#endif /* HAL_RTC_MODULE_ENABLED */
+10
View File
@@ -0,0 +1,10 @@
Use this file for FIPS 140-3 upcoming UPDT+OEUP and module v5.2.3, not intended
for use with any other module version, v5.2.3 exclusive (certificate # will be
add here upon issuance):
user_settings.h
This is now a legacy file used under the 140-2 program for module v4.6.2 under
now historical certificate #3389:
user_settings.h.140-2-deprecated
+2
View File
@@ -3,3 +3,5 @@
# All paths should be given relative to the root
EXTRA_DIST+= IDE/WINCE/user_settings.h
EXTRA_DIST+= IDE/WINCE/README.md
EXTRA_DIST+= IDE/WINCE/user_settings.h.140-2-deprecated
+791 -75
View File
@@ -1,63 +1,780 @@
/* user_settings.h
*
* Copyright (C) 2006-2025 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 3 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
*/
#if 1
#define OPENSSL_COEXIST
/* HKDF for engine */
#undef HAVE_HKDF
#if 1
#define HAVE_HKDF
#define HAVE_X963_KDF
#endif
#undef WOLFSSL_PUBLIC_MP
#define WOLFSSL_PUBLIC_MP
#undef NO_OLD_RNGNAME
#define NO_OLD_RNGNAME
#undef NO_OLD_WC_NAMES
#define NO_OLD_WC_NAMES
#undef NO_OLD_SSL_NAMES
#define NO_OLD_SSL_NAMES
#undef NO_OLD_SHA_NAMES
#define NO_OLD_SHA_NAMES
#undef NO_OLD_MD5_NAME
#define NO_OLD_MD5_NAME
#undef NO_OLD_SHA256_NAMES
#define NO_OLD_SHA256_NAMES
#endif
#undef WOLFSSL_SYS_CA_CERTS
#define WOLFSSL_SYS_CA_CERTS
#undef LIBWOLFSSL_GLOBAL_EXTRA_CFLAGS
#define LIBWOLFSSL_GLOBAL_EXTRA_CFLAGS
#undef HAVE_SERVER_RENEGOTIATION_INFO
#define HAVE_SERVER_RENEGOTIATION_INFO
* Copyright (C) 2006-2025 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
*/
/* Custom wolfSSL user settings for GCC ARM */
#ifndef WOLFSSL_USER_SETTINGS_H
#define WOLFSSL_USER_SETTINGS_H
#ifdef __cplusplus
extern "C" {
#endif
/* ------------------------------------------------------------------------- */
/* Platform */
/* ------------------------------------------------------------------------- */
#undef WOLFSSL_GENERAL_ALIGNMENT
#define WOLFSSL_GENERAL_ALIGNMENT 4
/* Multi-threaded support */
#undef SINGLE_THREADED
#if 0
#define SINGLE_THREADED
#else
#define ERROR_QUEUE_PER_THREAD /* if applicable otherwise comment out */
#endif
#ifdef SINGLE_THREADED
#undef NO_THREAD_LS
#define NO_THREAD_LS
#endif
#undef WOLFSSL_USER_IO
//#define WOLFSSL_USER_IO
#undef NO_WRITE_TEMP_FILES
#define NO_WRITE_TEMP_FILES
/* FIPS 140-3 OE specific section(s) */
/* Uncomment for Android devices */
#undef ANDROID_V454
/* #define ANDROID_V454 */
#ifdef ANDROID_V454
#if 1
/* To have all printouts go to the app view on the device use: */
extern int appendToTextView(const char* fmt, ...);
#undef printf
#define printf(format, ...) appendToTextView(format, ## __VA_ARGS__)
#else
#include <android/log.h>
#define WOLFLOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "wolfCrypt_android", __VA_ARGS__)
#undef printf
#define printf WOLFLOGV
#endif
#endif
/* Uncomment for WINCE 6.0 devices. NOTE: _WIN32_WCE defined by system */
#if 1
#define NO_WOLFSSL_DIR
#define WOLFSSL_NO_ATOMICS
#define WC_NO_ASYNC_THREADING
#define USE_WINDOWS_API
#define WOLFSSL_SMALL_STACK
#define MAX_SUPPORTED_THREADS 1024
#define MAX_SUPPORTED_PRIV_KEYS 1024
#define MAX_CONFIGURED_THREAD 512
#endif
/* ------------------------------------------------------------------------- */
/* Math Configuration */
/* ------------------------------------------------------------------------- */
#undef SIZEOF_LONG_LONG
#define SIZEOF_LONG_LONG 8
#undef USE_FAST_MATH
#if 1
#define USE_FAST_MATH
#undef TFM_TIMING_RESISTANT
#define TFM_TIMING_RESISTANT
#undef TFM_NO_ASM
#define TFM_NO_ASM
/* Optimizations */
//#define TFM_ARM
/* Maximum math bits (Max RSA key bits * 2) */
#undef FP_MAX_BITS
#define FP_MAX_BITS 16384
#else
#define WOLFSSL_SP_MATH_ALL
#define WOLFSSL_SP_INT_NEGATIVE
/* Maximum math bits (largest supported key bits) */
#undef SP_INT_BITS
#define SP_INT_BITS 8192
#endif
/* Wolf Single Precision Math */
#undef WOLFSSL_SP
#if 0 /* SP Assembly Speedups (wPAA) */
//#define WOLFSSL_SP
//#define WOLFSSL_SP_SMALL /* use smaller version of code */
//#define WOLFSSL_SP_1024
//#define WOLFCRYPT_HAVE_SAKKE /* Note: Sakke can be enabled with 1024-bit support */
//#define WOLFSSL_SP_4096 /* Explicitly enable 4096-bit support (2048/3072 on by default) */
//#define WOLFSSL_SP_384 /* Explicitly enable 384-bit support (others on by default) */
//#define WOLFSSL_SP_521 /* Explicitly enable 521-bit support (others on by default) */
//#define WOLFSSL_HAVE_SP_RSA
//#define WOLFSSL_HAVE_SP_DH
//#define WOLFSSL_HAVE_SP_ECC
/* If no PAA, leave out */
//#define WOLFSSL_ARMASM
//#define WOLFSSL_SP_ARM64_ASM
#endif
/* ------------------------------------------------------------------------- */
/* FIPS - Requires eval or license from wolfSSL */
/* ------------------------------------------------------------------------- */
#undef HAVE_FIPS
#if 1
#define WOLFCRYPT_FIPS_CORE_HASH_VALUE \
C149F3285397DFBD0C6720E14818475C3A50B10880EF9619463173A6D5ED15E7
/* 0F3FB6F60279949E88901E852EADF3746E92162EB3D279E4C1052FB145FB04B6 */ /* Primary Run */
/* F952A96D70E630665F11D9933C46546063FD70108E39AB62C0886F0888B656ED */ /* Cases 206, 208 and 209 */
/* BADBADBADBADBADBADBADDEADBEEFDEADBEEFDEADBEEFDEADBEEFBADBADBADBD */ /* TE05.05.07 */
/* D371272290903FB9EB78FACD3504306EC8F12342CC195950E0F516A03AA51A39 */ /* harness */
#ifdef _WIN32_WCE
#include <stdio.h>
#include <stdarg.h>
#include <time.h>
#include <windows.h>
/* Inline function for WOLFLOGV */
static int wolf_logv_internal(const char* fmt, ...) {
int n;
va_list args;
Sleep(1); /* Sleep for 1 millisecond before printing */
/* Ensure all previous buffered output is flushed */
fflush(stdout);
fflush(stderr);
va_start(args, fmt);
/* Use vfprintf for va_list arguments */
n = vfprintf(stdout, fmt, args);
va_end(args);
/* Flush immediately after printing */
fflush(stdout);
fflush(stderr);
Sleep(1); /* Sleep for 1 millisecond before printing */
return n;
}
/* Ensure printf is not defined before redefining it */
#ifdef printf
#undef printf
#endif
/* Define WOLFLOGV as the wrapper */
#define WOLFLOGV wolf_logv_internal
/* Redirect printf to WOLFLOGV (effectively wolf_logv_internal) */
#define printf WOLFLOGV
#endif
#define HAVE_FIPS
#undef HAVE_FIPS_VERSION
#define HAVE_FIPS_VERSION 5
#define HAVE_FIPS_VERSION_MAJOR HAVE_FIPS_VERSION
#undef HAVE_FIPS_VERSION_MINOR
#define HAVE_FIPS_VERSION_MINOR 2
#define HAVE_FIPS_VERSION_PATCH 3
#undef WOLFSSL_WOLFSSH
#define WOLFSSL_WOLFSSH
#undef WC_RNG_SEED_CB
#define WC_RNG_SEED_CB
#if 0
#undef NO_ATTRIBUTE_CONSTRUCTOR
#define NO_ATTRIBUTE_CONSTRUCTOR
#endif
#endif
/* ------------------------------------------------------------------------- */
/* Crypto */
/* ------------------------------------------------------------------------- */
/* RSA */
#undef NO_RSA
#if 1
/* half as much memory but twice as slow */
#undef RSA_LOW_MEM
//#define RSA_LOW_MEM
/* Enables blinding mode, to prevent timing attacks */
#if 1
#undef WC_RSA_BLINDING
#define WC_RSA_BLINDING
#else
#undef WC_NO_HARDEN
#define WC_NO_HARDEN
#endif
/* RSA PSS Support */
#if 1
#undef WC_RSA_PSS
#define WC_RSA_PSS
#undef WOLFSSL_PSS_LONG_SALT
#define WOLFSSL_PSS_LONG_SALT
#undef WOLFSSL_PSS_SALT_LEN_DISCOVER
#define WOLFSSL_PSS_SALT_LEN_DISCOVER
#endif
#if 1
#define WC_RSA_NO_PADDING
#endif
#else
#define NO_RSA
#endif
/* ECC */
#undef HAVE_ECC
#if 1
#define HAVE_ECC
/* Manually define enabled curves */
#undef ECC_USER_CURVES
//#define ECC_USER_CURVES
#ifdef ECC_USER_CURVES
/* Manual Curve Selection */
#define HAVE_ECC192
#define HAVE_ECC224
#undef NO_ECC256
#define HAVE_ECC256
#define HAVE_ECC384
#define HAVE_ECC521
#endif
/* Fixed point cache (speeds repeated operations against same private key) */
#undef FP_ECC
//#define FP_ECC
#ifdef FP_ECC
/* Bits / Entries */
#undef FP_ENTRIES
#define FP_ENTRIES 2
#undef FP_LUT
#define FP_LUT 4
#endif
/* Optional ECC calculation method */
/* Note: doubles heap usage, but slightly faster */
#undef ECC_SHAMIR
#define ECC_SHAMIR
/* Reduces heap usage, but slower */
#undef ECC_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT
#ifdef 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 */
#undef WOLFSSL_VALIDATE_ECC_IMPORT
#define WOLFSSL_VALIDATE_ECC_IMPORT /* Validate import */
#undef WOLFSSL_VALIDATE_ECC_KEYGEN
#define WOLFSSL_VALIDATE_ECC_KEYGEN /* Validate generated keys */
#undef WOLFSSL_ECDSA_SET_K
#define WOLFSSL_ECDSA_SET_K
#endif
/* Compressed Key Support */
#undef HAVE_COMP_KEY
//#define HAVE_COMP_KEY
/* 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 */
#undef FP_MAX_BITS
#define FP_MAX_BITS (256 * 2)
#else
#undef ALT_ECC_SIZE
#define ALT_ECC_SIZE
/* wolfSSL will compute the FP_MAX_BITS_ECC, but it can be overridden */
//#undef FP_MAX_BITS_ECC
//#define FP_MAX_BITS_ECC (256 * 2)
#endif
/* Speedups specific to curve */
#ifndef NO_ECC256
#undef TFM_ECC256
#define TFM_ECC256
#endif
#endif
#endif
/* DH */
#undef NO_DH
#if 1
/* Use table for DH instead of -lm (math) lib dependency */
#if 1
#define HAVE_DH_DEFAULT_PARAMS
#define WOLFSSL_DH_CONST
#define HAVE_FFDHE_2048
#define HAVE_FFDHE_3072
#define HAVE_FFDHE_4096
#define HAVE_FFDHE_6144
#define HAVE_FFDHE_8192
#endif
#ifdef HAVE_FIPS
#define WOLFSSL_VALIDATE_FFC_IMPORT
#define HAVE_FFDHE_Q
#endif
#else
#define NO_DH
#endif
/* AES */
#undef NO_AES
#if 1
#undef HAVE_AES_CBC
#define HAVE_AES_CBC
#undef HAVE_AESGCM
#define HAVE_AESGCM
/* GCM Method (slowest to fastest): GCM_SMALL, GCM_WORD32, GCM_TABLE or
* GCM_TABLE_4BIT */
#define GCM_TABLE_4BIT
#undef WOLFSSL_AES_DIRECT
#define WOLFSSL_AES_DIRECT
#undef HAVE_AES_ECB
#define HAVE_AES_ECB
#undef WOLFSSL_AES_COUNTER
#define WOLFSSL_AES_COUNTER
#undef HAVE_AESCCM
#define HAVE_AESCCM
#undef WOLFSSL_AES_OFB
#define WOLFSSL_AES_OFB
#else
#define NO_AES
#endif
/* DES3 */
#undef NO_DES3
#if 0
#if 1
#undef WOLFSSL_DES_ECB
#define WOLFSSL_DES_ECB
#endif
#else
#define NO_DES3
#endif
/* ChaCha20 / Poly1305 */
#undef HAVE_CHACHA
#undef HAVE_POLY1305
#if 0
#define HAVE_CHACHA
#define HAVE_POLY1305
/* Needed for Poly1305 */
#undef HAVE_ONE_TIME_AUTH
#define HAVE_ONE_TIME_AUTH
#endif
/* Ed25519 / Curve25519 */
#undef HAVE_CURVE25519
#undef HAVE_ED25519
#if 0
#define HAVE_CURVE25519
#define HAVE_ED25519 /* ED25519 Requires SHA512 */
/* Optionally use small math (less flash usage, but much slower) */
#if 1
#define CURVED25519_SMALL
#endif
#endif
/* ------------------------------------------------------------------------- */
/* Hashing */
/* ------------------------------------------------------------------------- */
/* Sha */
#undef NO_SHA
#if 1
/* 1k smaller, but 25% slower */
//#define USE_SLOW_SHA
#else
#define NO_SHA
#endif
/* Sha256 */
#undef NO_SHA256
#if 1
/* not unrolled - ~2k smaller and ~25% slower */
//#define USE_SLOW_SHA256
/* Sha224 */
#if 1
#define WOLFSSL_SHA224
#endif
#else
#define NO_SHA256
#endif
/* Sha512 */
#undef WOLFSSL_SHA512
#if 1
#define WOLFSSL_SHA512
#undef WOLFSSL_NOSHA512_224 /* Not in FIPS mode */
#undef WOLFSSL_NOSHA512_256 /* Not in FIPS mode */
/* Sha384 */
#undef WOLFSSL_SHA384
#if 1
#define WOLFSSL_SHA384
#endif
/* over twice as small, but 50% slower */
//#define USE_SLOW_SHA512
#endif
/* Sha3 */
#undef WOLFSSL_SHA3
#if 1
#define WOLFSSL_SHA3
#define Sha3 wc_Sha3
#endif
/* MD5 */
#undef NO_MD5
#if 1
#else
#define NO_MD5
#endif
/* HKDF / PRF */
#undef HAVE_HKDF
#if 1
#define HAVE_HKDF
#define WOLFSSL_HAVE_PRF
#endif
/* CMAC */
#undef WOLFSSL_CMAC
#if 1
#define WOLFSSL_CMAC
#endif
/* ------------------------------------------------------------------------- */
/* Benchmark / Test */
/* ------------------------------------------------------------------------- */
/* Use reduced benchmark / test sizes */
#undef BENCH_EMBEDDED
#define BENCH_EMBEDDED
#undef USE_CERT_BUFFERS_2048
#define USE_CERT_BUFFERS_2048
#undef USE_CERT_BUFFERS_1024
//#define USE_CERT_BUFFERS_1024
#undef USE_CERT_BUFFERS_256
#define USE_CERT_BUFFERS_256
/* ------------------------------------------------------------------------- */
/* Debugging */
/* ------------------------------------------------------------------------- */
#undef DEBUG_WOLFSSL
#undef NO_ERROR_STRINGS
#if 1
#define DEBUG_WOLFSSL
#else
#if 0
#define NO_ERROR_STRINGS
#endif
#endif
/* ------------------------------------------------------------------------- */
/* Memory */
/* ------------------------------------------------------------------------- */
/* Override Memory API's */
#if 0
#undef XMALLOC_OVERRIDE
#define XMALLOC_OVERRIDE
/* prototypes for user heap override functions */
/* Note: Realloc only required for normal math */
/* Note2: XFREE(NULL) must be properly handled */
#include <stddef.h> /* for size_t */
extern void *myMalloc(size_t n, void* heap, int type);
extern void myFree(void *p, void* heap, int type);
extern void *myRealloc(void *p, size_t n, void* heap, int type);
#define XMALLOC(n, h, t) myMalloc(n, h, t)
#define XFREE(p, h, t) myFree(p, h, t)
#define XREALLOC(p, n, h, t) myRealloc(p, n, h, t)
#endif
#if 0
/* Static memory requires fast math */
#define WOLFSSL_STATIC_MEMORY
/* Disable fallback malloc/free */
#define WOLFSSL_NO_MALLOC
#if 1
#define WOLFSSL_MALLOC_CHECK /* trap malloc failure */
#endif
#endif
/* Memory callbacks */
#if 1
#undef USE_WOLFSSL_MEMORY
#define USE_WOLFSSL_MEMORY
/* Use this to measure / print heap usage */
#if 0
#undef WOLFSSL_TRACK_MEMORY
// #define WOLFSSL_TRACK_MEMORY
#undef WOLFSSL_DEBUG_MEMORY
//#define WOLFSSL_DEBUG_MEMORY
#undef WOLFSSL_DEBUG_MEMORY_PRINT
//#define WOLFSSL_DEBUG_MEMORY_PRINT
#endif
#else
#ifndef WOLFSSL_STATIC_MEMORY
#define NO_WOLFSSL_MEMORY
/* Otherwise we will use stdlib malloc, free and realloc */
#endif
#endif
/* ------------------------------------------------------------------------- */
/* Port */
/* ------------------------------------------------------------------------- */
/* Override Current Time */
/* Allows custom "custom_time()" function to be used for benchmark */
//#define WOLFSSL_USER_CURRTIME
//#define WOLFSSL_GMTIME
//#define USER_TICKS
//extern unsigned long my_time(unsigned long* timer);
//#define XTIME my_time
/* ------------------------------------------------------------------------- */
/* RNG */
/* ------------------------------------------------------------------------- */
/* Seed Source */
/* Seed Source */
// extern int my_rng_generate_seed(unsigned char* output, int sz);
// #undef CUSTOM_RAND_GENERATE_SEED
// #define CUSTOM_RAND_GENERATE_SEED my_rng_generate_seed
/* Choose RNG method */
#if 1
/* Use built-in P-RNG (SHA256 based) with HW RNG */
/* P-RNG + HW RNG (P-RNG is ~8K) */
//#define WOLFSSL_GENSEED_FORTEST
#undef HAVE_HASHDRBG
#define HAVE_HASHDRBG
#else
#undef WC_NO_HASHDRBG
#define WC_NO_HASHDRBG
/* Bypass P-RNG and use only HW RNG */
extern int my_rng_gen_block(unsigned char* output, unsigned int sz);
#undef CUSTOM_RAND_GENERATE_BLOCK
#define CUSTOM_RAND_GENERATE_BLOCK my_rng_gen_block
#endif
/* ------------------------------------------------------------------------- */
/* Custom Standard Lib */
/* ------------------------------------------------------------------------- */
/* Allows override of all standard library functions */
#undef STRING_USER
#if 0
#define STRING_USER
#include <string.h>
#undef USE_WOLF_STRSEP
#define USE_WOLF_STRSEP
#define XSTRSEP(s1,d) wc_strsep((s1),(d))
#undef USE_WOLF_STRTOK
#define USE_WOLF_STRTOK
#define XSTRTOK(s1,d,ptr) wc_strtok((s1),(d),(ptr))
#define XSTRNSTR(s1,s2,n) mystrnstr((s1),(s2),(n))
#define XMEMCPY(d,s,l) memcpy((d),(s),(l))
#define XMEMSET(b,c,l) memset((b),(c),(l))
#define XMEMCMP(s1,s2,n) memcmp((s1),(s2),(n))
#define XMEMMOVE(d,s,l) memmove((d),(s),(l))
#define XSTRLEN(s1) strlen((s1))
#define XSTRNCPY(s1,s2,n) strncpy((s1),(s2),(n))
#define XSTRSTR(s1,s2) strstr((s1),(s2))
#define XSTRNCMP(s1,s2,n) strncmp((s1),(s2),(n))
#define XSTRNCAT(s1,s2,n) strncat((s1),(s2),(n))
#define XSTRNCASECMP(s1,s2,n) strncasecmp((s1),(s2),(n))
#define XSNPRINTF snprintf
#endif
/* ------------------------------------------------------------------------- */
/* Enable Features */
/* ------------------------------------------------------------------------- */
#undef WOLFSSL_ASN_TEMPLATE
#define WOLFSSL_ASN_TEMPLATE
#undef WOLFSSL_ASN_PRINT
#define WOLFSSL_ASN_PRINT
#undef WOLFSSL_TLS13
#if 1
#define WOLFSSL_TLS13
#endif
#undef WOLFSSL_KEY_GEN
#if 1
#define WOLFSSL_KEY_GEN
#endif
#undef KEEP_PEER_CERT
//#define KEEP_PEER_CERT
#undef HAVE_TLS_EXTENSIONS
#define HAVE_TLS_EXTENSIONS
#undef HAVE_EXTENDED_MASTER
#define HAVE_EXTENDED_MASTER
#undef HAVE_SUPPORTED_CURVES
#define HAVE_SUPPORTED_CURVES
#undef WOLFSSL_BASE64_ENCODE
#define WOLFSSL_BASE64_ENCODE
#undef WOLFSSL_NO_HASH_RAW
#define WOLFSSL_NO_HASH_RAW
/* TLS Session Cache */
#if 0
#define SMALL_SESSION_CACHE
#else
#define NO_SESSION_CACHE
#endif
#undef OPENSSL_EXTRA
//#define OPENSSL_EXTRA
#undef WOLFSSL_DER_LOAD
#define WOLFSSL_DER_LOAD
#undef HAVE_SESSION_TICKET
#define HAVE_SESSION_TICKET
#undef HAVE_EX_DATA
#define HAVE_EX_DATA
#undef HAVE_ENCRYPT_THEN_MAC
#define HAVE_ENCRYPT_THEN_MAC
#undef WOLFSSL_CERT_GEN
//#define WOLFSSL_CERT_GEN
#undef ATOMIC_USER
#define ATOMIC_USER
#undef HAVE_SECRET_CALLBACK
#define HAVE_SECRET_CALLBACK
/* wolfEngine */
#if 1
#define OPENSSL_COEXIST
/* HKDF for engine */
#undef HAVE_HKDF
#if 1
#define HAVE_HKDF
#define HAVE_X963_KDF
#endif
#undef WOLFSSL_PUBLIC_MP
#define WOLFSSL_PUBLIC_MP
#undef NO_OLD_RNGNAME
#define NO_OLD_RNGNAME
#undef NO_OLD_WC_NAMES
#define NO_OLD_WC_NAMES
#undef NO_OLD_SSL_NAMES
#define NO_OLD_SSL_NAMES
#undef NO_OLD_SHA_NAMES
#define NO_OLD_SHA_NAMES
#undef NO_OLD_MD5_NAME
#define NO_OLD_MD5_NAME
#undef NO_OLD_SHA256_NAMES
#define NO_OLD_SHA256_NAMES
#endif
#undef WOLFSSL_SYS_CA_CERTS
#define WOLFSSL_SYS_CA_CERTS
#undef LIBWOLFSSL_GLOBAL_EXTRA_CFLAGS
#define LIBWOLFSSL_GLOBAL_EXTRA_CFLAGS
#undef HAVE_SERVER_RENEGOTIATION_INFO
#define HAVE_SERVER_RENEGOTIATION_INFO
/* ------------------------------------------------------------------------- */
/* Disable Features */
@@ -135,27 +852,26 @@
#define WOLFSSL_NO_SHAKE256
/* wolfSSL engineering ACVP algo and operational testing only (Default: Off) */
#if 1
#undef WOLFSSL_PUBLIC_MP
#if 0
#define WOLFSSL_PUBLIC_MP
#undef OPTEST_LOGGING_ENABLED
//#define OPTEST_LOGGING_ENABLED
#undef OPTEST_INVALID_LOGGING_ENABLED
//#define OPTEST_INVALID_LOGGING_ENABLED
#undef NO_MAIN_OPTEST_DRIVER
#define NO_MAIN_OPTEST_DRIVER
#undef DEBUG_FIPS_VERBOSE
#define NO_WRITE_TEMP_FILES
#define WORKING_WITH_AEGISOLVE
#define USE_CERT_BUFFERS_2048
#define USE_CERT_BUFFERS_256
#define OPTEST_LOGGING_ENABLED
#define DEBUG_FIPS_VERBOSE
#undef HAVE_FORCE_FIPS_FAILURE
#define OPTEST_RUNNING_ORGANIC
#define OPTEST_INVALID_LOGGING_ENABLED
#define HAVE_FORCE_FIPS_FAILURE
#undef NO_WRITE_TEMP_FILES
#define NO_WRITE_TEMPT_FILES
#define DEEPLY_EMBEDDED
#define OPTEST_LOG_TE_MAPPING
#define OEUP_V523
#define FULL_SUBMISSION
#define NO_MAIN_DRIVER
#define WC_DECLARE_NOTOK
#define PRINTING_ZS_CRASHES
#define WOLFSSL_SMALL_STACK
#endif
#ifdef __cplusplus
+166
View File
@@ -0,0 +1,166 @@
/* user_settings.h
*
* Copyright (C) 2006-2025 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 3 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
*/
#if 1
#define OPENSSL_COEXIST
/* HKDF for engine */
#undef HAVE_HKDF
#if 1
#define HAVE_HKDF
#define HAVE_X963_KDF
#endif
#undef WOLFSSL_PUBLIC_MP
#define WOLFSSL_PUBLIC_MP
#undef NO_OLD_RNGNAME
#define NO_OLD_RNGNAME
#undef NO_OLD_WC_NAMES
#define NO_OLD_WC_NAMES
#undef NO_OLD_SSL_NAMES
#define NO_OLD_SSL_NAMES
#undef NO_OLD_SHA_NAMES
#define NO_OLD_SHA_NAMES
#undef NO_OLD_MD5_NAME
#define NO_OLD_MD5_NAME
#undef NO_OLD_SHA256_NAMES
#define NO_OLD_SHA256_NAMES
#endif
#undef WOLFSSL_SYS_CA_CERTS
#define WOLFSSL_SYS_CA_CERTS
#undef LIBWOLFSSL_GLOBAL_EXTRA_CFLAGS
#define LIBWOLFSSL_GLOBAL_EXTRA_CFLAGS
#undef HAVE_SERVER_RENEGOTIATION_INFO
#define HAVE_SERVER_RENEGOTIATION_INFO
/* ------------------------------------------------------------------------- */
/* Disable Features */
/* ------------------------------------------------------------------------- */
#undef NO_WOLFSSL_SERVER
//#define NO_WOLFSSL_SERVER
#undef NO_WOLFSSL_CLIENT
//#define NO_WOLFSSL_CLIENT
#undef NO_CRYPT_TEST
//#define NO_CRYPT_TEST
#undef NO_CRYPT_BENCHMARK
//#define NO_CRYPT_BENCHMARK
#undef WOLFCRYPT_ONLY
#define WOLFCRYPT_ONLY
/* In-lining of misc.c functions */
/* If defined, must include wolfcrypt/src/misc.c in build */
/* Slower, but about 1k smaller */
#undef NO_INLINE
//#define NO_INLINE
#undef NO_FILESYSTEM
//#define NO_FILESYSTEM
#undef NO_WRITEV
//#define NO_WRITEV
#undef NO_MAIN_DRIVER
#define NO_MAIN_DRIVER
#undef NO_DEV_RANDOM
//#define NO_DEV_RANDOM
#undef NO_DSA
#define NO_DSA
#undef NO_RC4
#define NO_RC4
#undef NO_OLD_TLS
#define NO_OLD_TLS
#undef NO_PSK
#define NO_PSK
#undef NO_MD4
#define NO_MD4
#undef NO_PWDBASED
//#define NO_PWDBASED
#undef NO_CODING
//#define NO_CODING
#undef NO_ASN_TIME
//#define NO_ASN_TIME
#undef NO_CERTS
//#define NO_CERTS
#undef NO_SIG_WRAPPER
//#define NO_SIG_WRAPPER
#undef NO_DO178
#define NO_DO178
#undef WOLFSSL_NO_SHAKE128
#define WOLFSSL_NO_SHAKE128
#undef WOLFSSL_NO_SHAKE256
#define WOLFSSL_NO_SHAKE256
/* wolfSSL engineering ACVP algo and operational testing only (Default: Off) */
#if 1
#undef WOLFSSL_PUBLIC_MP
#define WOLFSSL_PUBLIC_MP
#undef OPTEST_LOGGING_ENABLED
//#define OPTEST_LOGGING_ENABLED
#undef OPTEST_INVALID_LOGGING_ENABLED
//#define OPTEST_INVALID_LOGGING_ENABLED
#undef NO_MAIN_OPTEST_DRIVER
#define NO_MAIN_OPTEST_DRIVER
#undef DEBUG_FIPS_VERBOSE
#define DEBUG_FIPS_VERBOSE
#undef HAVE_FORCE_FIPS_FAILURE
#define HAVE_FORCE_FIPS_FAILURE
#undef NO_WRITE_TEMP_FILES
#define NO_WRITE_TEMPT_FILES
#endif
#ifdef __cplusplus
}
#endif
#endif /* WOLFSSL_USER_SETTINGS_H */
+3
View File
@@ -225,6 +225,9 @@ if BUILD_LINUXKM
module:
+$(MAKE) -C linuxkm libwolfssl.ko
module-update-fips-hash:
+$(MAKE) -C linuxkm module-update-fips-hash
clean_module:
+$(MAKE) -C linuxkm clean
+1 -1
View File
@@ -86,7 +86,7 @@ NOTE: * wolfSSL is now GPLv3 instead of GPLv2
* MD5 is now disabled by default
PR stands for Pull Request, and PR <NUMBER> references a GitHub pull request number where the code change was added.
PR stands for Pull Request, and PR (NUMBER) references a GitHub pull request number where the code change was added.
## Vulnerabilities
+1 -1
View File
@@ -91,7 +91,7 @@ openssl x509 -req -in server-sm2.csr -days 1000 -extfile ../renewcerts/wolfssl.c
check_result $? "Generate certificate"
rm server-sm2.csr
openssl x509 -in server-sm2-cert.pem -outform DER > server-sm2.der
openssl x509 -in server-sm2-cert.pem -outform DER > server-sm2-cert.der
check_result $? "Convert to DER"
openssl x509 -in server-sm2-cert.pem -text > tmp.pem
check_result $? "Add text"
Binary file not shown.
+87 -6
View File
@@ -46,6 +46,10 @@ AC_ARG_VAR(EXTRA_LDFLAGS, [Extra LDFLAGS to add to end of autoconf-computed arg
WOLFSSL_CONFIG_ARGS=$ac_configure_args
AC_SUBST([WOLFSSL_CONFIG_ARGS])
# Store configure options and CFLAGS for debian rules generation
CONFIGURE_OPTIONS="$ac_configure_args"
AC_SUBST([CONFIGURE_OPTIONS])
# shared library versioning
# The three numbers in the libwolfssl.so.*.*.* file name. Unfortunately
@@ -437,6 +441,8 @@ AS_CASE([$ENABLED_WOLFENGINE],
# rand - wolfRand
# v5 - FIPS 140-3 Cert 4718
# cert4718 - alias for v5
# v5.2.3 -- FIPS 140-3 with support for ARM acceleration, derived from Cert 4718
# v5.2.4 -- FIPS 140-3 with support for Linux kernel mode, derived from v5.2.3
# ready - FIPS 140-3 settings with in-tree wolfcrypt sources, feature locked
# dev - FIPS 140-3 settings with in-tree wolfcrypt sources, features freely adjustable
# v5-ready - Alias for ready.
@@ -493,6 +499,24 @@ AS_CASE([$ENABLED_FIPS],
DEF_SP_MATH="no"
DEF_FAST_MATH="yes"
],
[v5.2.3],[
FIPS_VERSION="v5"
HAVE_FIPS_VERSION_MAJOR=5
HAVE_FIPS_VERSION_MINOR=2
HAVE_FIPS_VERSION_PATCH=3
ENABLED_FIPS="yes"
DEF_SP_MATH="yes"
DEF_FAST_MATH="no"
],
[v5.2.4],[
FIPS_VERSION="v5"
HAVE_FIPS_VERSION_MAJOR=5
HAVE_FIPS_VERSION_MINOR=2
HAVE_FIPS_VERSION_PATCH=4
ENABLED_FIPS="yes"
DEF_SP_MATH="yes"
DEF_FAST_MATH="no"
],
[v5-RC12],[
FIPS_VERSION="v5-RC12"
HAVE_FIPS_VERSION_MAJOR=5
@@ -1101,6 +1125,7 @@ then
AC_MSG_ERROR([--enable-all-osp is incompatible with --enable-linuxkm-defaults])
fi
test "$enable_wolfguard" = "" && enable_wolfguard=yes
test "$enable_webserver" = "" && enable_webserver=yes
if test "$ENABLED_SP_MATH" != "yes"
@@ -1293,7 +1318,6 @@ then
test "$enable_certext" = "" && enable_certext=yes
test "$enable_sep" = "" && enable_sep=yes
test "$enable_hkdf" = "" && enable_hkdf=yes
test "$enable_fpecc" = "" && test "$enable_ecc" != "no" && enable_fpecc=yes
test "$enable_eccencrypt" = "" && test "$enable_ecc" != "no" && enable_eccencrypt=yes
test "$enable_psk" = "" && enable_psk=yes
test "$enable_cmac" = "" && enable_cmac=yes
@@ -1323,6 +1347,13 @@ then
test "$enable_anon" = "" && enable_anon=yes
test "$enable_ssh" = "" && test "$enable_hmac" != "no" && enable_ssh=yes
# the compiler optimizer generates a weird out-of-bounds bss reference for
# find_hole() in the FP_ECC implementation.
if test "$ENABLED_LINUXKM_PIE" != yes
then
test "$enable_fpecc" = "" && test "$enable_ecc" != "no" && enable_fpecc=yes
fi
if test "x$FIPS_VERSION" != "xv1"
then
test "$enable_rsapss" = "" && enable_rsapss=yes
@@ -1370,7 +1401,7 @@ then
test "$enable_aesxts_stream" = "" && test "$enable_aesxts" = "yes" && enable_aesxts_stream=yes
test "$enable_shake128" = "" && enable_shake128=yes
test "$enable_shake256" = "" && enable_shake256=yes
test "$enable_compkey" = "" && test "$ENABLED_LINUXKM_DEFAULTS" != "yes" && enable_compkey=yes
test "$enable_compkey" = "" && enable_compkey=yes
# AFALG lacks AES-ECB
test "$enable_srtp_kdf" = "" && test "$enable_afalg" != "yes" && enable_srtp_kdf=yes
fi
@@ -1399,6 +1430,24 @@ then
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_HAVE_ISSUER_NAMES"
fi
# wolfGuard
AC_ARG_ENABLE([wolfguard],
[AS_HELP_STRING([--enable-wolfguard],[Enable wolfGuard dependencies (default: disabled)])],
[ ENABLED_WOLFGUARD=$enableval ],
[ ENABLED_WOLFGUARD=no ]
)
if test "$ENABLED_WOLFGUARD" = "yes"
then
test "$enable_ecc" = "" && enable_ecc=yes
test "$enable_sha256" = "" && enable_sha256=yes
test "$enable_aesgcm" = "" && enable_aesgcm=yes
if test "$ENABLED_FIPS" = "no" || test "$HAVE_FIPS_VERSION" -ge 6
then
test "$enable_compkey" = "" && enable_compkey=yes
test "$enable_aesgcm_stream" = "" && enable_aesgcm_stream=yes
fi
fi
# liboqs
ENABLED_LIBOQS="no"
tryliboqsdir=""
@@ -3780,6 +3829,18 @@ then
AM_CFLAGS="$AM_CFLAGS -DHAVE_INTEL_RDRAND"
fi
# INTEL RDSEED
AC_ARG_ENABLE([intelrdseed],
[AS_HELP_STRING([--enable-intelrdseed],[Enable Intel rdseed as preferred RNG seeding source (default: disabled)])],
[ ENABLED_INTELRDSEED=$enableval ],
[ ENABLED_INTELRDSEED=no ]
)
if test "$ENABLED_INTELRDSEED" = "yes"
then
AM_CFLAGS="$AM_CFLAGS -DHAVE_INTEL_RDSEED"
fi
# AMD RDSEED
AC_ARG_ENABLE([amdrand],
[AS_HELP_STRING([--enable-amdrand],[Enable AMD rdseed as preferred RNG seeding source (default: disabled)])],
@@ -5657,6 +5718,9 @@ AC_ARG_ENABLE([pwdbased],
# wolfEntropy Software Jitter SP800-90B certifiable entropy source
if test "$ENABLED_LINUXKM_DEFAULTS" = "yes" && \
test "$ENABLED_AMDRDSEED" != "yes" && \
test "$ENABLED_INTELRDRAND" != "yes" && \
test "$ENABLED_INTELRDSEED" != "yes" && \
(test "$ENABLED_FIPS" = "no" || test "$HAVE_FIPS_VERSION" -ge 6)
then
ENABLED_ENTROPY_MEMUSE_DEFAULT=yes
@@ -5748,7 +5812,7 @@ AS_CASE([$FIPS_VERSION],
(test "$FIPS_VERSION" != "dev" || test "$enable_keygen" != "no")],
[ENABLED_KEYGEN="yes"; AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_KEY_GEN"])
# AS_IF([test "$ENABLED_COMPKEY" = "yes" &&
# AS_IF([test "$ENABLED_COMPKEY" != "yes" &&
# (test "$FIPS_VERSION" != "dev" || test "$enable_compkey" != "yes")],
# [ENABLED_COMPKEY="yes"])
@@ -8179,6 +8243,14 @@ then
ENABLED_TICKET_NONCE_MALLOC="yes"
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_TICKET_NONCE_MALLOC"
fi
elif test "$ENABLED_CURL" = "tiny"
then
if test "x$ENABLED_OPENSSLEXTRA" = "xno"
then
ENABLED_OPENSSLEXTRA="x509small"
fi
AM_CFLAGS="$AM_CFLAGS -DHAVE_CURL"
fi
if test "$ENABLED_PSK" = "no" && test "$ENABLED_LEANPSK" = "no" \
@@ -10630,6 +10702,17 @@ if test "$enable_shared" = "no"; then
fi
fi
if test "$ENABLED_WOLFGUARD" = "yes"; then
if test "$ENABLED_ECC" = "no" ||
test "$ENABLED_SHA256" = "no" ||
test "$ENABLED_AESGCM" = "no" ||
test "$ENABLED_HMAC" = "no" ||
test "$ENABLED_RNG" = "no"
then
AC_MSG_ERROR([--enable-wolfguard requires ECC, SHA256-HMAC, AES-GCM, and RNG.])
fi
fi
if test "x$ENABLED_LINUXKM" = "xyes"; then
AX_SIMD_CC_COMPILER_FLAGS
AC_SUBST([CFLAGS_FPU_DISABLE])
@@ -10694,9 +10777,6 @@ if test "x$ENABLED_LINUXKM" = "xyes"; then
if test "$ENABLED_STACKLOG" = "yes"; then
AC_MSG_ERROR([--enable-stacklog is incompatible with --enable-linuxkm.])
fi
if test "$ENABLED_COMPKEY" = "yes"; then
AC_MSG_ERROR([--enable-compkey is incompatible with --enable-linuxkm.])
fi
fi
AS_IF([test "$ENABLED_ASM" = "no" && (test "$ENABLED_INTELASM" != "no" || \
@@ -10934,6 +11014,7 @@ AC_CONFIG_FILES([Makefile
wolfcrypt/test/test_paths.h
])
AC_CONFIG_FILES([scripts/unit.test],[chmod +x scripts/unit.test])
AC_CONFIG_FILES([debian/rules],[chmod +x debian/rules])
AX_CREATE_GENERIC_CONFIG
AX_AM_JOBSERVER([yes])
+15 -67
View File
@@ -1,77 +1,25 @@
# vim:ft=automake
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
# Debian packaging using dpkg-buildpackage
deb:
# Setup meta folders
mkdir -p debian/libwolfssl/DEBIAN debian/libwolfssl-dev/DEBIAN
# "Install" wolfSSL
make install exec_prefix=$(CURDIR)/debian/libwolfssl/usr \
prefix=$(CURDIR)/debian/libwolfssl-dev/usr
# deb shared lib stuff
fakeroot dh_makeshlibs
dh_shlibdeps
dh_installdeb
# Generate the lib and src descriptions
fakeroot dh_gencontrol
# Make adjustments to the package structure and to satisfy lintian checks
# Correct doc dir name
@rm -rf debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev
@mv debian/libwolfssl-dev/usr/share/doc/wolfssl \
debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev
# Clear lib folder
@rm -rf debian/libwolfssl-dev/usr/lib
@mkdir -p debian/libwolfssl-dev/usr/lib
# Move the top level .so into the dev pkg
@mv debian/libwolfssl/usr/lib/libwolfssl.so debian/libwolfssl-dev/usr/lib
# Create correct pkg doc dir
@rm -rf debian/libwolfssl/usr/share/doc/libwolfssl
@mkdir -p debian/libwolfssl/usr/share/doc/libwolfssl
# Place changelog
@gzip -n -9 -c debian/changelog | \
tee debian/libwolfssl/usr/share/doc/libwolfssl/changelog.gz > \
debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev/changelog.gz
# Place copyright
@cp debian/copyright debian/libwolfssl/usr/share/doc/libwolfssl
@cp debian/copyright debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev
# Remove .la file https://wiki.debian.org/ReleaseGoals/LAFileRemoval
@rm debian/libwolfssl/usr/lib/libwolfssl.la
# Strip unwanted symbols
# https://www.debian.org/doc/debian-policy/ch-files.html#binaries
@strip --strip-unneeded debian/libwolfssl/usr/lib/libwolfssl.so.*.*.*
# Place pkgconfig so that it is available for cross-compilation
# https://lintian.debian.org/tags/pkg-config-unavailable-for-cross-compilation
@rm -rf debian/libwolfssl/usr/lib/$(DEB_HOST_MULTIARCH)
@mkdir -p debian/libwolfssl/usr/lib/$(DEB_HOST_MULTIARCH)
@mv debian/libwolfssl/usr/lib/pkgconfig \
debian/libwolfssl/usr/lib/$(DEB_HOST_MULTIARCH)
# Set the expected access rules
@chmod 644 debian/libwolfssl/usr/lib/libwolfssl.so.*.*.*
@chmod 644 debian/libwolfssl/usr/share/doc/libwolfssl/changelog.gz \
debian/libwolfssl/usr/share/doc/libwolfssl/copyright \
debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev/changelog.gz \
debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev/copyright
# Do this as the last step to mark all directories with the correct access bits
@find debian/libwolfssl*/usr -type d | xargs chmod 755
# Generate debs
dpkg-deb --root-owner-group -b debian/libwolfssl .
dpkg-deb --root-owner-group -b debian/libwolfssl-dev .
# Check that everything is correct with lintian
# - we don't provide a manual page for wolfssl-config
# - we don't care about matching the soname for our debs
lintian *.deb --fail-on error,warning --tag-display-limit 0 \
--suppress-tags no-manual-page,package-name-doesnt-match-sonames
# Clean up the working dirs
make deb-clean
dpkg-buildpackage -us -uc
deb-source:
dpkg-buildpackage -S -us -uc
deb-binary:
dpkg-buildpackage -B -us -uc
deb-docker:
docker build -t "debian-builder:Dockerfile" Docker/packaging/debian
docker run --rm -v $(CURDIR):/opt/wolfssl debian-builder:Dockerfile \
bash -c 'cd /opt/wolfssl && ./config.status --recheck && make deb && \
make clean deb-clean &> /dev/null'
# To allow the user to keep using the configuration on the host
@./config.status --recheck &> /dev/null
bash -c 'cd /opt/wolfssl && ./autogen.sh && ./configure $(WOLFSSL_CONFIG_ARGS) && make deb && find .. -maxdepth 1 -type f -exec cp {} . \;'
deb-clean:
dh_clean --exclude=debian/control --exclude=debian/changelog \
--exclude=debian/rules || true
rm -rf debian/libwolfssl debian/libwolfssl-dev debian/files \
debian/*.substvars debian/.debhelper
debian/*.substvars debian/.debhelper debian/tmp
rm -f debian/debhelper-build-stamp
.PHONY: deb deb-source deb-binary deb-docker deb-clean
+6
View File
@@ -0,0 +1,6 @@
usr/include/
usr/lib/*/libwolfssl.so
usr/lib/*/libwolfssl.a
usr/lib/*/pkgconfig/wolfssl.pc
usr/bin/wolfssl-config
usr/share/doc/wolfssl/
+1
View File
@@ -0,0 +1 @@
usr/lib/*/libwolfssl.so.*
+61
View File
@@ -0,0 +1,61 @@
#!/usr/bin/make -f
# Store the configure options and CFLAGS used during ./configure
# This file is generated from rules.in by the configure script
CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
ENABLED_FIPS = @ENABLED_FIPS@
# Use debhelper with automatic sequence
%:
dh $@
# Override configure to use the stored options
override_dh_auto_configure:
./configure \
--build=$(DEB_BUILD_GNU_TYPE) \
--host=$(DEB_HOST_GNU_TYPE) \
--prefix=/usr \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--sysconfdir=/etc \
--localstatedir=/var \
--libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
--libexecdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
--disable-maintainer-mode \
--disable-dependency-tracking \
--enable-shared \
--enable-static \
$(CONFIGURE_OPTIONS)
# Override test to skip them (optional, remove if you want to run tests)
#override_dh_auto_test:
# Skip tests during package build
# Handle FIPS builds which require special hash generation
override_dh_auto_build:
ifeq ($(ENABLED_FIPS),yes)
# FIPS build requires two-stage process with hash generation
$(MAKE)
./fips-hash.sh
$(MAKE)
else
# Standard build
dh_auto_build
endif
# Handle multiarch library placement and remove .la files
override_dh_auto_install:
dh_auto_install
# Remove .la files (not needed in modern Debian packages)
find debian/tmp -name '*.la' -delete
# Set proper permissions and strip symbols
override_dh_strip:
dh_strip --dbgsym-migration='libwolfssl-dbg (<< 5.0.0-1~)'
# Auto-clean override - prevent make distclean from removing debian files
override_dh_auto_clean:
# Run make clean instead of make distclean to preserve debian files
if [ -f Makefile ]; then \
$(MAKE) clean; \
fi
+1
View File
@@ -0,0 +1 @@
3.0 (native)
+118 -6
View File
@@ -113,6 +113,114 @@ int wc_ecc_make_key(WC_RNG* rng, int keysize, ecc_key* key);
int wc_ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key, int curve_id);
/*!
\ingroup ECC
\brief wc_ecc_make_pub computes the public component from an ecc_key with an
existing private component. If pubOut is supplied, the computed public key
is stored there, else it is stored in the supplied ecc_key public component
slot.
\return 0 Returned on success.
\return ECC_BAD_ARG_E Returned if rng or key evaluate to NULL
\return BAD_FUNC_ARG Returned if the supplied key is not a valid ecc_key.
\return MEMORY_E Returned if there is an error allocating memory while
computing the public key
\return MP_INIT_E may be returned if there is an error while computing
the public key
\return MP_READ_E may be returned if there is an error while computing
the public key
\return MP_CMP_E may be returned if there is an error while computing the
public key
\return MP_INVMOD_E may be returned if there is an error while computing
the public key
\return MP_EXPTMOD_E may be returned if there is an error while computing
the public key
\return MP_MOD_E may be returned if there is an error while computing the
public key
\return MP_MUL_E may be returned if there is an error while computing the
public key
\return MP_ADD_E may be returned if there is an error while computing the
public key
\return MP_MULMOD_E may be returned if there is an error while computing
the public key
\return MP_TO_E may be returned if there is an error while computing the
public key
\return MP_MEM may be returned if there is an error while computing the
public key
\return ECC_OUT_OF_RANGE_E may be returned if there is an error while computing the
public key
\return ECC_PRIV_KEY_E may be returned if there is an error while computing the
public key
\return ECC_INF_E may be returned if there is an error while computing the
public key
\param key Pointer to an ecc_key containing a valid private component
\param pubOut Optional pointer to an ecc_point struct in which to store
the computed public key
\sa wc_ecc_make_pub_ex
\sa wc_ecc_make_key
*/
int wc_ecc_make_pub(ecc_key* key, ecc_point* pubOut);
/*!
\ingroup ECC
\brief wc_ecc_make_pub_ex computes the public component from an ecc_key with
an existing private component. If pubOut is supplied, the computed public
key is stored there, else it is stored in the supplied ecc_key public
component slot. The supplied rng, if non-NULL, is used to blind the private
key value used in the computation. If rng is NULL, an ephemeral rng is
instantiated internally.
\return 0 Returned on success.
\return ECC_BAD_ARG_E Returned if rng or key evaluate to NULL
\return BAD_FUNC_ARG Returned if the supplied key is not a valid ecc_key.
\return MEMORY_E Returned if there is an error allocating memory while
computing the public key
\return MP_INIT_E may be returned if there is an error while computing
the public key
\return MP_READ_E may be returned if there is an error while computing
the public key
\return MP_CMP_E may be returned if there is an error while computing the
public key
\return MP_INVMOD_E may be returned if there is an error while computing
the public key
\return MP_EXPTMOD_E may be returned if there is an error while computing
the public key
\return MP_MOD_E may be returned if there is an error while computing the
public key
\return MP_MUL_E may be returned if there is an error while computing the
public key
\return MP_ADD_E may be returned if there is an error while computing the
public key
\return MP_MULMOD_E may be returned if there is an error while computing
the public key
\return MP_TO_E may be returned if there is an error while computing the
public key
\return MP_MEM may be returned if there is an error while computing the
public key
\return ECC_OUT_OF_RANGE_E may be returned if there is an error while computing the
public key
\return ECC_PRIV_KEY_E may be returned if there is an error while computing the
public key
\return ECC_INF_E may be returned if there is an error while computing the
public key
\param key Pointer to an ecc_key containing a valid private component
\param pubOut Optional pointer to an ecc_point struct in which to store
the computed public key
\param rng Rng to be used in the public key computation
\sa wc_ecc_make_pub
\sa wc_ecc_make_key
\sa wc_InitRng
*/
int wc_ecc_make_pub_ex(ecc_key* key, ecc_point* pubOut, WC_RNG* rng);
/*!
\ingroup ECC
@@ -960,6 +1068,7 @@ int wc_ecc_mulmod(mp_int* k, ecc_point *G, ecc_point *R,
\sa wc_ecc_export_x963_ex
\sa wc_ecc_import_x963
\sa wc_ecc_make_pub
*/
int wc_ecc_export_x963(ecc_key* key, byte* out, word32* outLen);
@@ -967,23 +1076,25 @@ int wc_ecc_export_x963(ecc_key* key, byte* out, word32* outLen);
/*!
\ingroup ECC
\brief This function exports the ECC key from the ecc_key structure,
\brief This function exports the public key from the ecc_key structure,
storing the result in out. The key will be stored in ANSI X9.63 format.
It stores the bytes written to the output buffer in outLen. This function
allows the additional option of compressing the certificate through the
compressed parameter. When this parameter is true, the key will be stored
in ANSI X9.63 compressed format.
\return 0 Returned on successfully exporting the ecc_key
\return 0 Returned on successfully exporting the ecc_key public component
\return ECC_PRIVATEKEY_ONLY Returned if the ecc_key public component is
missing
\return NOT_COMPILED_IN Returned if the HAVE_COMP_KEY was not enabled at
compile time, but the key was requested in compressed format
\return LENGTH_ONLY_E Returned if the output buffer evaluates to NULL, but
the other two input parameters are valid. Indicates that the function is
only returning the length required to store the key
only returning the length required to store the public key
\return ECC_BAD_ARG_E Returned if any of the input parameters are NULL, or
the key is unsupported (has an invalid index)
\return BUFFER_E Returned if the output buffer is too small to store the
ecc key. If the output buffer is too small, the size needed will be
public key. If the output buffer is too small, the size needed will be
returned in outLen
\return MEMORY_E Returned if there is an error allocating memory with
XMALLOC
@@ -1010,9 +1121,9 @@ int wc_ecc_export_x963(ecc_key* key, byte* out, word32* outLen);
\param key pointer to the ecc_key object to export
\param out pointer to the buffer in which to store the ANSI X9.63
formatted key
formatted public key
\param outLen size of the output buffer. On successfully storing the
key, will hold the bytes written to the output buffer
public key, will hold the bytes written to the output buffer
\param compressed indicator of whether to store the key in compressed
format. 1==compressed, 0==uncompressed
@@ -1031,6 +1142,7 @@ int wc_ecc_export_x963(ecc_key* key, byte* out, word32* outLen);
\sa wc_ecc_export_x963
\sa wc_ecc_import_x963
\sa wc_ecc_make_pub
*/
int wc_ecc_export_x963_ex(ecc_key* key, byte* out, word32* outLen, int compressed);
+152 -12
View File
@@ -25,7 +25,7 @@
*/
/* Define a macro to display user settings version in example code: */
#define WOLFSSL_USER_SETTINGS_ID "Arduino user_settings.h v5.7.6"
#define WOLFSSL_USER_SETTINGS_ID "Arduino user_settings.h v5.8.2"
/* Disable wolfcrypt cryptographic security hardening. Comment out to enable: */
/* #define WC_NO_HARDEN */
@@ -40,7 +40,6 @@
#define WOLFSSL_IGNORE_FILE_WARN
#define NO_FILESYSTEM
#define USE_CERT_BUFFERS_2048
/* Make sure this is not an ESP-IDF file */
#undef WOLFSSL_ESPIDF
@@ -58,13 +57,143 @@
#define RSA_LOW_MEM
#define NO_OLD_TLS
/* TLS 1.3 */
/* #define WOLFSSL_TLS13 */
#if defined(WOLFSSL_TLS13)
/* To see board properties & definitions:
* arduino-cli compile --fqbn [] --show-properties ./sketches/wolfssl_client */
#if defined(ARDUINO_AVR_ETHERNET)
/* TODO: optimize client / server to fit in 32K flash?
* currently 164K too big: */
#define WOLFSSL_NO_TLS13
#define WOLFSSL_MIN_CONFIG
#define WOLFSSL_USER_IO
#define WOLFSSL_NO_WRITEV
#define NO_FILESYSTEM
#define WOLFSSL_NO_CERTS
#define HAVE_TLS
#define NO_RC4
#define NO_PSK
#define NO_SESSION_CACHE
#define NO_CERT_VERIFY
#define NO_MAIN_DRIVER
#define WOLFSSL_NO_SP
#define WOLFSSL_NO_SIG_WRAPPER
#define TFM_TIMING_RESISTANT
#undef WOLFSSL_DTLS
#undef WOLFSSL_DTLS13
#endif
#if defined(ARDUINO_AVR_LEONARDO_ETH)
/* No time available */
/* Used only here in Arduino, WOLFSSL_NO_TLS13 is not a wolfssl macro */
#undef WOLFSSL_NO_TLS13
#define WOLFSSL_NO_TLS13
#define NO_TLS
#undef WOLFSSL_TLS13
#define WOLFSSL_NO_TLS12
#endif
#if defined(ESP8266) || defined(__SAM3X8E__) || \
defined(ARDUINO_AVR_ETHERNET) || defined(ARDUINO_AVR_LEONARDO_ETH)
#define WOLFSSL_NO_SOCK
#define WOLFSSL_USER_IO
#define NO_WRITEV
/* There's limited RAM on these devices */
#define USE_CERT_BUFFERS_1024
/* SNI, Supported Groups (elliptic curves), ALPN: */
#define HAVE_TLS_EXTENSIONS
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_AEAD
#define HAVE_SUPPORTED_CURVES
#if defined(WOLFSSL_NO_TLS13) && defined(WOLFSSL_NO_TLS12)
/* NO TLS */
#define NO_TLS
#elif defined(WOLFSSL_NO_TLS13)
/* Only TLS 1.2*/
/* enabled by default, for clarity: */
#undef WOLFSSL_NO_TLS12
/* Ensure TLS 1.3 is not enabled */
#undef WOLFSSL_TLS13
#elif defined(WOLFSSL_NO_TLS12)
/* Only TLS 1.3*/
#define WOLFSSL_TLS13
#if defined(WOLFSSL_TLS13)
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_AEAD
#endif
#else
/* Both TLS 1.2 and TLS 1.3 */
/* TLS 1.2 enabled by default, for clarity: */
#undef WOLFSSL_NO_TLS12
/* Enable only TLS 1.3 on small memory devices */
#define WOLFSSL_TLS13
#if defined(WOLFSSL_TLS13)
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_AEAD
#endif
#endif
#undef WOLFSSL_DTLS
#undef WOLFSSL_DTLS13
#elif defined(ESP32) || \
defined(WIFI_101) || defined(WIFI_NINA) || defined(WIFIESPAT) || \
defined(ETHERNET_H) || defined(ARDUINO_TEENSY41) || \
defined(ARDUINO_SAMD_MKR1000)
#define USE_CERT_BUFFERS_2048
/* Only boards known to have networking will have TLS / DTLS enabled */
#define HAVE_TLS_EXTENSIONS
#define HAVE_SUPPORTED_CURVES
/* Enable TLS 1.3 */
#define WOLFSSL_TLS13
#if defined(WOLFSSL_TLS13)
#define HAVE_TLS_EXTENSIONS
#define WC_RSA_PSS
#define HAVE_HKDF
#define HAVE_AEAD
#endif
/* Enable DTLS */
#define WOLFSSL_DTLS 1
#if defined(WOLFSSL_DTLS)
#define WOLFSSL_DTLS13
/* WOLFSSL_DTLS13 requires WOLFSSL_TLS13 */
#undef WOLFSSL_TLS13
#define WOLFSSL_TLS13
#define USE_WOLFSSL_IO
/* WOLFSSL_SEND_HRR_COOKIE is needed to use DTLS 1.3 server */
#define WOLFSSL_SEND_HRR_COOKIE
#endif
#elif defined (__AVR__) || defined(__AVR_ARCH__) || defined(__MEGAAVR__)
/* Do not enable TLS on platforms without networking */
/* We'll assume all AVR targets are small: 8 or 16 bit */
#define WC_16BIT_CPU
#define NO_TLS
#elif (defined(__SAMD21__) || defined(__SAMD51__)) && defined(ARDUINO_SAMD_ZERO)
/* No networking on ARDUINO_SAMD_ZERO */
#elif defined(ARDUINO_TEENSY40)
/* No networking on TEENSY boards */
#else
/* other / unknown board */
#define USE_CERT_BUFFERS_1024
#endif
/* #define HAVE_SUPPORTED_CURVES */
@@ -72,9 +201,6 @@
/* Cannot use WOLFSSL_NO_MALLOC with small stack */
/* #define WOLFSSL_NO_MALLOC */
#define HAVE_TLS_EXTENSIONS
#define HAVE_SUPPORTED_CURVES
/* To further reduce size, client or server functionality can be disabled.
* Here, we check if the example code gave us a hint.
*
@@ -503,6 +629,20 @@
#define CTX_SERVER_KEY_SIZE sizeof_server_key_der_1024
#define CTX_SERVER_KEY_TYPE WOLFSSL_FILETYPE_ASN1
#else
#error "Must define USE_CERT_BUFFERS_2048 or USE_CERT_BUFFERS_1024"
#define USE_CERT_BUFFERS_256
#endif
#endif
/* Final checks */
/* This should already be done in settings.h for newer versions of wolfSSL:
*
* There's currently no 100% reliable "smaller than 32 bit" detection.
* The user can specify: WC_16BIT_CPU
* Lower 16 bits of new OID values may collide on some 16 bit platforms.
* e.g Arduino Mega, fqbn=arduino:avr:mega */
#if defined(WC_16BIT_CPU)
/* Force the old, 16 bit OIDs to be used in wolfcrypt/oid_sum.h */
#undef WOLFSSL_OLD_OID_SUM
#define WOLFSSL_OLD_OID_SUM
#endif
+116 -17
View File
@@ -13,7 +13,8 @@ use warnings;
# ---- SCRIPT SETTINGS -------------------------------------------------------
# output C header file to write cert/key buffers to
my $outputFile = "./wolfssl/certs_test.h";
my $outputFile = "./wolfssl/certs_test.h";
my $outputFileSM = "./wolfssl/certs_test_sm.h";
# ecc keys and certs to be converted
# Used with HAVE_ECC && USE_CERT_BUFFERS_256
@@ -109,6 +110,42 @@ my @fileList_4096 = (
[ "./certs/dh4096.der", "dh_key_der_4096" ],
);
# SM ciphers PRM format in certs/sm2
my @fileList_sm2 = (
[ "./certs/sm2/ca-sm2.pem", "ca_sm2" ],
[ "./certs/sm2/ca-sm2-key.pem", "ca_sm2_key" ],
[ "./certs/sm2/ca-sm2-priv.pem", "ca_sm2_priv" ],
[ "./certs/sm2/client-sm2.pem", "client_sm2" ],
[ "./certs/sm2/client-sm2-key.pem", "client_sm2_key" ],
[ "./certs/sm2/client-sm2-priv.pem", "client_sm2_priv" ],
[ "./certs/sm2/root-sm2.pem", "root_sm2" ],
[ "./certs/sm2/root-sm2-key.pem", "root_sm2_key" ],
[ "./certs/sm2/root-sm2-priv.pem", "root_sm2_priv" ],
[ "./certs/sm2/self-sm2-cert.pem", "self_sm2_cert" ],
[ "./certs/sm2/self-sm2-key.pem", "self_sm2_key" ],
[ "./certs/sm2/self-sm2-priv.pem", "self_sm2_priv" ],
[ "./certs/sm2/server-sm2.pem", "server_sm2" ],
[ "./certs/sm2/server-sm2-cert.pem", "server_sm2_cert" ],
[ "./certs/sm2/server-sm2-key.pem", "server_sm2_key" ],
[ "./certs/sm2/server-sm2-priv.pem", "server_sm2_priv" ],
);
my @fileList_sm2_der = (
[ "./certs/sm2/ca-sm2.der", "ca_sm2_der" ],
[ "./certs/sm2/ca-sm2-key.der", "ca_sm2_key_der" ],
[ "./certs/sm2/ca-sm2-priv.der", "ca_sm2_priv_der" ],
[ "./certs/sm2/client-sm2.der", "client_sm2_der" ],
[ "./certs/sm2/client-sm2-key.der", "client_sm2_key_der" ],
[ "./certs/sm2/client-sm2-priv.der", "client_sm2_priv_der" ],
[ "./certs/sm2/root-sm2.der", "root_sm2_der" ],
[ "./certs/sm2/root-sm2-key.der", "root_sm2_key_der" ],
[ "./certs/sm2/root-sm2-priv.der", "root_sm2_priv_der" ],
[ "./certs/sm2/server-sm2.der", "server_sm2_der" ],
[ "./certs/sm2/server-sm2-cert.der", "server_sm2_cert_der" ],
[ "./certs/sm2/server-sm2-key.der", "server_sm2_key_der" ],
[ "./certs/sm2/server-sm2-priv.der", "server_sm2_priv_der" ],
);
#Falcon Post-Quantum Keys
#Used with HAVE_PQC
my @fileList_falcon = (
@@ -130,15 +167,17 @@ my @fileList_sphincs = (
# ----------------------------------------------------------------------------
my $num_ecc = @fileList_ecc;
my $num_ed = @fileList_ed;
my $num_x = @fileList_x;
my $num_1024 = @fileList_1024;
my $num_2048 = @fileList_2048;
my $num_3072 = @fileList_3072;
my $num_4096 = @fileList_4096;
my $num_falcon = @fileList_falcon;
my $num_sphincs = @fileList_sphincs;
my $num_ecc = @fileList_ecc;
my $num_ed = @fileList_ed;
my $num_x = @fileList_x;
my $num_1024 = @fileList_1024;
my $num_2048 = @fileList_2048;
my $num_3072 = @fileList_3072;
my $num_4096 = @fileList_4096;
my $num_sm2 = @fileList_sm2;
my $num_sm2_der = @fileList_sm2_der;
my $num_falcon = @fileList_falcon;
my $num_sphincs = @fileList_sphincs;
# open our output file, "+>" creates and/or truncates
open OUT_FILE, "+>", $outputFile or die $!;
@@ -2202,9 +2241,68 @@ print OUT_FILE "#endif /* WOLFSSL_CERTS_TEST_H */\n\n";
# close certs_test.h file
close OUT_FILE or die $!;
#---------------------------------------------------------------------------
# open our output file, "+>" creates and/or truncates
open OUT_FILE_SM, "+>", $outputFileSM or die $!;
print OUT_FILE_SM "/* certs_test_sm.h */\n";
print OUT_FILE_SM "/* This file was generated using: ./gencertbuf.pl */\n\n";
print OUT_FILE_SM "#ifndef WOLFSSL_CERTS_TEST_SM_H\n";
print OUT_FILE_SM "#define WOLFSSL_CERTS_TEST_SM_H\n\n";
print OUT_FILE_SM "#if defined(WOLFSSL_SM2) || defined(WOLFSSL_SM3) || defined(WOLFSSL_SM4)\n\n";
print OUT_FILE_SM " /* DER Certs Begin */\n\n";
# convert and print SM2 DER format certs/keys
for (my $i = 0; $i < $num_sm2_der; $i++) {
my $fname = $fileList_sm2_der[$i][0];
my $sname = $fileList_sm2_der[$i][1];
print OUT_FILE_SM "/* $fname */\n";
print OUT_FILE_SM "static const unsigned char $sname\[] =\n";
print OUT_FILE_SM "{\n";
file_to_hex($fname, \*OUT_FILE_SM);
print OUT_FILE_SM "};\n";
# In C89/C90 (which Watcom generally defaults to), sizeof must be a
# compile-time constant expression when used in a static initializer.
# So don't use `static const int sizeof_` here:
print OUT_FILE_SM "#define sizeof_$sname (sizeof($sname))\n\n";
}
print OUT_FILE_SM " /* DER Certs End */\n\n";
# convert and print SM2 PEM format certs/keys
print OUT_FILE_SM "#ifdef WOLFSSL_NO_PEM\n\n";
print OUT_FILE_SM " /* SM PEM Certs disabled */\n\n";
print OUT_FILE_SM "#else\n\n";
for (my $i = 0; $i < $num_sm2; $i++) {
my $fname = $fileList_sm2[$i][0];
my $sname = $fileList_sm2[$i][1];
print OUT_FILE_SM "/* $fname */\n";
print OUT_FILE_SM "static const unsigned char $sname\[] =\n";
print OUT_FILE_SM "{\n";
file_to_hex($fname, \*OUT_FILE_SM);
print OUT_FILE_SM "};\n";
# In C89/C90 (which Watcom generally defaults to), sizeof must be a
# compile-time constant expression when used in a static initializer.
# So don't use `static const int sizeof_` here:
print OUT_FILE_SM "#define sizeof_$sname (sizeof($sname))\n\n";
}
print OUT_FILE_SM "#endif /* WOLFSSL_NO_PEM */\n\n";
print OUT_FILE_SM "#endif /* WOLFSSL_SM2 || WOLFSSL_SM3 || WOLFSSL_SM4 */\n";
print OUT_FILE_SM "#endif /* WOLFSSL_CERTS_TEST_SM_H */\n";
# close certs_test_sm.h file
close OUT_FILE_SM or die $!;
# print file as hex, comma-separated, as needed by C buffer
sub file_to_hex {
my $fileName = $_[0];
my ($fileName, $out_fh) = @_;
$out_fh //= \*OUT_FILE; # default handle
open my $fp, "<", $fileName or die $!;
binmode($fp);
@@ -2215,26 +2313,27 @@ sub file_to_hex {
for (my $i = 0, my $j = 1; $i < $fileLen; $i++, $j++)
{
if ($j == 1) {
print OUT_FILE " ";
print {$out_fh} " ";
}
if ($j != 1) {
print OUT_FILE " ";
print {$out_fh} " ";
}
read($fp, $byte, 1) or die "Error reading $fileName";
my $output = sprintf("0x%02X", ord($byte));
print OUT_FILE $output;
print {$out_fh} $output;
if ($i != ($fileLen - 1)) {
print OUT_FILE ",";
print {$out_fh} ",";
}
if ($j == 10) {
$j = 0;
print OUT_FILE "\n";
print {$out_fh} "\n";
}
}
print OUT_FILE "\n";
print {$out_fh} "\n";
close($fp);
}
+36 -38
View File
@@ -127,10 +127,13 @@ ifeq "$(ENABLED_LINUXKM_PIE)" "yes"
endif
$(WOLFCRYPT_PIE_FILES): ccflags-y += $(PIE_SUPPORT_FLAGS) $(PIE_FLAGS)
$(WOLFCRYPT_PIE_FILES): ccflags-remove-y += -pg
$(obj)/linuxkm/module_hooks.o: ccflags-y += $(PIE_SUPPORT_FLAGS)
# using inline retpolines leads to "unannotated intra-function call"
# warnings from objtool without this:
$(WOLFCRYPT_PIE_FILES): OBJECT_FILES_NON_STANDARD := y
$(obj)/linuxkm/module_hooks.o: ccflags-y += $(PIE_SUPPORT_FLAGS)
ifdef FORCE_GLOBAL_OBJTOOL_OFF
undefine CONFIG_OBJTOOL
endif
endif
ifdef KERNEL_EXTRA_CFLAGS_REMOVE
@@ -176,8 +179,6 @@ ifeq "$(ENABLED_LINUXKM_PIE)" "yes"
LDFLAGS_libwolfssl.o += -T $(src)/wolfcrypt.lds
rename-pie-text-and-data-sections: $(WOLFSSL_OBJ_TARGETS)
ifndef NM
NM := nm
endif
@@ -186,41 +187,41 @@ ifndef OBJCOPY
OBJCOPY := objcopy
endif
.PHONY: rename-pie-text-and-data-sections
rename-pie-text-and-data-sections:
ifneq "$(quiet)" "silent_"
@echo -n ' Checking wolfCrypt for unresolved symbols and forbidden relocations... '
endif
@cd "$(obj)" || exit $$?
$(LD) -relocatable -o wolfcrypt_test_link.o $(WOLFCRYPT_PIE_FILES) || exit $$?
undefined=$$($(NM) --undefined-only wolfcrypt_test_link.o) || exit $$?
GOT_relocs=$$($(READELF) --relocs --wide wolfcrypt_test_link.o | egrep '^[^ ]+ +[^ ]+ +[^ ]*GOT[^ ]* ') || [ $$? = 1 ] || exit 2
rm wolfcrypt_test_link.o
if [ -n "$$undefined" ]; then
echo "wolfCrypt container has unresolved symbols:" 1>&2
echo "$$undefined" 1>&2
exit 1
fi
if [ -n "$$GOT_relocs" ]; then
echo "wolfCrypt container has GOT relocations (non-local function address used as operand?):" 1>&2
echo "$$GOT_relocs" 1>&2
exit 1
fi
ifneq "$(quiet)" "silent_"
echo 'OK.'
endif
cd "$(obj)" || exit $$?
for file in $(WOLFCRYPT_PIE_FILES); do
RENAME_PIE_TEXT_AND_DATA_SECTIONS := \
if [[ "$(quiet)" != "silent_" ]]; then \
echo -n ' Checking wolfCrypt for unresolved symbols and forbidden relocations... '; \
fi; \
cd "$(obj)" || exit $$?; \
$(LD) -relocatable -o wolfcrypt_test_link.o $(WOLFCRYPT_PIE_FILES) || exit $$?; \
undefined=$$($(NM) --undefined-only wolfcrypt_test_link.o) || exit $$?; \
GOT_relocs=$$($(READELF) --relocs --wide wolfcrypt_test_link.o | grep -E '^[^ ]+ +[^ ]+ +[^ ]*GOT[^ ]* ') || [ $$? = 1 ] || exit 2; \
rm wolfcrypt_test_link.o; \
if [ -n "$$undefined" ]; then \
echo "wolfCrypt container has unresolved symbols:" 1>&2; \
echo "$$undefined" 1>&2; \
exit 1; \
fi; \
if [ -n "$$GOT_relocs" ]; then \
echo "wolfCrypt container has GOT relocations (non-local function address used as operand?):" 1>&2; \
echo "$$GOT_relocs" 1>&2; \
exit 1; \
fi; \
if [[ "$(quiet)" != "silent_" ]]; then \
echo 'OK.'; \
fi; \
cd "$(obj)" || exit $$?; \
for file in $(WOLFCRYPT_PIE_FILES); do \
$(OBJCOPY) --rename-section .text=.text.wolfcrypt \
--rename-section .text.unlikely=.text.wolfcrypt \
--rename-section .rodata=.rodata.wolfcrypt \
--rename-section .rodata.str1.1=.rodata.wolfcrypt \
--rename-section .rodata.str1.8=.rodata.wolfcrypt \
--rename-section .rodata.cst16=.rodata.wolfcrypt \
--rename-section .rodata.cst32=.rodata.wolfcrypt \
--rename-section .data=.data.wolfcrypt \
--rename-section .data.rel.local=.data.wolfcrypt \
--rename-section .bss=.bss.wolfcrypt "$$file" || exit $$?
done
--rename-section .bss=.bss.wolfcrypt "$$file" || exit $$?; \
done; \
[ "$(KERNEL_ARCH_X86)" != "yes" ] || \
{ $(READELF) --sections --syms --wide $(WOLFCRYPT_PIE_FILES) | \
$(AWK) -v obj="$(obj)" ' \
@@ -294,19 +295,16 @@ endif
} else { \
exit(0); \
}}'; } || \
{ echo 'Error: symbol(s) missed by containerization.' >&2; exit 1; }
ifneq "$(quiet)" "silent_"
echo ' wolfCrypt .{text,data,rodata} sections containerized to .{text,data,rodata}.wolfcrypt'
{ echo 'Error: symbol(s) missed by containerization.' >&2; exit 1; }; \
if [[ "$(quiet)" != "silent_" ]]; then \
echo ' wolfCrypt .{text,data,rodata} sections containerized to .{text,data,rodata}.wolfcrypt'; \
fi
endif
$(obj)/linuxkm/module_exports.c: rename-pie-text-and-data-sections
endif
# auto-generate the exported symbol list, leveraging the WOLFSSL_API visibility tags.
# exclude symbols that don't match wc_* or wolf*.
$(obj)/linuxkm/module_exports.c: $(src)/module_exports.c.template $(WOLFSSL_OBJ_TARGETS) $(obj)/linuxkm/module_hooks.o
@$(RENAME_PIE_TEXT_AND_DATA_SECTIONS)
@cp $< $@ || exit $$?
if [[ "$${VERSION}" -gt 6 || ("$${VERSION}" -eq 6 && "$${PATCHLEVEL}" -ge 13) ]]; then
# use ASCII octal escape to avoid syntax disruption in the awk script.
+63 -18
View File
@@ -18,12 +18,11 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
.ONESHELL:
SHELL=bash
all: libwolfssl.ko libwolfssl.ko.signed
.PHONY: libwolfssl.ko
ifndef MODULE_TOP
MODULE_TOP=$(CURDIR)
endif
@@ -54,7 +53,7 @@ ifeq "$(ENABLED_LINUXKM_BENCHMARKS)" "yes"
endif
ifeq "$(ENABLED_LINUXKM_PIE)" "yes"
WOLFCRYPT_PIE_FILES := linuxkm/pie_first.o $(filter wolfcrypt/src/%,$(WOLFSSL_OBJ_FILES)) linuxkm/pie_redirect_table.o linuxkm/pie_last.o
WOLFCRYPT_PIE_FILES := $(filter wolfcrypt/src/%,$(WOLFSSL_OBJ_FILES)) linuxkm/pie_redirect_table.o
WOLFSSL_OBJ_FILES := $(WOLFCRYPT_PIE_FILES) $(filter-out $(WOLFCRYPT_PIE_FILES),$(WOLFSSL_OBJ_FILES))
endif
@@ -90,23 +89,20 @@ ifndef AWK
AWK := awk
endif
libwolfssl.ko:
@if test -z '$(KERNEL_ROOT)'; then echo '$$KERNEL_ROOT is unset' >&2; exit 1; fi
@if test -z '$(AM_CFLAGS)$(CFLAGS)'; then echo '$$AM_CFLAGS and $$CFLAGS are both unset.' >&2; exit 1; fi
@if test -z '$(src_libwolfssl_la_OBJECTS)'; then echo '$$src_libwolfssl_la_OBJECTS is unset.' >&2; exit 1; fi
# after commit 9a0ebe5011 (6.10), sources must be in $(obj). work around this by making links to all needed sources:
@mkdir -p '$(MODULE_TOP)/linuxkm'
@test '$(MODULE_TOP)/module_hooks.c' -ef '$(MODULE_TOP)/linuxkm/module_hooks.c' || cp --no-dereference --symbolic-link --no-clobber '$(MODULE_TOP)'/*.[ch] '$(MODULE_TOP)/linuxkm/'
@test '$(SRC_TOP)/wolfcrypt/src/wc_port.c' -ef '$(MODULE_TOP)/wolfcrypt/src/wc_port.c' || cp --no-dereference --symbolic-link --no-clobber --recursive '$(SRC_TOP)/wolfcrypt' '$(MODULE_TOP)/'
@test '$(SRC_TOP)/src/wolfio.c' -ef '$(MODULE_TOP)/src/wolfio.c' || cp --no-dereference --symbolic-link --no-clobber --recursive '$(SRC_TOP)/src' '$(MODULE_TOP)/'
ifeq "$(ENABLED_LINUXKM_PIE)" "yes"
@echo -e "const unsigned int wc_linuxkm_pie_reloc_tab[] = { ~0U };\nconst size_t wc_linuxkm_pie_reloc_tab_length = 1;" > wc_linuxkm_pie_reloc_tab.c
+$(MAKE) ARCH='$(KERNEL_ARCH)' $(OVERRIDE_PATHS) $(CROSS_COMPILE) -C '$(KERNEL_ROOT)' M='$(MODULE_TOP)' $(KBUILD_EXTRA_FLAGS) CC_FLAGS_FTRACE=
@$(READELF) --wide -r libwolfssl.ko | \
ifndef TMPDIR
TMPDIR := /tmp
endif
ifndef MAKE_TMPDIR
MAKE_TMPDIR := $(TMPDIR)
endif
GENERATE_RELOC_TAB := $(READELF) --wide -r libwolfssl.ko | \
$(AWK) 'BEGIN { \
n=0; \
bad_relocs=0; \
printf("%s\n ", \
"const unsigned int wc_linuxkm_pie_reloc_tab[] = { "); \
"const unsigned int wc_linuxkm_pie_reloc_tab[] = { "); \
} \
/^Relocation section '\''\.rela\.text\.wolfcrypt'\''/ { \
p=1; \
@@ -117,19 +113,68 @@ ifeq "$(ENABLED_LINUXKM_PIE)" "yes"
} \
/^0/ { \
if (p) { \
if ($$3 !~ "^(R_X86_64_PLT32|R_X86_64_PC32|R_AARCH64_.*)$$") { \
print "Unexpected relocation type:\n" $$0 >"/dev/stderr"; \
++bad_relocs; \
} \
printf("0x%s%s", \
gensub("^0*","",1,$$1), \
((++n%8) ? ", " : ",\n ")); \
} \
} \
END { \
if (bad_relocs) { \
print "Found " bad_relocs " unexpected relocations." >"/dev/stderr"; \
exit(1); \
} \
print "~0U };\nconst size_t wc_linuxkm_pie_reloc_tab_length = sizeof wc_linuxkm_pie_reloc_tab / sizeof wc_linuxkm_pie_reloc_tab[0];";\
}' > wc_linuxkm_pie_reloc_tab.c
}'
.PHONY: libwolfssl.ko
libwolfssl.ko:
@if test -z '$(KERNEL_ROOT)'; then echo '$$KERNEL_ROOT is unset' >&2; exit 1; fi
@if test -z '$(AM_CFLAGS)$(CFLAGS)'; then echo '$$AM_CFLAGS and $$CFLAGS are both unset.' >&2; exit 1; fi
@if test -z '$(src_libwolfssl_la_OBJECTS)'; then echo '$$src_libwolfssl_la_OBJECTS is unset.' >&2; exit 1; fi
# after commit 9a0ebe5011 (6.10), sources must be in $(obj). work around this by making links to all needed sources:
@mkdir -p '$(MODULE_TOP)/linuxkm'
@test '$(MODULE_TOP)/module_hooks.c' -ef '$(MODULE_TOP)/linuxkm/module_hooks.c' || cp --verbose --no-dereference --symbolic-link --no-clobber '$(MODULE_TOP)'/*.[ch] '$(MODULE_TOP)/linuxkm/'
@test '$(SRC_TOP)/wolfcrypt/src/wc_port.c' -ef '$(MODULE_TOP)/wolfcrypt/src/wc_port.c' || cp --verbose --no-dereference --symbolic-link --no-clobber --recursive '$(SRC_TOP)/wolfcrypt' '$(MODULE_TOP)/'
@test '$(SRC_TOP)/src/wolfio.c' -ef '$(MODULE_TOP)/src/wolfio.c' || cp --verbose --no-dereference --symbolic-link --no-clobber --recursive '$(SRC_TOP)/src' '$(MODULE_TOP)/'
ifeq "$(ENABLED_LINUXKM_PIE)" "yes"
@$(eval RELOC_TMP := $(shell mktemp "$(MAKE_TMPDIR)/wc_linuxkm_pie_reloc_tab.c.XXXXXX"))
@[[ -f wc_linuxkm_pie_reloc_tab.c ]] || echo -e "const unsigned int wc_linuxkm_pie_reloc_tab[] = { ~0U };\nconst size_t wc_linuxkm_pie_reloc_tab_length = 1;" > wc_linuxkm_pie_reloc_tab.c
@if [[ -f libwolfssl.ko ]]; then touch -r libwolfssl.ko "$(RELOC_TMP)"; fi
+$(MAKE) ARCH='$(KERNEL_ARCH)' $(OVERRIDE_PATHS) $(CROSS_COMPILE) -C '$(KERNEL_ROOT)' M='$(MODULE_TOP)' $(KBUILD_EXTRA_FLAGS) CC_FLAGS_FTRACE=
# if the above make didn't build a fresh libwolfssl.ko, then the module is already up to date and we leave it untouched, assuring stability for purposes of module-update-fips-hash.
@if [[ ! libwolfssl.ko -nt "$(RELOC_TMP)" ]]; then rm "$(RELOC_TMP)"; exit 0; fi
@$(GENERATE_RELOC_TAB) >| wc_linuxkm_pie_reloc_tab.c
+$(MAKE) ARCH='$(KERNEL_ARCH)' $(OVERRIDE_PATHS) $(CROSS_COMPILE) -C '$(KERNEL_ROOT)' M='$(MODULE_TOP)' $(KBUILD_EXTRA_FLAGS) CC_FLAGS_FTRACE=
@$(GENERATE_RELOC_TAB) >| $(RELOC_TMP)
@if diff wc_linuxkm_pie_reloc_tab.c $(RELOC_TMP); then echo " Relocation table is stable."; else echo "PIE failed: relocation table is unstable." 1>&2; rm $(RELOC_TMP); exit 1; fi
@rm $(RELOC_TMP)
else
+$(MAKE) ARCH='$(KERNEL_ARCH)' $(OVERRIDE_PATHS) $(CROSS_COMPILE) -C '$(KERNEL_ROOT)' M='$(MODULE_TOP)' $(KBUILD_EXTRA_FLAGS)
endif
.PHONY: module-update-fips-hash
module-update-fips-hash: libwolfssl.ko
@if test -z '$(FIPS_HASH)'; then echo ' $$FIPS_HASH is unset' >&2; exit 1; fi
@if [[ ! '$(FIPS_HASH)' =~ [0-9a-fA-F]{64} ]]; then echo ' $$FIPS_HASH is malformed' >&2; exit 1; fi
@readarray -t rodata_segment < <($(READELF) --wide --sections libwolfssl.ko | \
sed -E -n 's/^[[:space:]]*\[[[:space:]]*([0-9]+)\][[:space:]]+\.rodata\.wolfcrypt[[:space:]]+PROGBITS[[:space:]]+[0-9a-fA-F]+[[:space:]]+([0-9a-fA-F]+)[[:space:]].*$$/\1\n\2/p'); \
if [[ $${#rodata_segment[@]} != 2 ]]; then echo ' unexpected rodata_segment.' >&2; exit 1; fi; \
readarray -t verifyCore_attrs < <($(READELF) --wide --symbols libwolfssl.ko | \
sed -E -n 's/^[[:space:]]*[0-9]+: ([0-9a-fA-F]+)[[:space:]]+([0-9]+)[[:space:]]+OBJECT[[:space:]]+[A-Z]+[[:space:]]+[A-Z]+[[:space:]]+'"$${rodata_segment[0]}"'[[:space:]]+verifyCore$$/\1\n\2/p'); \
if [[ $${#verifyCore_attrs[@]} != 2 ]]; then echo ' unexpected verifyCore_attrs.' >&2; exit 1; fi; \
if [[ "$${verifyCore_attrs[1]}" != "65" ]]; then echo " verifyCore has unexpected length $${verifyCore_attrs[1]}." >&2; exit 1; fi; \
verifyCore_offset=$$((0x$${rodata_segment[1]} + 0x$${verifyCore_attrs[0]})); \
current_verifyCore=$$(dd bs=1 if=libwolfssl.ko skip=$$verifyCore_offset count=64 status=none); \
if [[ ! "$$current_verifyCore" =~ [0-9a-fA-F]{64} ]]; then echo " verifyCore at offset $$verifyCore_offset has unexpected value." >&2; exit 1; fi; \
if [[ '$(FIPS_HASH)' == "$$current_verifyCore" ]]; then echo ' Supplied FIPS_HASH matches existing verifyCore -- no update needed.'; exit 0; fi; \
echo -n '$(FIPS_HASH)' | dd bs=1 conv=notrunc of=libwolfssl.ko seek=$$verifyCore_offset count=64 status=none && \
echo " FIPS verifyCore updated successfully." && \
if [[ -f libwolfssl.ko.signed ]]; then $(MAKE) -C . libwolfssl.ko.signed; fi
libwolfssl.ko.signed: libwolfssl.ko
ifdef FORCE_NO_MODULE_SIG
@echo 'Skipping module signature operation because FORCE_NO_MODULE_SIG.'
-2
View File
@@ -8,9 +8,7 @@ EXTRA_DIST += m4/ax_linuxkm.m4 \
linuxkm/get_thread_size.c \
linuxkm/module_hooks.c \
linuxkm/module_exports.c.template \
linuxkm/pie_first.c \
linuxkm/pie_redirect_table.c \
linuxkm/pie_last.c \
linuxkm/linuxkm_memory.c \
linuxkm/linuxkm_wc_port.h \
linuxkm/x86_vector_register_glue.c \
+31 -11
View File
@@ -422,6 +422,17 @@
#define WC_AES_XTS_SUPPORT_SIMULTANEOUS_ENC_AND_DEC_KEYS
#endif
/* setup for LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT needs to be here
* to assure that calls to get_random_bytes() in random.c are gated out
* (they would recurse, potentially infinitely).
*/
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) && \
!defined(LINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG) && \
!defined(LINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG_DEFAULT)) && \
!defined(LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT)
#define LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT
#endif
#ifndef __PIE__
#include <linux/crypto.h>
#include <linux/scatterlist.h>
@@ -469,7 +480,7 @@
extern void free_wolfcrypt_linuxkm_fpu_states(void);
WOLFSSL_API __must_check int wc_can_save_vector_registers_x86(void);
WOLFSSL_API __must_check int wc_save_vector_registers_x86(enum wc_svr_flags flags);
WOLFSSL_API void wc_restore_vector_registers_x86(void);
WOLFSSL_API void wc_restore_vector_registers_x86(enum wc_svr_flags flags);
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
#include <asm/i387.h>
@@ -505,14 +516,14 @@
#endif
#endif
#ifndef RESTORE_VECTOR_REGISTERS
#define RESTORE_VECTOR_REGISTERS() wc_restore_vector_registers_x86()
#define RESTORE_VECTOR_REGISTERS() wc_restore_vector_registers_x86(WC_SVR_FLAG_NONE)
#endif
#ifndef DISABLE_VECTOR_REGISTERS
#define DISABLE_VECTOR_REGISTERS() wc_save_vector_registers_x86(WC_SVR_FLAG_INHIBIT)
#endif
#ifndef REENABLE_VECTOR_REGISTERS
#define REENABLE_VECTOR_REGISTERS() wc_restore_vector_registers_x86()
#define REENABLE_VECTOR_REGISTERS() wc_restore_vector_registers_x86(WC_SVR_FLAG_INHIBIT)
#endif
#elif defined(WOLFSSL_LINUXKM_USE_SAVE_VECTOR_REGISTERS) && (defined(CONFIG_ARM) || defined(CONFIG_ARM64))
@@ -653,13 +664,13 @@
#error "compiling -fPIE requires PIE redirect table."
#endif
#ifdef USE_WOLFSSL_LINUXKM_PIE_REDIRECT_TABLE
#ifdef HAVE_LINUXKM_PIE_SUPPORT
#ifdef CONFIG_MIPS
#undef __ARCH_MEMCMP_NO_REDIRECT
#undef memcmp
extern int memcmp(const void *s1, const void *s2, size_t n);
#endif
#ifndef WOLFSSL_TEXT_SEGMENT_CANONICALIZER
#define WOLFSSL_TEXT_SEGMENT_CANONICALIZER(text_in, text_in_len, text_out, cur_index_p) \
wc_linuxkm_normalize_relocations(text_in, text_in_len, text_out, cur_index_p)
#define WOLFSSL_TEXT_SEGMENT_CANONICALIZER_BUFSIZ 8192
#endif
extern const u8
__wc_text_start[],
@@ -677,6 +688,15 @@
size_t text_in_len,
u8 *text_out,
ssize_t *cur_index_p);
#endif /* HAVE_LINUXKM_PIE_SUPPORT */
#ifdef USE_WOLFSSL_LINUXKM_PIE_REDIRECT_TABLE
#ifdef CONFIG_MIPS
#undef __ARCH_MEMCMP_NO_REDIRECT
#undef memcmp
extern int memcmp(const void *s1, const void *s2, size_t n);
#endif
struct wolfssl_linuxkm_pie_redirect_table {
typeof(wc_linuxkm_normalize_relocations) *wc_linuxkm_normalize_relocations;
@@ -1215,12 +1235,12 @@
#if defined(CONFIG_X86)
WOLFSSL_API __must_check int wc_can_save_vector_registers_x86(void);
WOLFSSL_API __must_check int wc_save_vector_registers_x86(enum wc_svr_flags flags);
WOLFSSL_API void wc_restore_vector_registers_x86(void);
WOLFSSL_API void wc_restore_vector_registers_x86(enum wc_svr_flags flags);
#ifndef DISABLE_VECTOR_REGISTERS
#define DISABLE_VECTOR_REGISTERS() wc_save_vector_registers_x86(WC_SVR_FLAG_INHIBIT)
#endif
#ifndef REENABLE_VECTOR_REGISTERS
#define REENABLE_VECTOR_REGISTERS() wc_restore_vector_registers_x86()
#define REENABLE_VECTOR_REGISTERS() wc_restore_vector_registers_x86(WC_SVR_FLAG_INHIBIT)
#endif
#else /* !CONFIG_X86 */
#error WOLFSSL_LINUXKM_USE_SAVE_VECTOR_REGISTERS is set for an unimplemented architecture.
+5
View File
@@ -19,6 +19,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
/* included by linuxkm/lkcapi_glue.c */
#ifndef WC_SKIP_INCLUDED_C_FILES
#ifndef LINUXKM_LKCAPI_REGISTER
#error lkcapi_aes_glue.c included in non-LINUXKM_LKCAPI_REGISTER project.
#endif
@@ -4312,3 +4315,5 @@ static int linuxkm_test_aesecb(void) {
#endif /* LINUXKM_LKCAPI_REGISTER_AESECB */
#endif /* LINUXKM_LKCAPI_REGISTER_AES */
#endif /* !WC_SKIP_INCLUDED_C_FILES */
+7 -3
View File
@@ -20,6 +20,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
/* included by linuxkm/lkcapi_glue.c */
#ifndef WC_SKIP_INCLUDED_C_FILES
#ifndef LINUXKM_LKCAPI_REGISTER
#error lkcapi_dh_glue.c included in non-LINUXKM_LKCAPI_REGISTER project.
#endif
@@ -33,9 +36,8 @@
#endif
#if defined(LINUXKM_LKCAPI_REGISTER_DH) && \
(!defined(WOLFSSL_DH_EXTRA) || \
!defined(WOLFSSL_DH_GEN_PUB))
/* not supported without WOLFSSL_DH_EXTRA && WOLFSSL_DH_GEN_PUB */
!defined(WOLFSSL_DH_EXTRA)
/* not supported without WOLFSSL_DH_EXTRA */
#undef LINUXKM_LKCAPI_REGISTER_DH
#if defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_DH)
@@ -2966,3 +2968,5 @@ test_kpp_end:
}
#endif /* LINUXKM_LKCAPI_REGISTER_DH */
#endif /* !WC_SKIP_INCLUDED_C_FILES */
+5
View File
@@ -20,6 +20,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
/* included by linuxkm/lkcapi_glue.c */
#ifndef WC_SKIP_INCLUDED_C_FILES
#ifndef LINUXKM_LKCAPI_REGISTER
#error lkcapi_ecdh_glue.c included in non-LINUXKM_LKCAPI_REGISTER project.
#endif
@@ -991,3 +994,5 @@ test_ecdh_nist_end:
}
#endif /* LINUXKM_LKCAPI_REGISTER_ECDH */
#endif /* !WC_SKIP_INCLUDED_C_FILES */
+5
View File
@@ -20,6 +20,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
/* included by linuxkm/lkcapi_glue.c */
#ifndef WC_SKIP_INCLUDED_C_FILES
#ifndef LINUXKM_LKCAPI_REGISTER
#error lkcapi_ecdsa_glue.c included in non-LINUXKM_LKCAPI_REGISTER project.
#endif
@@ -843,3 +846,5 @@ test_ecdsa_nist_end:
}
#endif /* LINUXKM_LKCAPI_REGISTER_ECDSA */
#endif /* !WC_SKIP_INCLUDED_C_FILES */
+3
View File
@@ -21,6 +21,7 @@
*/
/* included by linuxkm/module_hooks.c */
#ifndef WC_SKIP_INCLUDED_C_FILES
#ifndef LINUXKM_LKCAPI_REGISTER
#error lkcapi_glue.c included in non-LINUXKM_LKCAPI_REGISTER project.
@@ -981,3 +982,5 @@ static int linuxkm_lkcapi_unregister(void)
return seen_err;
}
#endif /* !WC_SKIP_INCLUDED_C_FILES */
+5
View File
@@ -20,6 +20,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
/* included by linuxkm/lkcapi_glue.c */
#ifndef WC_SKIP_INCLUDED_C_FILES
#ifndef LINUXKM_LKCAPI_REGISTER
#error lkcapi_rsa_glue.c included in non-LINUXKM_LKCAPI_REGISTER project.
#endif
@@ -3250,3 +3253,5 @@ static int get_hash_enc_len(int hash_oid)
return enc_len;
}
#endif /* LINUXKM_LKCAPI_REGISTER_RSA */
#endif /* !WC_SKIP_INCLUDED_C_FILES */
+6 -4
View File
@@ -19,6 +19,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
/* included by linuxkm/lkcapi_glue.c */
#ifndef WC_SKIP_INCLUDED_C_FILES
#ifndef LINUXKM_LKCAPI_REGISTER
#error lkcapi_sha_glue.c included in non-LINUXKM_LKCAPI_REGISTER project.
#endif
@@ -374,10 +377,7 @@
!defined(LINUXKM_LKCAPI_REGISTER_HASH_DRBG)
#define LINUXKM_LKCAPI_REGISTER_HASH_DRBG
#endif
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) && !defined(LINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG_DEFAULT)) && \
!defined(LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT)
#define LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT
#endif
/* setup for LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT is in linuxkm_wc_port.h */
#else
#undef LINUXKM_LKCAPI_REGISTER_HASH_DRBG
#endif
@@ -2048,3 +2048,5 @@ static int wc_linuxkm_drbg_cleanup(void) {
}
#endif /* LINUXKM_LKCAPI_REGISTER_HASH_DRBG */
#endif /* !WC_SKIP_INCLUDED_C_FILES */
+107 -57
View File
@@ -97,7 +97,7 @@ extern const unsigned int wolfCrypt_PIE_rodata_end[];
/* cheap portable ad-hoc hash function to confirm bitwise stability of the PIE
* binary image.
*/
static unsigned int hash_span(char *start, char *end) {
static unsigned int hash_span(const u8 *start, const u8 *end) {
unsigned int sum = 1;
while (start < end) {
unsigned int rotate_by;
@@ -108,6 +108,9 @@ static unsigned int hash_span(char *start, char *end) {
return sum;
}
static int total_text_r = 0, total_rodata_r = 0, total_rwdata_r = 0,
total_bss_r = 0, total_other_r = 0;
#endif /* DEBUG_LINUXKM_PIE_SUPPORT */
#ifdef USE_WOLFSSL_LINUXKM_PIE_REDIRECT_TABLE
@@ -323,6 +326,7 @@ static WC_INLINE int IntelRDseed64_r(word64* rnd)
WC_SANITIZE_DISABLE();
*rnd ^= buf; /* deliberately retain any garbage passed in the dest buffer. */
WC_SANITIZE_ENABLE();
buf = 0;
}
return 0;
}
@@ -415,24 +419,28 @@ static int wolfssl_init(void)
#endif
{
char *pie_text_start = (char *)wolfCrypt_PIE_first_function;
char *pie_text_end = (char *)wolfCrypt_PIE_last_function;
char *pie_rodata_start = (char *)wolfCrypt_PIE_rodata_start;
char *pie_rodata_end = (char *)wolfCrypt_PIE_rodata_end;
unsigned int text_hash, rodata_hash;
text_hash = hash_span(pie_text_start, pie_text_end);
rodata_hash = hash_span(pie_rodata_start, pie_rodata_end);
unsigned int text_hash = hash_span(__wc_text_start, __wc_text_end);
unsigned int rodata_hash = hash_span(__wc_rodata_start, __wc_rodata_end);
/* note, "%pK" conceals the actual layout information. "%px" exposes
* the true module start address, which is potentially useful to an
* attacker.
*/
pr_info("wolfCrypt section hashes (spans): text 0x%x (%lu), rodata 0x%x (%lu), offset %c0x%lx\n",
text_hash, pie_text_end-pie_text_start,
rodata_hash, pie_rodata_end-pie_rodata_start,
pie_text_start < pie_rodata_start ? '+' : '-',
pie_text_start < pie_rodata_start ? pie_rodata_start - pie_text_start : pie_text_start - pie_rodata_start);
text_hash, __wc_text_end - __wc_text_start,
rodata_hash, __wc_rodata_end - __wc_rodata_start,
&__wc_text_start[0] < &__wc_rodata_start[0] ? '+' : '-',
&__wc_text_start[0] < &__wc_rodata_start[0] ? &__wc_rodata_start[0] - &__wc_text_start[0] : &__wc_text_start[0] - &__wc_rodata_start[0]);
pr_info("wolfCrypt segments: text=%x-%x, rodata=%x-%x, "
"rwdata=%x-%x, bss=%x-%x\n",
(unsigned)(uintptr_t)__wc_text_start,
(unsigned)(uintptr_t)__wc_text_end,
(unsigned)(uintptr_t)__wc_rodata_start,
(unsigned)(uintptr_t)__wc_rodata_end,
(unsigned)(uintptr_t)__wc_rwdata_start,
(unsigned)(uintptr_t)__wc_rwdata_end,
(unsigned)(uintptr_t)__wc_bss_start,
(unsigned)(uintptr_t)__wc_bss_end);
}
#endif /* HAVE_LINUXKM_PIE_SUPPORT && DEBUG_LINUXKM_PIE_SUPPORT */
@@ -443,7 +451,19 @@ static int wolfssl_init(void)
pr_err("ERROR: wolfCrypt_SetCb_fips() failed: %s\n", wc_GetErrorString(ret));
return -ECANCELED;
}
#if defined(HAVE_LINUXKM_PIE_SUPPORT) && defined(DEBUG_LINUXKM_PIE_SUPPORT)
total_text_r = total_rodata_r = total_rwdata_r = total_bss_r =
total_other_r = 0;
#endif
fipsEntry();
#if defined(HAVE_LINUXKM_PIE_SUPPORT) && defined(DEBUG_LINUXKM_PIE_SUPPORT)
pr_info("relocation normalizations: text=%d, rodata=%d, rwdata=%d, bss=%d, other=%d\n",
total_text_r, total_rodata_r, total_rwdata_r, total_bss_r, total_other_r);
#endif
ret = wolfCrypt_GetStatus_fips();
if (ret != 0) {
pr_err("ERROR: wolfCrypt_GetStatus_fips() failed with code %d: %s\n", ret, wc_GetErrorString(ret));
@@ -638,20 +658,7 @@ MODULE_AUTHOR("https://www.wolfssl.com/");
MODULE_DESCRIPTION("libwolfssl cryptographic and protocol facilities");
MODULE_VERSION(LIBWOLFSSL_VERSION_STRING);
#ifdef USE_WOLFSSL_LINUXKM_PIE_REDIRECT_TABLE
/* get_current() is an inline or macro, depending on the target -- sidestep the whole issue with a wrapper func. */
static struct task_struct *my_get_current_thread(void) {
return get_current();
}
/* preempt_count() is an inline function in arch/x86/include/asm/preempt.h that
* accesses __preempt_count, which is an int array declared with
* DECLARE_PER_CPU_CACHE_HOT.
*/
static int my_preempt_count(void) {
return preempt_count();
}
#ifdef HAVE_LINUXKM_PIE_SUPPORT
#include "linuxkm/wc_linuxkm_pie_reloc_tab.c"
@@ -706,12 +713,14 @@ ssize_t wc_linuxkm_normalize_relocations(
{
ssize_t i = -1;
size_t text_in_offset;
size_t last_reloc; /* for error-checking order in wc_linuxkm_pie_reloc_tab[] */
#ifdef DEBUG_LINUXKM_PIE_SUPPORT
int n_text_r = 0, n_rodata_r = 0, n_rwdata_r = 0, n_bss_r = 0, n_other_r = 0;
#endif
if ((text_in < __wc_text_start) ||
(text_in >= __wc_text_end))
if ((text_in_len == 0) ||
(text_in < __wc_text_start) ||
(text_in + text_in_len >= __wc_text_end))
{
return -1;
}
@@ -732,7 +741,7 @@ ssize_t wc_linuxkm_normalize_relocations(
memcpy(text_out, text_in, text_in_len);
WC_SANITIZE_ENABLE();
for (;
for (last_reloc = wc_linuxkm_pie_reloc_tab[i > 0 ? i-1 : 0];
(size_t)i < wc_linuxkm_pie_reloc_tab_length - 1;
++i)
{
@@ -740,6 +749,13 @@ ssize_t wc_linuxkm_normalize_relocations(
int reloc_buf;
uintptr_t abs_ptr;
if (last_reloc > next_reloc) {
pr_err("BUG: out-of-order offset found at wc_linuxkm_pie_reloc_tab[%zd]: %zu > %zu\n",
i, last_reloc, next_reloc);
return -1;
}
last_reloc = next_reloc;
next_reloc -= text_in_offset;
if (next_reloc >= text_in_len) {
@@ -762,7 +778,7 @@ ssize_t wc_linuxkm_normalize_relocations(
abs_ptr = (uintptr_t)text_in + next_reloc + 4 + reloc_buf;
if ((abs_ptr >= (uintptr_t)__wc_text_start) &&
(abs_ptr < (uintptr_t)__wc_text_end))
(abs_ptr <= (uintptr_t)__wc_text_end))
{
/* internal references in the .wolfcrypt.text segment don't need
* normalization.
@@ -772,35 +788,40 @@ ssize_t wc_linuxkm_normalize_relocations(
#endif
continue;
}
else if ((abs_ptr >= (uintptr_t)__wc_rodata_start) &&
(abs_ptr < (uintptr_t)__wc_rodata_end))
/* for the rodata, rwdata, and bss segments, recognize dest addrs one
* byte outside the segment -- the compiler occasionally generates
* these, e.g. __wc_rwdata_start - 1 in DoInCoreCheck() in kernel 6.1
* build of FIPS v5.
*/
else if ((abs_ptr >= (uintptr_t)__wc_rodata_start - 1) &&
(abs_ptr <= (uintptr_t)__wc_rodata_end + 1))
{
#ifdef DEBUG_LINUXKM_PIE_SUPPORT
++n_rodata_r;
#endif
reloc_buf -= (int)((uintptr_t)__wc_rodata_start -
reloc_buf -= (int)((uintptr_t)__wc_rodata_start - 1 -
(uintptr_t)__wc_text_start);
reloc_buf |= WC_RODATA_TAG;
reloc_buf ^= WC_RODATA_TAG;
}
else if ((abs_ptr >= (uintptr_t)__wc_rwdata_start) &&
(abs_ptr < (uintptr_t)__wc_rwdata_end))
else if ((abs_ptr >= (uintptr_t)__wc_rwdata_start - 1) &&
(abs_ptr <= (uintptr_t)__wc_rwdata_end + 1))
{
#ifdef DEBUG_LINUXKM_PIE_SUPPORT
++n_rwdata_r;
#endif
reloc_buf -= (int)((uintptr_t)__wc_rwdata_start -
reloc_buf -= (int)((uintptr_t)__wc_rwdata_start - 1 -
(uintptr_t)__wc_text_start);
reloc_buf |= WC_RWDATA_TAG;
reloc_buf ^= WC_RWDATA_TAG;
}
else if ((abs_ptr >= (uintptr_t)__wc_bss_start) &&
(abs_ptr < (uintptr_t)__wc_bss_end))
else if ((abs_ptr >= (uintptr_t)__wc_bss_start - 1) &&
(abs_ptr <= (uintptr_t)__wc_bss_end + 1))
{
#ifdef DEBUG_LINUXKM_PIE_SUPPORT
++n_bss_r;
#endif
reloc_buf -= (int)((uintptr_t)__wc_bss_start -
reloc_buf -= (int)((uintptr_t)__wc_bss_start - 1 -
(uintptr_t)__wc_text_start);
reloc_buf |= WC_BSS_TAG;
reloc_buf ^= WC_BSS_TAG;
}
else {
/* relocation referring to non-wolfcrypt segment -- these can only
@@ -809,28 +830,39 @@ ssize_t wc_linuxkm_normalize_relocations(
reloc_buf = WC_OTHER_TAG;
#ifdef DEBUG_LINUXKM_PIE_SUPPORT
++n_other_r;
/* we're currently only handling 32 bit relocations (R_X86_64_PLT32
* and R_X86_64_PC32) so the top half of the word64 is padding we
* can lop off for rendering.
*/
pr_notice("found non-wolfcrypt relocation at text offset 0x%x to "
"addr 0x%lx, text=%px-%px, rodata=%px-%px, "
"rwdata=%px-%px, bss=%px-%px\n",
"addr 0x%x, text=%x-%x, rodata=%x-%x, "
"rwdata=%x-%x, bss=%x-%x\n",
wc_linuxkm_pie_reloc_tab[i],
abs_ptr,
__wc_text_start,
__wc_text_end,
__wc_rodata_start,
__wc_rodata_end,
__wc_rwdata_start,
__wc_rwdata_end,
__wc_bss_start,
__wc_bss_end);
(unsigned)(uintptr_t)abs_ptr,
(unsigned)(uintptr_t)__wc_text_start,
(unsigned)(uintptr_t)__wc_text_end,
(unsigned)(uintptr_t)__wc_rodata_start,
(unsigned)(uintptr_t)__wc_rodata_end,
(unsigned)(uintptr_t)__wc_rwdata_start,
(unsigned)(uintptr_t)__wc_rwdata_end,
(unsigned)(uintptr_t)__wc_bss_start,
(unsigned)(uintptr_t)__wc_bss_end);
#endif
}
put_unaligned((u32)reloc_buf, (int32_t *)&text_out[next_reloc]);
}
#ifdef DEBUG_LINUXKM_PIE_SUPPORT
total_text_r += n_text_r;
total_rodata_r += n_rodata_r;
total_rwdata_r += n_rwdata_r;
total_bss_r += n_bss_r;
total_other_r += n_other_r;
if (n_other_r > 0)
pr_notice("text_in=%px relocs=%d/%d/%d/%d/%d ret = %zu\n",
text_in, n_text_r, n_rodata_r, n_rwdata_r, n_bss_r, n_other_r,
pr_notice("text_in=%x relocs=%d/%d/%d/%d/%d ret = %zu\n",
(unsigned)(uintptr_t)text_in, n_text_r, n_rodata_r,
n_rwdata_r, n_bss_r, n_other_r,
text_in_len);
#endif
@@ -840,6 +872,25 @@ ssize_t wc_linuxkm_normalize_relocations(
return text_in_len;
}
#endif /* HAVE_LINUXKM_PIE_SUPPORT */
#ifdef USE_WOLFSSL_LINUXKM_PIE_REDIRECT_TABLE
/* get_current() is an inline or macro, depending on the target -- sidestep the
* whole issue with a wrapper func.
*/
static struct task_struct *my_get_current_thread(void) {
return get_current();
}
/* preempt_count() is an inline function in arch/x86/include/asm/preempt.h that
* accesses __preempt_count, which is an int array declared with
* DECLARE_PER_CPU_CACHE_HOT.
*/
static int my_preempt_count(void) {
return preempt_count();
}
static int set_up_wolfssl_linuxkm_pie_redirect_table(void) {
memset(
&wolfssl_linuxkm_pie_redirect_table,
@@ -1124,7 +1175,6 @@ static int set_up_wolfssl_linuxkm_pie_redirect_table(void) {
#endif /* USE_WOLFSSL_LINUXKM_PIE_REDIRECT_TABLE */
#ifdef WOLFCRYPT_FIPS_CORE_DYNAMIC_HASH_VALUE
#include <wolfssl/wolfcrypt/coding.h>
-38
View File
@@ -1,38 +0,0 @@
/* linuxkm/pie_last.c -- memory fenceposts for checking binary image stability
*
* Copyright (C) 2006-2025 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 3 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 __PIE__
#error pie_last.c must be compiled -fPIE.
#endif
#include <wolfssl/wolfcrypt/libwolfssl_sources.h>
#include <wolfssl/ssl.h>
int wolfCrypt_PIE_last_function(void);
int wolfCrypt_PIE_last_function(void) {
return 1;
}
const unsigned int wolfCrypt_PIE_rodata_end[];
const unsigned int wolfCrypt_PIE_rodata_end[] =
/* random values, analogous to wolfCrypt_FIPS_ro_{start,end} */
{ 0xa4aaaf71, 0x55c4b7d0 };
+4
View File
@@ -3,24 +3,28 @@ SECTIONS {
.text.wolfcrypt : {
__wc_text_start = .;
*(.text.wolfcrypt)
. = ALIGN(4096);
__wc_text_end = .;
}
. = ALIGN(4096);
.rodata.wolfcrypt : {
__wc_rodata_start = .;
*(.rodata.wolfcrypt)
. = ALIGN(4096);
__wc_rodata_end = .;
}
. = ALIGN(4096);
.data.wolfcrypt : {
__wc_rwdata_start = .;
*(.data.wolfcrypt)
. = ALIGN(4096);
__wc_rwdata_end = .;
}
. = ALIGN(4096);
.bss.wolfcrypt : {
__wc_bss_start = .;
*(.bss.wolfcrypt)
. = ALIGN(4096);
__wc_bss_end = .;
}
. = ALIGN(4096);
+29 -14
View File
@@ -21,6 +21,7 @@
*/
/* included by linuxkm/module_hooks.c */
#ifndef WC_SKIP_INCLUDED_C_FILES
#if !defined(WOLFSSL_LINUXKM_USE_SAVE_VECTOR_REGISTERS) || !defined(CONFIG_X86)
#error x86_vector_register_glue.c included in non-vectorized/non-x86 project.
@@ -346,26 +347,26 @@ WARN_UNUSED_RESULT int wc_save_vector_registers_x86(enum wc_svr_flags flags)
/* allow for nested calls */
if (pstate && (pstate->fpu_state != 0U)) {
if (unlikely(pstate->fpu_state & WC_FPU_INHIBITED_FLAG)) {
if (flags & WC_SVR_FLAG_INHIBIT) {
/* allow recursive inhibit calls as long as the whole stack of
* them is inhibiting.
*/
++pstate->fpu_state;
return 0;
}
else
return WC_ACCEL_INHIBIT_E;
if (pstate->fpu_state & WC_FPU_INHIBITED_FLAG) {
/* don't allow recursive inhibit calls when already inhibited --
* it would add no functionality and require keeping a separate
* count of inhibit recursions.
*/
return WC_ACCEL_INHIBIT_E;
}
if (unlikely(flags & WC_SVR_FLAG_INHIBIT))
return BAD_STATE_E;
if (unlikely((pstate->fpu_state & WC_FPU_COUNT_MASK)
== WC_FPU_COUNT_MASK))
{
pr_err("ERROR: wc_save_vector_registers_x86 recursion register overflow for "
"pid %d on CPU %d.\n", pstate->pid, raw_smp_processor_id());
return BAD_STATE_E;
} else {
}
if (flags & WC_SVR_FLAG_INHIBIT) {
++pstate->fpu_state;
pstate->fpu_state |= WC_FPU_INHIBITED_FLAG;
return 0;
}
else {
++pstate->fpu_state;
return 0;
}
@@ -475,7 +476,7 @@ WARN_UNUSED_RESULT int wc_save_vector_registers_x86(enum wc_svr_flags flags)
__builtin_unreachable();
}
void wc_restore_vector_registers_x86(void)
void wc_restore_vector_registers_x86(enum wc_svr_flags flags)
{
struct wc_thread_fpu_count_ent *pstate;
@@ -494,6 +495,14 @@ void wc_restore_vector_registers_x86(void)
}
if ((--pstate->fpu_state & WC_FPU_COUNT_MASK) > 0U) {
if (flags & WC_SVR_FLAG_INHIBIT) {
if (pstate->fpu_state & WC_FPU_INHIBITED_FLAG)
pstate->fpu_state &= ~WC_FPU_INHIBITED_FLAG;
else
VRG_PR_WARN_X("BUG: wc_restore_vector_registers_x86() called by pid %d on CPU %d "
"with _INHIBIT flag but saved state isn't _INHIBITED_.\n", task_pid_nr(current),
raw_smp_processor_id());
}
return;
}
@@ -505,6 +514,10 @@ void wc_restore_vector_registers_x86(void)
#endif
local_bh_enable();
} else if (unlikely(pstate->fpu_state & WC_FPU_INHIBITED_FLAG)) {
if (unlikely(! (flags & WC_SVR_FLAG_INHIBIT)))
VRG_PR_WARN_X("BUG: wc_restore_vector_registers_x86() called by pid %d on CPU %d "
"without _INHIBIT flag but saved state is _INHIBITED_.\n", task_pid_nr(current),
raw_smp_processor_id());
pstate->fpu_state = 0U;
wc_linuxkm_fpu_state_release(pstate);
local_bh_enable();
@@ -519,3 +532,5 @@ void wc_restore_vector_registers_x86(void)
return;
}
#endif /* !WC_SKIP_INCLUDED_C_FILES */
+277 -465
View File
@@ -315,6 +315,82 @@ void wolfssl_priv_der_unblind(DerBuffer* key, DerBuffer* mask)
const unsigned char* secret, int secretSz, void* ctx);
#endif
/*
* This function builds up string for key-logging then call user's
* key-log-callback to pass the string.
* The user's key-logging callback has been set via
* wolfSSL_CTX_set_keylog_callback function. The logging string format is:
* "<Label> <hex-encoded client random> <hex-encoded secret>"
*
* parameter
* - ssl: WOLFSSL object
* - secret: pointer to the buffer holding secret
* - secretSz: size of secret
* - label: for logging string
* - labelSz: label size
* returns 0 on success, negative value on failure.
*/
static int SessionSecret_callback_common(const WOLFSSL* ssl,
const unsigned char* secret, int secretSz,
const char* label, int labelSz)
{
wolfSSL_CTX_keylog_cb_func logCb = NULL;
int buffSz;
byte* log = NULL;
word32 outSz;
int idx;
int ret;
if (ssl == NULL || secret == NULL || secretSz == 0 ||
label == NULL || labelSz == 0)
return BAD_FUNC_ARG;
if (ssl->arrays == NULL || ssl->ctx == NULL)
return BAD_FUNC_ARG;
/* get the user-callback func from CTX */
logCb = ssl->ctx->keyLogCb;
if (logCb == NULL)
return 0;
/* prepare a log string for passing user callback
* "<Label> <hex-encoded client random> <hex-encoded secret>" */
buffSz = labelSz + (RAN_LEN * 2) + 1 + secretSz * 2 + 1;
log = XMALLOC(buffSz, ssl->heap, DYNAMIC_TYPE_SECRET);
if (log == NULL)
return MEMORY_E;
#ifdef WOLFSSL_CHECK_MEM_ZERO
wc_MemZero_Add("SessionSecret log", log, buffSz);
#endif
XMEMSET(log, 0, buffSz);
XMEMCPY(log, label, labelSz - 1); /* put label w/o terminator */
log[labelSz - 1] = ' '; /* '\0' -> ' ' */
idx = labelSz;
outSz = buffSz - idx;
if ((ret = Base16_Encode(ssl->arrays->clientRandom, RAN_LEN,
log + idx, &outSz)) == 0) {
idx += (outSz - 1); /* reduce terminator byte */
outSz = buffSz - idx;
if (outSz > 1) {
log[idx++] = ' '; /* add space*/
outSz = buffSz - idx;
if ((ret = Base16_Encode((byte*)secret, secretSz,
log + idx, &outSz)) == 0) {
logCb(ssl, (char*)log);
ret = 0;
}
}
else
ret = MEMORY_E;
}
/* Zero out Base16 encoded secret and other data. */
ForceZero(log, buffSz);
XFREE(log, ssl->heap, DYNAMIC_TYPE_SECRET);
return ret;
}
/* Label string for client random. */
#define SSC_CR "CLIENT_RANDOM"
@@ -335,34 +411,16 @@ void wolfssl_priv_der_unblind(DerBuffer* key, DerBuffer* mask)
static int SessionSecret_callback(WOLFSSL* ssl, void* secret,
int* secretSz, void* ctx)
{
wolfSSL_CTX_keylog_cb_func logCb = NULL;
int msSz;
int invalidCount;
int i;
const char* label = SSC_CR;
int labelSz = sizeof(SSC_CR);
int buffSz;
byte* log = NULL;
word32 outSz;
int idx;
int ret;
(void)ctx;
if (ssl == NULL || secret == NULL || secretSz == NULL || *secretSz == 0)
if (secret == NULL || secretSz == NULL || *secretSz == 0)
return BAD_FUNC_ARG;
if (ssl->arrays == NULL)
return BAD_FUNC_ARG;
/* get the user-callback func from CTX */
logCb = ssl->ctx->keyLogCb;
if (logCb == NULL) {
return 0; /* no logging callback */
}
/* make sure the given master-secret has a meaningful value */
msSz = *secretSz;
invalidCount = 0;
for (i = 0; i < msSz; i++) {
for (i = 0; i < *secretSz; i++) {
if (((byte*)secret)[i] == 0) {
invalidCount++;
}
@@ -372,47 +430,8 @@ void wolfssl_priv_der_unblind(DerBuffer* key, DerBuffer* mask)
return 0; /* ignore error */
}
/* build up a hex-decoded keylog string
* "CLIENT_RANDOM <hex-encoded client rand> <hex-encoded master-secret>"
* note that each keylog string does not have CR/LF.
*/
buffSz = labelSz + (RAN_LEN * 2) + 1 + ((*secretSz) * 2) + 1;
log = XMALLOC(buffSz, ssl->heap, DYNAMIC_TYPE_SECRET);
if (log == NULL)
return MEMORY_E;
#ifdef WOLFSSL_CHECK_MEM_ZERO
wc_MemZero_Add("SessionSecret log", log, buffSz);
#endif
XMEMSET(log, 0, buffSz);
XMEMCPY(log, label, labelSz -1); /* put label w/o terminator */
log[labelSz - 1] = ' '; /* '\0' -> ' ' */
idx = labelSz;
outSz = buffSz - idx;
if ((ret = Base16_Encode(ssl->arrays->clientRandom, RAN_LEN,
log + idx, &outSz)) == 0) {
idx += (outSz - 1); /* reduce terminator byte */
outSz = buffSz - idx;
if (outSz > 1) {
log[idx++] = ' '; /* add space*/
outSz = buffSz - idx;
if ((ret = Base16_Encode((byte*)secret, *secretSz,
log + idx, &outSz)) == 0) {
/* pass the log to the client callback*/
logCb(ssl, (char*)log);
ret = 0;
}
}
else {
ret = BUFFER_E;
}
}
/* Zero out Base16 encoded secret and other data. */
ForceZero(log, buffSz);
XFREE(log, ssl->heap, DYNAMIC_TYPE_SECRET);
return ret;
return SessionSecret_callback_common(ssl, secret, *secretSz,
SSC_CR, sizeof(SSC_CR));
}
#if defined(WOLFSSL_TLS13)
@@ -450,27 +469,10 @@ void wolfssl_priv_der_unblind(DerBuffer* key, DerBuffer* mask)
static int SessionSecret_callback_Tls13(WOLFSSL* ssl, int id,
const unsigned char* secret, int secretSz, void* ctx)
{
wolfSSL_CTX_keylog_cb_func logCb = NULL;
const char* label;
int labelSz = 0;
int buffSz = 0;
byte* log = NULL;
word32 outSz;
int idx;
int ret;
(void)ctx;
if (ssl == NULL || secret == NULL || secretSz == 0)
return BAD_FUNC_ARG;
if (ssl->arrays == NULL)
return BAD_FUNC_ARG;
/* get the user-callback func from CTX*/
logCb = ssl->ctx->keyLogCb;
if (logCb == NULL)
return 0;
switch (id) {
case CLIENT_EARLY_TRAFFIC_SECRET:
labelSz = sizeof(SSC_TLS13_CETS);
@@ -510,44 +512,8 @@ void wolfssl_priv_der_unblind(DerBuffer* key, DerBuffer* mask)
default:
return BAD_FUNC_ARG;
}
/* prepare a log string for passing user callback
* "<Label> <hex-encoded client random> <hex-encoded secret>" */
buffSz = labelSz + (RAN_LEN * 2) + 1 + secretSz * 2 + 1;
log = XMALLOC(buffSz, ssl->heap, DYNAMIC_TYPE_SECRET);
if (log == NULL)
return MEMORY_E;
#ifdef WOLFSSL_CHECK_MEM_ZERO
wc_MemZero_Add("SessionSecret log", log, buffSz);
#endif
XMEMSET(log, 0, buffSz);
XMEMCPY(log, label, labelSz - 1); /* put label w/o terminator */
log[labelSz - 1] = ' '; /* '\0' -> ' ' */
idx = labelSz;
outSz = buffSz - idx;
if ((ret = Base16_Encode(ssl->arrays->clientRandom, RAN_LEN,
log + idx, &outSz)) == 0) {
idx += (outSz - 1); /* reduce terminator byte */
outSz = buffSz - idx;
if (outSz >1) {
log[idx++] = ' '; /* add space*/
outSz = buffSz - idx;
if ((ret = Base16_Encode((byte*)secret, secretSz,
log + idx, &outSz)) == 0) {
logCb(ssl, (char*)log);
ret = 0;
}
}
else
ret = MEMORY_E;
}
/* Zero out Base16 encoded secret and other data. */
ForceZero(log, buffSz);
XFREE(log, ssl->heap, DYNAMIC_TYPE_SECRET);
return ret;
return SessionSecret_callback_common(ssl, secret, secretSz,
label, labelSz);
}
#endif /* WOLFSSL_TLS13*/
#endif /* OPENSSL_EXTRA && HAVE_SECRET_CALLBACK*/
@@ -1911,7 +1877,7 @@ int wolfSSL_session_import_internal(WOLFSSL* ssl, const unsigned char* buf,
optSz = DTLS_EXPORT_OPT_SZ_4;
}
else {
optSz = TLS_EXPORT_OPT_SZ;
optSz = TLS_EXPORT_OPT_SZ_4;
}
break;
@@ -7430,6 +7396,7 @@ int ReinitSSL(WOLFSSL* ssl, WOLFSSL_CTX* ctx, int writeDup)
ssl->arrays->preMasterSecret = (byte*)XMALLOC(ENCRYPT_LEN, ssl->heap,
DYNAMIC_TYPE_SECRET);
if (ssl->arrays->preMasterSecret == NULL) {
WOLFSSL_MSG("preMasterSecret Memory error");
return MEMORY_E;
}
#ifdef WOLFSSL_CHECK_MEM_ZERO
@@ -11004,7 +10971,7 @@ void ShrinkInputBuffer(WOLFSSL* ssl, int forcedFree)
}
ForceZero(ssl->buffers.inputBuffer.buffer,
ssl->buffers.inputBuffer.length);
ssl->buffers.inputBuffer.bufferSize);
XFREE(ssl->buffers.inputBuffer.buffer - ssl->buffers.inputBuffer.offset,
ssl->heap, DYNAMIC_TYPE_IN_BUFFER);
ssl->buffers.inputBuffer.buffer = ssl->buffers.inputBuffer.staticBuffer;
@@ -11213,8 +11180,10 @@ static WC_INLINE int GrowOutputBuffer(WOLFSSL* ssl, int size)
return BUFFER_E;
if (! WC_SAFE_SUM_WORD32(newSz, (word32)size, newSz))
return BUFFER_E;
#if WOLFSSL_GENERAL_ALIGNMENT > 0
if (! WC_SAFE_SUM_WORD32(newSz, align, newSz))
return BUFFER_E;
#endif
tmp = (byte*)XMALLOC(newSz, ssl->heap, DYNAMIC_TYPE_OUT_BUFFER);
newSz -= align;
WOLFSSL_MSG("growing output buffer");
@@ -32277,6 +32246,188 @@ exit_gdpk:
return ret;
}
#endif
#if defined(HAVE_ECC) || defined(HAVE_CURVE25519) || defined(HAVE_CURVE448)
static int GetEcDiffieHellmanKea(WOLFSSL *ssl,
const byte *input, word32 size, DskeArgs *args)
{
int ret;
byte b;
#ifdef HAVE_ECC
int curveId;
#endif
int curveOid;
word16 length;
if ((args->idx - args->begin) + ENUM_LEN + OPAQUE16_LEN +
OPAQUE8_LEN > size) {
return BUFFER_ERROR;
}
b = input[args->idx++];
if (b != named_curve) {
return ECC_CURVETYPE_ERROR;
}
args->idx += 1; /* curve type, eat leading 0 */
b = input[args->idx++];
if ((curveOid = CheckCurveId(b)) < 0) {
return ECC_CURVE_ERROR;
}
ssl->ecdhCurveOID = (word32) curveOid;
#if defined(WOLFSSL_TLS13) || defined(HAVE_FFDHE)
ssl->namedGroup = 0;
#endif
length = input[args->idx++];
if ((args->idx - args->begin) + length > size) {
return BUFFER_ERROR;
}
#ifdef HAVE_CURVE25519
if (ssl->ecdhCurveOID == ECC_X25519_OID) {
if (ssl->peerX25519Key == NULL) {
ret = AllocKey(ssl, DYNAMIC_TYPE_CURVE25519,
(void **)&ssl->peerX25519Key);
if (ret != 0) {
return ret;
}
}
else if (ssl->peerX25519KeyPresent) {
ret = ReuseKey(ssl, DYNAMIC_TYPE_CURVE25519, ssl->peerX25519Key);
ssl->peerX25519KeyPresent = 0;
if (ret != 0) {
return ret;
}
}
if ((ret = wc_curve25519_check_public(input + args->idx, length,
EC25519_LITTLE_ENDIAN)) != 0) {
#ifdef WOLFSSL_EXTRA_ALERTS
if (ret == WC_NO_ERR_TRACE(BUFFER_E))
SendAlert(ssl, alert_fatal, decode_error);
else if (ret == WC_NO_ERR_TRACE(ECC_OUT_OF_RANGE_E))
SendAlert(ssl, alert_fatal, bad_record_mac);
else {
SendAlert(ssl, alert_fatal, illegal_parameter);
}
#else
(void)ret;
#endif
return ECC_PEERKEY_ERROR;
}
if (wc_curve25519_import_public_ex(input + args->idx,
length, ssl->peerX25519Key,
EC25519_LITTLE_ENDIAN) != 0) {
return ECC_PEERKEY_ERROR;
}
args->idx += length;
ssl->peerX25519KeyPresent = 1;
return 0;
}
#endif
#ifdef HAVE_CURVE448
if (ssl->ecdhCurveOID == ECC_X448_OID) {
if (ssl->peerX448Key == NULL) {
ret = AllocKey(ssl, DYNAMIC_TYPE_CURVE448,
(void **)&ssl->peerX448Key);
if (ret != 0) {
return ret;
}
}
else if (ssl->peerX448KeyPresent) {
ret = ReuseKey(ssl, DYNAMIC_TYPE_CURVE448, ssl->peerX448Key);
ssl->peerX448KeyPresent = 0;
if (ret != 0) {
return ret;
}
}
if ((ret = wc_curve448_check_public(input + args->idx, length,
EC448_LITTLE_ENDIAN)) != 0) {
#ifdef WOLFSSL_EXTRA_ALERTS
if (ret == WC_NO_ERR_TRACE(BUFFER_E))
SendAlert(ssl, alert_fatal, decode_error);
else if (ret == WC_NO_ERR_TRACE(ECC_OUT_OF_RANGE_E))
SendAlert(ssl, alert_fatal, bad_record_mac);
else {
SendAlert(ssl, alert_fatal, illegal_parameter);
}
#else
(void)ret;
#endif
return ECC_PEERKEY_ERROR;
}
if (wc_curve448_import_public_ex(input + args->idx,
length, ssl->peerX448Key,
EC448_LITTLE_ENDIAN) != 0) {
return ECC_PEERKEY_ERROR;
}
args->idx += length;
ssl->peerX448KeyPresent = 1;
return 0;
}
#endif
#ifdef HAVE_ECC
if (ssl->peerEccKey == NULL) {
ret = AllocKey(ssl, DYNAMIC_TYPE_ECC, (void **)&ssl->peerEccKey);
if (ret != 0) {
return ret;
}
}
else if (ssl->peerEccKeyPresent) {
ret = ReuseKey(ssl, DYNAMIC_TYPE_ECC, ssl->peerEccKey);
ssl->peerEccKeyPresent = 0;
if (ret != 0) {
return ret;
}
}
curveId = wc_ecc_get_oid((word32) curveOid, NULL, NULL);
if (wc_ecc_import_x963_ex(input + args->idx, length,
ssl->peerEccKey, curveId) != 0) {
#ifdef WOLFSSL_EXTRA_ALERTS
SendAlert(ssl, alert_fatal, illegal_parameter);
#endif
return ECC_PEERKEY_ERROR;
}
args->idx += length;
ssl->peerEccKeyPresent = 1;
#endif
return 0;
}
#endif /* def(HAVE_ECC) || def(HAVE_CURVE25519) || def(HAVE_CURVE448)) */
#if !defined(NO_PSK)
static int GetPSKServerHint(WOLFSSL *ssl, const byte *input, word32 size,
DskeArgs *args)
{
int srvHintLen;
word16 length;
if ((args->idx - args->begin) + OPAQUE16_LEN > size) {
return BUFFER_ERROR;
}
ato16(input + args->idx, &length);
args->idx += OPAQUE16_LEN;
if ((args->idx - args->begin) + length > size) {
return BUFFER_ERROR;
}
/* get PSK server hint from the wire */
srvHintLen = (int)min(length, MAX_PSK_ID_LEN);
XMEMCPY(ssl->arrays->server_hint, input + args->idx, (size_t)(srvHintLen));
ssl->arrays->server_hint[srvHintLen] = '\0'; /* null term */
args->idx += length;
return 0;
}
#endif /* !defined(NO_PSK) */
/* handle processing of server_key_exchange (12) */
static int DoServerKeyExchange(WOLFSSL* ssl, const byte* input,
@@ -32344,26 +32495,7 @@ static int DoServerKeyExchange(WOLFSSL* ssl, const byte* input,
#ifndef NO_PSK
case psk_kea:
{
int srvHintLen;
word16 length;
if ((args->idx - args->begin) + OPAQUE16_LEN > size) {
ERROR_OUT(BUFFER_ERROR, exit_dske);
}
ato16(input + args->idx, &length);
args->idx += OPAQUE16_LEN;
if ((args->idx - args->begin) + length > size) {
ERROR_OUT(BUFFER_ERROR, exit_dske);
}
/* get PSK server hint from the wire */
srvHintLen = (int)min(length, MAX_PSK_ID_LEN);
XMEMCPY(ssl->arrays->server_hint, input + args->idx,
(size_t)(srvHintLen));
ssl->arrays->server_hint[srvHintLen] = '\0'; /* null term */
args->idx += length;
ret = GetPSKServerHint(ssl, input, size, args);
break;
}
#endif /* !NO_PSK */
@@ -32371,8 +32503,6 @@ static int DoServerKeyExchange(WOLFSSL* ssl, const byte* input,
case diffie_hellman_kea:
{
ret = GetDhPublicKey(ssl, input, size, args);
if (ret != 0)
goto exit_dske;
break;
}
#endif /* !NO_DH */
@@ -32380,181 +32510,16 @@ static int DoServerKeyExchange(WOLFSSL* ssl, const byte* input,
defined(HAVE_CURVE448)
case ecc_diffie_hellman_kea:
{
byte b;
#ifdef HAVE_ECC
int curveId;
#endif
int curveOid;
word16 length;
if ((args->idx - args->begin) + ENUM_LEN + OPAQUE16_LEN +
OPAQUE8_LEN > size) {
ERROR_OUT(BUFFER_ERROR, exit_dske);
}
b = input[args->idx++];
if (b != named_curve) {
ERROR_OUT(ECC_CURVETYPE_ERROR, exit_dske);
}
args->idx += 1; /* curve type, eat leading 0 */
b = input[args->idx++];
if ((curveOid = CheckCurveId(b)) < 0) {
ERROR_OUT(ECC_CURVE_ERROR, exit_dske);
}
ssl->ecdhCurveOID = (word32)curveOid;
#if defined(WOLFSSL_TLS13) || defined(HAVE_FFDHE)
ssl->namedGroup = 0;
#endif
length = input[args->idx++];
if ((args->idx - args->begin) + length > size) {
ERROR_OUT(BUFFER_ERROR, exit_dske);
}
#ifdef HAVE_CURVE25519
if (ssl->ecdhCurveOID == ECC_X25519_OID) {
if (ssl->peerX25519Key == NULL) {
ret = AllocKey(ssl, DYNAMIC_TYPE_CURVE25519,
(void**)&ssl->peerX25519Key);
if (ret != 0) {
goto exit_dske;
}
} else if (ssl->peerX25519KeyPresent) {
ret = ReuseKey(ssl, DYNAMIC_TYPE_CURVE25519,
ssl->peerX25519Key);
ssl->peerX25519KeyPresent = 0;
if (ret != 0) {
goto exit_dske;
}
}
if ((ret = wc_curve25519_check_public(
input + args->idx, length,
EC25519_LITTLE_ENDIAN)) != 0) {
#ifdef WOLFSSL_EXTRA_ALERTS
if (ret == WC_NO_ERR_TRACE(BUFFER_E))
SendAlert(ssl, alert_fatal, decode_error);
else if (ret == WC_NO_ERR_TRACE(ECC_OUT_OF_RANGE_E))
SendAlert(ssl, alert_fatal, bad_record_mac);
else {
SendAlert(ssl, alert_fatal, illegal_parameter);
}
#endif
ERROR_OUT(ECC_PEERKEY_ERROR, exit_dske);
}
if (wc_curve25519_import_public_ex(input + args->idx,
length, ssl->peerX25519Key,
EC25519_LITTLE_ENDIAN) != 0) {
ERROR_OUT(ECC_PEERKEY_ERROR, exit_dske);
}
args->idx += length;
ssl->peerX25519KeyPresent = 1;
break;
}
#endif
#ifdef HAVE_CURVE448
if (ssl->ecdhCurveOID == ECC_X448_OID) {
if (ssl->peerX448Key == NULL) {
ret = AllocKey(ssl, DYNAMIC_TYPE_CURVE448,
(void**)&ssl->peerX448Key);
if (ret != 0) {
goto exit_dske;
}
} else if (ssl->peerX448KeyPresent) {
ret = ReuseKey(ssl, DYNAMIC_TYPE_CURVE448,
ssl->peerX448Key);
ssl->peerX448KeyPresent = 0;
if (ret != 0) {
goto exit_dske;
}
}
if ((ret = wc_curve448_check_public(
input + args->idx, length,
EC448_LITTLE_ENDIAN)) != 0) {
#ifdef WOLFSSL_EXTRA_ALERTS
if (ret == WC_NO_ERR_TRACE(BUFFER_E))
SendAlert(ssl, alert_fatal, decode_error);
else if (ret == WC_NO_ERR_TRACE(ECC_OUT_OF_RANGE_E))
SendAlert(ssl, alert_fatal, bad_record_mac);
else {
SendAlert(ssl, alert_fatal, illegal_parameter);
}
#endif
ERROR_OUT(ECC_PEERKEY_ERROR, exit_dske);
}
if (wc_curve448_import_public_ex(input + args->idx,
length, ssl->peerX448Key,
EC448_LITTLE_ENDIAN) != 0) {
ERROR_OUT(ECC_PEERKEY_ERROR, exit_dske);
}
args->idx += length;
ssl->peerX448KeyPresent = 1;
break;
}
#endif
#ifdef HAVE_ECC
if (ssl->peerEccKey == NULL) {
ret = AllocKey(ssl, DYNAMIC_TYPE_ECC,
(void**)&ssl->peerEccKey);
if (ret != 0) {
goto exit_dske;
}
} else if (ssl->peerEccKeyPresent) {
ret = ReuseKey(ssl, DYNAMIC_TYPE_ECC, ssl->peerEccKey);
ssl->peerEccKeyPresent = 0;
if (ret != 0) {
goto exit_dske;
}
}
curveId = wc_ecc_get_oid((word32)curveOid, NULL, NULL);
if (wc_ecc_import_x963_ex(input + args->idx, length,
ssl->peerEccKey, curveId) != 0) {
#ifdef WOLFSSL_EXTRA_ALERTS
SendAlert(ssl, alert_fatal, illegal_parameter);
#endif
ERROR_OUT(ECC_PEERKEY_ERROR, exit_dske);
}
args->idx += length;
ssl->peerEccKeyPresent = 1;
#endif
ret = GetEcDiffieHellmanKea(ssl, input, size, args);
break;
}
#endif /* HAVE_ECC || HAVE_CURVE25519 || HAVE_CURVE448 */
#if !defined(NO_DH) && !defined(NO_PSK)
case dhe_psk_kea:
{
int srvHintLen;
word16 length;
if ((args->idx - args->begin) + OPAQUE16_LEN > size) {
ERROR_OUT(BUFFER_ERROR, exit_dske);
}
ato16(input + args->idx, &length);
args->idx += OPAQUE16_LEN;
if ((args->idx - args->begin) + length > size) {
ERROR_OUT(BUFFER_ERROR, exit_dske);
}
/* get PSK server hint from the wire */
srvHintLen = (int)min(length, MAX_PSK_ID_LEN);
XMEMCPY(ssl->arrays->server_hint, input + args->idx,
srvHintLen);
ssl->arrays->server_hint[srvHintLen] = '\0'; /* null term */
args->idx += length;
ret = GetDhPublicKey(ssl, input, size, args);
if (ret != 0)
goto exit_dske;
ret = GetPSKServerHint(ssl, input, size, args);
if (ret == 0)
ret = GetDhPublicKey(ssl, input, size, args);
break;
}
#endif /* !NO_DH && !NO_PSK */
@@ -32562,162 +32527,9 @@ static int DoServerKeyExchange(WOLFSSL* ssl, const byte* input,
defined(HAVE_CURVE448)) && !defined(NO_PSK)
case ecdhe_psk_kea:
{
byte b;
int curveOid, curveId;
int srvHintLen;
word16 length;
if ((args->idx - args->begin) + OPAQUE16_LEN > size) {
ERROR_OUT(BUFFER_ERROR, exit_dske);
}
ato16(input + args->idx, &length);
args->idx += OPAQUE16_LEN;
if ((args->idx - args->begin) + length > size) {
ERROR_OUT(BUFFER_ERROR, exit_dske);
}
/* get PSK server hint from the wire */
srvHintLen = (int)min(length, MAX_PSK_ID_LEN);
XMEMCPY(ssl->arrays->server_hint, input + args->idx,
(size_t)(srvHintLen));
ssl->arrays->server_hint[srvHintLen] = '\0'; /* null term */
args->idx += length;
if ((args->idx - args->begin) + ENUM_LEN + OPAQUE16_LEN +
OPAQUE8_LEN > size) {
ERROR_OUT(BUFFER_ERROR, exit_dske);
}
/* Check curve name and ID */
b = input[args->idx++];
if (b != named_curve) {
ERROR_OUT(ECC_CURVETYPE_ERROR, exit_dske);
}
args->idx += 1; /* curve type, eat leading 0 */
b = input[args->idx++];
if ((curveOid = CheckCurveId(b)) < 0) {
ERROR_OUT(ECC_CURVE_ERROR, exit_dske);
}
ssl->ecdhCurveOID = (word32)curveOid;
length = input[args->idx++];
if ((args->idx - args->begin) + length > size) {
ERROR_OUT(BUFFER_ERROR, exit_dske);
}
#ifdef HAVE_CURVE25519
if (ssl->ecdhCurveOID == ECC_X25519_OID) {
if (ssl->peerX25519Key == NULL) {
ret = AllocKey(ssl, DYNAMIC_TYPE_CURVE25519,
(void**)&ssl->peerX25519Key);
if (ret != 0) {
goto exit_dske;
}
} else if (ssl->peerEccKeyPresent) {
ret = ReuseKey(ssl, DYNAMIC_TYPE_CURVE25519,
ssl->peerX25519Key);
ssl->peerX25519KeyPresent = 0;
if (ret != 0) {
goto exit_dske;
}
}
if ((ret = wc_curve25519_check_public(
input + args->idx, length,
EC25519_LITTLE_ENDIAN)) != 0) {
#ifdef WOLFSSL_EXTRA_ALERTS
if (ret == WC_NO_ERR_TRACE(BUFFER_E))
SendAlert(ssl, alert_fatal, decode_error);
else if (ret == WC_NO_ERR_TRACE(ECC_OUT_OF_RANGE_E))
SendAlert(ssl, alert_fatal, bad_record_mac);
else {
SendAlert(ssl, alert_fatal, illegal_parameter);
}
#endif
ERROR_OUT(ECC_PEERKEY_ERROR, exit_dske);
}
if (wc_curve25519_import_public_ex(input + args->idx,
length, ssl->peerX25519Key,
EC25519_LITTLE_ENDIAN) != 0) {
ERROR_OUT(ECC_PEERKEY_ERROR, exit_dske);
}
args->idx += length;
ssl->peerX25519KeyPresent = 1;
break;
}
#endif
#ifdef HAVE_CURVE448
if (ssl->ecdhCurveOID == ECC_X448_OID) {
if (ssl->peerX448Key == NULL) {
ret = AllocKey(ssl, DYNAMIC_TYPE_CURVE448,
(void**)&ssl->peerX448Key);
if (ret != 0) {
goto exit_dske;
}
} else if (ssl->peerEccKeyPresent) {
ret = ReuseKey(ssl, DYNAMIC_TYPE_CURVE448,
ssl->peerX448Key);
ssl->peerX448KeyPresent = 0;
if (ret != 0) {
goto exit_dske;
}
}
if ((ret = wc_curve448_check_public(
input + args->idx, length,
EC448_LITTLE_ENDIAN)) != 0) {
#ifdef WOLFSSL_EXTRA_ALERTS
if (ret == WC_NO_ERR_TRACE(BUFFER_E))
SendAlert(ssl, alert_fatal, decode_error);
else if (ret == WC_NO_ERR_TRACE(ECC_OUT_OF_RANGE_E))
SendAlert(ssl, alert_fatal, bad_record_mac);
else {
SendAlert(ssl, alert_fatal, illegal_parameter);
}
#endif
ERROR_OUT(ECC_PEERKEY_ERROR, exit_dske);
}
if (wc_curve448_import_public_ex(input + args->idx,
length, ssl->peerX448Key,
EC448_LITTLE_ENDIAN) != 0) {
ERROR_OUT(ECC_PEERKEY_ERROR, exit_dske);
}
args->idx += length;
ssl->peerX448KeyPresent = 1;
break;
}
#endif
if (ssl->peerEccKey == NULL) {
ret = AllocKey(ssl, DYNAMIC_TYPE_ECC,
(void**)&ssl->peerEccKey);
if (ret != 0) {
goto exit_dske;
}
} else if (ssl->peerEccKeyPresent) {
ret = ReuseKey(ssl, DYNAMIC_TYPE_ECC, ssl->peerEccKey);
ssl->peerEccKeyPresent = 0;
if (ret != 0) {
goto exit_dske;
}
}
curveId = wc_ecc_get_oid((word32)curveOid, NULL, NULL);
if (wc_ecc_import_x963_ex(input + args->idx, length,
ssl->peerEccKey, curveId) != 0) {
ERROR_OUT(ECC_PEERKEY_ERROR, exit_dske);
}
args->idx += length;
ssl->peerEccKeyPresent = 1;
ret = GetPSKServerHint(ssl, input, size, args);
if (ret == 0)
ret = GetEcDiffieHellmanKea(ssl, input, size, args);
break;
}
#endif /* (HAVE_ECC || HAVE_CURVE25519 || HAVE_CURVE448) && !NO_PSK */
+26 -58
View File
@@ -504,11 +504,6 @@ typedef struct KeyShareInfo {
int curve_id;
} KeyShareInfo;
/* maximum previous acks to capture */
#ifndef WC_SNIFFER_HS_ACK_HIST_MAX
#define WC_SNIFFER_HS_ACK_HIST_MAX 10
#endif
/* Sniffer Session holds info for each client/server SSL/TLS session */
typedef struct SnifferSession {
SnifferServer* context; /* server context */
@@ -520,10 +515,10 @@ typedef struct SnifferSession {
word16 cliPort; /* client port */
word32 cliSeqStart; /* client start sequence */
word32 srvSeqStart; /* server start sequence */
word32 cliSeqLast; /* client last sequence */
word32 srvSeqLast; /* server last sequence */
word32 cliExpected; /* client expected sequence (relative) */
word32 srvExpected; /* server expected sequence (relative) */
word32 cliAcks[WC_SNIFFER_HS_ACK_HIST_MAX]; /* history of acks during handshake */
word32 srvAcks[WC_SNIFFER_HS_ACK_HIST_MAX]; /* history of acks during handshake */
FinCapture finCapture; /* retain out of order FIN s */
Flags flags; /* session flags */
time_t lastUsed; /* last used ticks */
@@ -5638,47 +5633,6 @@ static int AddFinCapture(SnifferSession* session, word32 sequence)
return 1;
}
static int FindPrevAck(SnifferSession* session, word32 realAck)
{
int i;
word32* acks = (session->flags.side == WOLFSSL_SERVER_END) ?
session->cliAcks : session->srvAcks;
/* if previous ack found return 1, otherwise 0 */
for (i=0; i<WC_SNIFFER_HS_ACK_HIST_MAX; i++) {
if (acks[i] == realAck) {
return 1;
}
}
return 0;
}
static void AddAck(SnifferSession* session, word32 realAck)
{
int i;
word32* acks = (session->flags.side == WOLFSSL_SERVER_END) ?
session->cliAcks : session->srvAcks;
/* find first empty ack slot */
for (i=0; i<WC_SNIFFER_HS_ACK_HIST_MAX; i++) {
if (acks[i] == 0) {
break;
}
}
/* if out of slots, find oldest */
if (i == WC_SNIFFER_HS_ACK_HIST_MAX) {
int idx = 0;
word32 lastAck = realAck;
for (i=0; i<WC_SNIFFER_HS_ACK_HIST_MAX; i++) {
if (acks[i] < lastAck) {
idx = i;
lastAck = acks[i];
}
}
i = idx;
}
acks[i] = realAck;
}
/* Adjust incoming sequence based on side */
/* returns 0 on success (continue), -1 on error, 1 on success (end) */
static int AdjustSequence(TcpInfo* tcpInfo, SnifferSession* session,
@@ -5686,7 +5640,9 @@ static int AdjustSequence(TcpInfo* tcpInfo, SnifferSession* session,
{
int ret = 0;
word32 seqStart = (session->flags.side == WOLFSSL_SERVER_END) ?
session->cliSeqStart :session->srvSeqStart;
session->cliSeqStart : session->srvSeqStart;
word32* seqLast = (session->flags.side == WOLFSSL_SERVER_END) ?
&session->cliSeqLast : &session->srvSeqLast;
word32 real = tcpInfo->sequence - seqStart;
word32* expected = (session->flags.side == WOLFSSL_SERVER_END) ?
&session->cliExpected : &session->srvExpected;
@@ -5703,6 +5659,7 @@ static int AdjustSequence(TcpInfo* tcpInfo, SnifferSession* session,
TraceRelativeSequence(*expected, real);
if (real < *expected) {
int overlap = *expected - real;
if (real + *sslBytes > *expected) {
#ifdef WOLFSSL_ASYNC_CRYPT
@@ -5717,7 +5674,6 @@ static int AdjustSequence(TcpInfo* tcpInfo, SnifferSession* session,
* same action but for a different setup case. If changing this
* block be sure to also update the block below. */
if (reassemblyList) {
int overlap = *expected - real;
word32 newEnd;
/* adjust to expected, remove duplicate */
@@ -5746,11 +5702,23 @@ static int AdjustSequence(TcpInfo* tcpInfo, SnifferSession* session,
newEnd - reassemblyList->end, session, error);
}
}
else {
/* DUP overlap, allow */
if (*sslBytes > 0) {
skipPartial = 0; /* do not reset sslBytes */
else if (*sslBytes > 0) {
if (real + *sslBytes - 1 > *seqLast) {
/* fix segment overlap */
#ifdef DEBUG_SNIFFER
WOLFSSL* ssl = (session->flags.side == WOLFSSL_SERVER_END) ?
session->sslServer : session->sslClient;
printf("\tSegment %d overlap (%d -> %d)\n",
*sslBytes,
ssl->buffers.inputBuffer.length - overlap,
ssl->buffers.inputBuffer.length + *sslBytes - overlap - 1);
#endif
*sslBytes -= overlap;
*sslFrame += overlap;
}
/* DUP overlap, allow */
skipPartial = 0; /* do not reset sslBytes */
}
ret = 0;
}
@@ -5759,13 +5727,13 @@ static int AdjustSequence(TcpInfo* tcpInfo, SnifferSession* session,
* possible spurious retransmission. */
if (*sslBytes > 0) {
/* If packet has data attempt to process packet, if hasn't
* already been ack'd during handshake */
* already been received */
if (
#ifdef WOLFSSL_ASYNC_CRYPT
session->sslServer->error != WC_NO_ERR_TRACE(WC_PENDING_E) &&
session->pendSeq != tcpInfo->sequence &&
#endif
FindPrevAck(session, real)) {
real + *sslBytes -1 <= *seqLast) {
Trace(DUPLICATE_STR);
ret = 1;
}
@@ -5837,7 +5805,7 @@ static int AdjustSequence(TcpInfo* tcpInfo, SnifferSession* session,
*expected += 1;
}
if (*sslBytes > 0) {
AddAck(session, real);
*seqLast = real + *sslBytes - 1;
}
if (*sslBytes > 0 && skipPartial) {
*sslBytes = 0;
@@ -6417,7 +6385,7 @@ doPart:
ivExtra = AESGCM_EXP_IV_SZ;
}
ret -= ivExtra;;
ret -= ivExtra;
#if defined(HAVE_ENCRYPT_THEN_MAC) && \
!defined(WOLFSSL_AEAD_ONLY)
+61 -135
View File
@@ -3368,7 +3368,7 @@ int wolfSSL_read(WOLFSSL* ssl, void* data, int sz)
}
/* returns 0 on failure and on no read */
/* returns 0 on failure and 1 on read */
int wolfSSL_read_ex(WOLFSSL* ssl, void* data, size_t sz, size_t* rd)
{
int ret;
@@ -3388,8 +3388,7 @@ int wolfSSL_read_ex(WOLFSSL* ssl, void* data, size_t sz, size_t* rd)
*rd = (size_t)ret;
}
if (ret <= 0) ret = 0;
return ret;
return ret > 0 ? 1 : 0;
}
#ifdef WOLFSSL_MULTICAST
@@ -8856,148 +8855,75 @@ static int isArrayUnique(const char* buf, size_t len)
return 1;
}
/* Set user preference for the client_cert_type exetnsion.
/* Set user preference for the {client,server}_cert_type extension.
* Takes byte array containing cert types the caller can provide to its peer.
* Cert types are in preferred order in the array.
*/
static int set_cert_type(RpkConfig* cfg,
int client, const char* buf, int bufLen)
{
int i;
byte* certTypeCnt;
byte* certTypes;
if (cfg == NULL || bufLen > (client ? MAX_CLIENT_CERT_TYPE_CNT :
MAX_SERVER_CERT_TYPE_CNT)) {
return BAD_FUNC_ARG;
}
if (client) {
certTypeCnt = &cfg->preferred_ClientCertTypeCnt;
certTypes = cfg->preferred_ClientCertTypes;
}
else {
certTypeCnt = &cfg->preferred_ServerCertTypeCnt;
certTypes = cfg->preferred_ServerCertTypes;
}
/* if buf is set to NULL or bufLen is zero, it defaults the setting*/
if (buf == NULL || bufLen == 0) {
*certTypeCnt = 1;
for (i = 0; i < 2; i++)
certTypes[i] = WOLFSSL_CERT_TYPE_X509;
return WOLFSSL_SUCCESS;
}
if (!isArrayUnique(buf, (size_t)bufLen))
return BAD_FUNC_ARG;
for (i = 0; i < bufLen; i++) {
if (buf[i] != WOLFSSL_CERT_TYPE_RPK && buf[i] != WOLFSSL_CERT_TYPE_X509)
return BAD_FUNC_ARG;
certTypes[i] = (byte)buf[i];
}
*certTypeCnt = bufLen;
return WOLFSSL_SUCCESS;
}
int wolfSSL_set_client_cert_type(WOLFSSL* ssl, const char* buf, int buflen)
{
if (ssl == NULL)
return BAD_FUNC_ARG;
return set_cert_type(&ssl->options.rpkConfig, 1, buf, buflen);
}
int wolfSSL_set_server_cert_type(WOLFSSL* ssl, const char* buf, int buflen)
{
if (ssl == NULL)
return BAD_FUNC_ARG;
return set_cert_type(&ssl->options.rpkConfig, 0, buf, buflen);
}
int wolfSSL_CTX_set_client_cert_type(WOLFSSL_CTX* ctx,
const char* buf, int bufLen)
const char* buf, int buflen)
{
int i;
if (ctx == NULL || bufLen > MAX_CLIENT_CERT_TYPE_CNT) {
if (ctx == NULL)
return BAD_FUNC_ARG;
}
/* if buf is set to NULL or bufLen is set to zero, it defaults the setting*/
if (buf == NULL || bufLen == 0) {
ctx->rpkConfig.preferred_ClientCertTypeCnt = 1;
ctx->rpkConfig.preferred_ClientCertTypes[0]= WOLFSSL_CERT_TYPE_X509;
ctx->rpkConfig.preferred_ClientCertTypes[1]= WOLFSSL_CERT_TYPE_X509;
return WOLFSSL_SUCCESS;
}
if (!isArrayUnique(buf, (size_t)bufLen))
return BAD_FUNC_ARG;
for (i = 0; i < bufLen; i++){
if (buf[i] != WOLFSSL_CERT_TYPE_RPK && buf[i] != WOLFSSL_CERT_TYPE_X509)
return BAD_FUNC_ARG;
ctx->rpkConfig.preferred_ClientCertTypes[i] = (byte)buf[i];
}
ctx->rpkConfig.preferred_ClientCertTypeCnt = bufLen;
return WOLFSSL_SUCCESS;
return set_cert_type(&ctx->rpkConfig, 1, buf, buflen);
}
/* Set user preference for the server_cert_type exetnsion.
* Takes byte array containing cert types the caller can provide to its peer.
* Cert types are in preferred order in the array.
*/
int wolfSSL_CTX_set_server_cert_type(WOLFSSL_CTX* ctx,
const char* buf, int bufLen)
const char* buf, int buflen)
{
int i;
if (ctx == NULL || bufLen > MAX_SERVER_CERT_TYPE_CNT) {
if (ctx == NULL)
return BAD_FUNC_ARG;
}
/* if buf is set to NULL or bufLen is set to zero, it defaults the setting*/
if (buf == NULL || bufLen == 0) {
ctx->rpkConfig.preferred_ServerCertTypeCnt = 1;
ctx->rpkConfig.preferred_ServerCertTypes[0]= WOLFSSL_CERT_TYPE_X509;
ctx->rpkConfig.preferred_ServerCertTypes[1]= WOLFSSL_CERT_TYPE_X509;
return WOLFSSL_SUCCESS;
}
if (!isArrayUnique(buf, (size_t)bufLen))
return BAD_FUNC_ARG;
for (i = 0; i < bufLen; i++){
if (buf[i] != WOLFSSL_CERT_TYPE_RPK && buf[i] != WOLFSSL_CERT_TYPE_X509)
return BAD_FUNC_ARG;
ctx->rpkConfig.preferred_ServerCertTypes[i] = (byte)buf[i];
}
ctx->rpkConfig.preferred_ServerCertTypeCnt = bufLen;
return WOLFSSL_SUCCESS;
}
/* Set user preference for the client_cert_type exetnsion.
* Takes byte array containing cert types the caller can provide to its peer.
* Cert types are in preferred order in the array.
*/
int wolfSSL_set_client_cert_type(WOLFSSL* ssl,
const char* buf, int bufLen)
{
int i;
if (ssl == NULL || bufLen > MAX_CLIENT_CERT_TYPE_CNT) {
return BAD_FUNC_ARG;
}
/* if buf is set to NULL or bufLen is set to zero, it defaults the setting*/
if (buf == NULL || bufLen == 0) {
ssl->options.rpkConfig.preferred_ClientCertTypeCnt = 1;
ssl->options.rpkConfig.preferred_ClientCertTypes[0]
= WOLFSSL_CERT_TYPE_X509;
ssl->options.rpkConfig.preferred_ClientCertTypes[1]
= WOLFSSL_CERT_TYPE_X509;
return WOLFSSL_SUCCESS;
}
if (!isArrayUnique(buf, (size_t)bufLen))
return BAD_FUNC_ARG;
for (i = 0; i < bufLen; i++){
if (buf[i] != WOLFSSL_CERT_TYPE_RPK && buf[i] != WOLFSSL_CERT_TYPE_X509)
return BAD_FUNC_ARG;
ssl->options.rpkConfig.preferred_ClientCertTypes[i] = (byte)buf[i];
}
ssl->options.rpkConfig.preferred_ClientCertTypeCnt = bufLen;
return WOLFSSL_SUCCESS;
}
/* Set user preference for the server_cert_type exetnsion.
* Takes byte array containing cert types the caller can provide to its peer.
* Cert types are in preferred order in the array.
*/
int wolfSSL_set_server_cert_type(WOLFSSL* ssl,
const char* buf, int bufLen)
{
int i;
if (ssl == NULL || bufLen > MAX_SERVER_CERT_TYPE_CNT) {
return BAD_FUNC_ARG;
}
/* if buf is set to NULL or bufLen is set to zero, it defaults the setting*/
if (buf == NULL || bufLen == 0) {
ssl->options.rpkConfig.preferred_ServerCertTypeCnt = 1;
ssl->options.rpkConfig.preferred_ServerCertTypes[0]
= WOLFSSL_CERT_TYPE_X509;
ssl->options.rpkConfig.preferred_ServerCertTypes[1]
= WOLFSSL_CERT_TYPE_X509;
return WOLFSSL_SUCCESS;
}
if (!isArrayUnique(buf, (size_t)bufLen))
return BAD_FUNC_ARG;
for (i = 0; i < bufLen; i++){
if (buf[i] != WOLFSSL_CERT_TYPE_RPK && buf[i] != WOLFSSL_CERT_TYPE_X509)
return BAD_FUNC_ARG;
ssl->options.rpkConfig.preferred_ServerCertTypes[i] = (byte)buf[i];
}
ssl->options.rpkConfig.preferred_ServerCertTypeCnt = bufLen;
return WOLFSSL_SUCCESS;
return set_cert_type(&ctx->rpkConfig, 0, buf, buflen);
}
/* get negotiated certificate type value and return it to the second parameter.
+3
View File
@@ -16129,6 +16129,9 @@ int TLSX_Parse(WOLFSSL* ssl, const byte* input, word16 length, byte msgType,
if ((type <= 62) || (type == TLSX_RENEGOTIATION_INFO)
#ifdef WOLFSSL_QUIC
|| (type == TLSX_KEY_QUIC_TP_PARAMS_DRAFT)
#endif
#ifdef WOLFSSL_DUAL_ALG_CERTS
|| (type == TLSX_CKS)
#endif
)
{
+30 -23
View File
@@ -6201,7 +6201,8 @@ static int DoPreSharedKeys(WOLFSSL* ssl, const byte* input, word32 inputSz,
if (ret != 0)
return ret;
if (binderLen != current->binderLen ||
XMEMCMP(binder, current->binder, binderLen) != 0) {
ConstantCompare(binder, current->binder,
binderLen) != 0) {
WOLFSSL_ERROR_VERBOSE(BAD_BINDER);
return BAD_BINDER;
}
@@ -10537,28 +10538,17 @@ static int DoTls13CertificateVerify(WOLFSSL* ssl, byte* input,
#endif /* !NO_RSA */
#ifdef HAVE_ECC
if ((ssl->options.peerSigAlgo == ecc_dsa_sa_algo) &&
(ssl->peerEccDsaKeyPresent)) {
#if defined(WOLFSSL_SM2) && defined(WOLFSSL_SM3)
if (ssl->options.peerSigAlgo == sm2_sa_algo) {
ret = Sm2wSm3Verify(ssl, TLS13_SM2_SIG_ID,
TLS13_SM2_SIG_ID_SZ, sig, args->sigSz,
args->sigData, args->sigDataSz,
ssl->peerEccDsaKey, NULL);
}
else
#endif
{
WOLFSSL_MSG("Doing ECC peer cert verify");
ret = EccVerify(ssl, sig, args->sigSz,
args->sigData, args->sigDataSz,
ssl->peerEccDsaKey,
#ifdef HAVE_PK_CALLBACKS
&ssl->buffers.peerEccDsaKey
#else
NULL
#endif
);
}
ssl->peerEccDsaKeyPresent) {
WOLFSSL_MSG("Doing ECC peer cert verify");
ret = EccVerify(ssl, sig, args->sigSz,
args->sigData, args->sigDataSz,
ssl->peerEccDsaKey,
#ifdef HAVE_PK_CALLBACKS
&ssl->buffers.peerEccDsaKey
#else
NULL
#endif
);
if (ret >= 0) {
/* CLIENT/SERVER: data verified with public key from
@@ -10570,6 +10560,23 @@ static int DoTls13CertificateVerify(WOLFSSL* ssl, byte* input,
}
}
#endif /* HAVE_ECC */
#if defined(HAVE_ECC) && defined(WOLFSSL_SM2) && defined(WOLFSSL_SM3)
if ((ssl->options.peerSigAlgo == sm2_sa_algo) &&
ssl->peerEccDsaKeyPresent) {
WOLFSSL_MSG("Doing SM2/SM3 peer cert verify");
ret = Sm2wSm3Verify(ssl, TLS13_SM2_SIG_ID, TLS13_SM2_SIG_ID_SZ,
sig, args->sigSz, args->sigData, args->sigDataSz,
ssl->peerEccDsaKey, NULL);
if (ret >= 0) {
/* CLIENT/SERVER: data verified with public key from
* certificate. */
ssl->options.peerAuthGood = 1;
FreeKey(ssl, DYNAMIC_TYPE_ECC, (void**)&ssl->peerEccDsaKey);
ssl->peerEccDsaKeyPresent = 0;
}
}
#endif
#ifdef HAVE_ED25519
if ((ssl->options.peerSigAlgo == ed25519_sa_algo) &&
(ssl->peerEd25519KeyPresent)) {
+4 -2
View File
@@ -183,7 +183,8 @@ static WC_INLINE int wolfSSL_LastError(int err, SOCKET_T sd)
*/
static int TranslateIoReturnCode(int err, SOCKET_T sd, int direction)
{
#if defined(_WIN32) && !defined(__WATCOMC__) && !defined(_WIN32_WCE)
#if defined(_WIN32) && !defined(__WATCOMC__) && !defined(_WIN32_WCE) && \
!defined(INTIME_RTOS)
size_t errstr_offset;
char errstr[WOLFSSL_STRERROR_BUFFER_SIZE];
#endif /* _WIN32 */
@@ -242,7 +243,8 @@ static int TranslateIoReturnCode(int err, SOCKET_T sd, int direction)
return WOLFSSL_CBIO_ERR_CONN_CLOSE;
}
#if defined(_WIN32) && !defined(__WATCOMC__) && !defined(_WIN32_WCE)
#if defined(_WIN32) && !defined(__WATCOMC__) && !defined(_WIN32_WCE) && \
!defined(INTIME_RTOS)
strcpy_s(errstr, sizeof(errstr), "\tGeneral error: ");
errstr_offset = strlen(errstr);
FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
+114 -2100
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -77,6 +77,8 @@ tests_unit_test_SOURCES += tests/api/test_ossl_dh.c
tests_unit_test_SOURCES += tests/api/test_ossl_ec.c
tests_unit_test_SOURCES += tests/api/test_ossl_ecx.c
tests_unit_test_SOURCES += tests/api/test_ossl_dsa.c
# TLS 1.3 specific
tests_unit_test_SOURCES += tests/api/test_tls13.c
endif
EXTRA_DIST += tests/api/api.h
@@ -143,4 +145,5 @@ EXTRA_DIST += tests/api/test_ossl_dh.h
EXTRA_DIST += tests/api/test_ossl_ec.h
EXTRA_DIST += tests/api/test_ossl_ecx.h
EXTRA_DIST += tests/api/test_ossl_dsa.h
EXTRA_DIST += tests/api/test_tls13.h
+2 -2
View File
@@ -255,7 +255,7 @@ int test_wolfSSL_BIO_puts(void)
int test_wolfSSL_BIO_dump(void)
{
EXPECT_DECLS;
#if defined(OPENSSL_EXTRA)
#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM)
BIO* bio;
static const unsigned char data[] = {
0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE,
@@ -1136,7 +1136,7 @@ int test_wolfSSL_BIO_reset(void)
int test_wolfSSL_BIO_get_len(void)
{
EXPECT_DECLS;
#if defined(OPENSSL_EXTRA) && !defined(NO_BIO)
#if defined(OPENSSL_EXTRA) && !defined(NO_BIO) && !defined(NO_FILESYSTEM)
BIO *bio = NULL;
const char txt[] = "Some example text to push to the BIO.";
+2 -1
View File
@@ -1237,7 +1237,8 @@ int test_wolfSSL_EC_KEY_set_group(void)
int test_wolfSSL_EC_KEY_set_conv_form(void)
{
EXPECT_DECLS;
#if defined(HAVE_ECC) && defined(OPENSSL_EXTRA) && !defined(NO_BIO)
#if defined(HAVE_ECC) && defined(OPENSSL_EXTRA) && !defined(NO_BIO) && \
!defined(NO_FILESYSTEM)
BIO* bio = NULL;
EC_KEY* key = NULL;
+74 -27
View File
@@ -616,53 +616,100 @@ int test_wc_RsaPSS_VerifyCheckInline(void)
int test_wc_RsaKeyToDer(void)
{
EXPECT_DECLS;
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
RsaKey genKey;
WC_RNG rng;
#if !defined(NO_RSA) && \
(defined(WOLFSSL_KEY_GEN) || defined(WOLFSSL_KEY_TO_DER))
RsaKey key;
byte* der = NULL;
word32 derSz = 0;
#if defined(WOLFSSL_KEY_GEN)
WC_RNG rng;
#if (!defined(WOLFSSL_SP_MATH) || defined(WOLFSSL_SP_MATH_ALL)) && \
(!defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION < 4)) && \
(defined(RSA_MIN_SIZE) && (RSA_MIN_SIZE <= 1024))
int bits = 1024;
word32 derSz = 611;
/* (2 x 128) + 2 (possible leading 00) + (5 x 64) + 5 (possible leading 00)
+ 3 (e) + 8 (ASN tag) + 10 (ASN length) + 4 seqSz + 3 version */
int bits = 1024;
#else
int bits = 2048;
word32 derSz = 1196;
/* (2 x 256) + 2 (possible leading 00) + (5 x 128) + 5 (possible leading 00)
+ 3 (e) + 8 (ASN tag) + 17 (ASN length) + 4 seqSz + 3 version */
int bits = 2048;
#endif
#else
word32 idx = 0;
byte* key_der = NULL;
#if !defined(NO_FILESYSTEM)
const char* key_fname = "./certs/client-key.der";
XFILE file = XBADFILE;
#endif
#endif /* WOLFSSL_KEY_GEN */
#if defined(WOLFSSL_KEY_GEN)
XMEMSET(&rng, 0, sizeof(rng));
#endif
XMEMSET(&key, 0, sizeof(key));
/* Init RSA structure */
ExpectIntEQ(wc_InitRsaKey(&key, HEAP_HINT), 0);
#if defined(WOLFSSL_KEY_GEN)
/* Init RMG */
ExpectIntEQ(wc_InitRng(&rng), 0);
/* Make key */
ExpectIntEQ(MAKE_RSA_KEY(&key, bits, WC_RSA_EXPONENT, &rng), 0);
#else
/* Import a key */
#if !defined(NO_FILESYSTEM)
ExpectTrue((file = XFOPEN(key_fname, "rb")) != XBADFILE);
ExpectIntEQ(XFSEEK(file, 0, XSEEK_END), 0);
ExpectIntGT(derSz = (word32)XFTELL(file), 0);
ExpectIntEQ(XFSEEK(file, 0, XSEEK_SET), 0);
ExpectNotNull(key_der = (byte*)XMALLOC(derSz, NULL,
DYNAMIC_TYPE_TMP_BUFFER));
ExpectIntEQ((int)XFREAD(key_der, 1, derSz, file), derSz);
XFCLOSE(file);
#elif defined(USE_CERT_BUFFERS_1024) && \
(defined(RSA_MIN_SIZE) && (RSA_MIN_SIZE <= 1024))
key_der = (byte*)client_key_der_1024;
derSz = (word32)sizeof_client_key_der_1024;
#elif defined(USE_CERT_BUFFERS_2048)
key_der = (byte*)client_key_der_2048;
derSz = (word32)sizeof_client_key_der_2048;
#elif defined(USE_CERT_BUFFERS_3072)
key_der = (byte*)client_key_der_3072;
derSz = (word32)sizeof_client_key_der_3072;
#elif defined(USE_CERT_BUFFERS_4096)
key_der = (byte*)client_key_der_4096;
derSz = (word32)sizeof_client_key_der_4096;
#endif
XMEMSET(&rng, 0, sizeof(rng));
XMEMSET(&genKey, 0, sizeof(genKey));
/* Import private key */
ExpectIntEQ(wc_RsaPrivateKeyDecode(key_der, &idx, &key, derSz), 0);
#if !defined(NO_FILESYSTEM)
XFREE(key_der, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
#endif /* WOLFSSL_KEY_GEN */
/* Get output length */
ExpectIntGT((derSz = wc_RsaKeyToDer(&key, NULL, 0)), 0);
ExpectNotNull(der = (byte*)XMALLOC(derSz, NULL, DYNAMIC_TYPE_TMP_BUFFER));
/* Init structures. */
ExpectIntEQ(wc_InitRsaKey(&genKey, HEAP_HINT), 0);
ExpectIntEQ(wc_InitRng(&rng), 0);
/* Make key. */
ExpectIntEQ(MAKE_RSA_KEY(&genKey, bits, WC_RSA_EXPONENT, &rng), 0);
ExpectIntGT(wc_RsaKeyToDer(&genKey, der, derSz), 0);
/* Test exporting private key to DER */
ExpectIntGT(wc_RsaKeyToDer(&key, der, derSz), 0);
/* Pass good/bad args. */
ExpectIntEQ(wc_RsaKeyToDer(NULL, der, FOURK_BUF),
ExpectIntEQ(wc_RsaKeyToDer(NULL, der, derSz),
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
/* Get just the output length */
ExpectIntGT(wc_RsaKeyToDer(&genKey, NULL, 0), 0);
/* Try Public Key. */
genKey.type = 0;
ExpectIntEQ(wc_RsaKeyToDer(&genKey, der, FOURK_BUF),
key.type = 0;
ExpectIntEQ(wc_RsaKeyToDer(&key, der, derSz),
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
#ifdef WOLFSSL_CHECK_MEM_ZERO
/* Put back to Private Key */
genKey.type = 1;
key.type = 1;
#endif
XFREE(der, NULL, DYNAMIC_TYPE_TMP_BUFFER);
DoExpectIntEQ(wc_FreeRsaKey(&genKey), 0);
DoExpectIntEQ(wc_FreeRng(&rng), 0);
DoExpectIntEQ(wc_FreeRsaKey(&key), 0);
#if defined(WOLFSSL_KEY_GEN)
DoExpectIntEQ(wc_FreeRng(&rng), 0);
#endif
#endif
return EXPECT_RESULT();
} /* END test_wc_RsaKeyToDer */
File diff suppressed because it is too large Load Diff
+18 -14
View File
@@ -1,4 +1,4 @@
/* linuxkm/pie_first.c -- memory fenceposts for checking binary image stability
/* test_tls13.h
*
* Copyright (C) 2006-2025 wolfSSL Inc.
*
@@ -19,20 +19,24 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#ifndef __PIE__
#error pie_first.c must be compiled -fPIE.
#endif
#ifndef WOLFCRYPT_TEST_TLS13_H
#define WOLFCRYPT_TEST_TLS13_H
#include <wolfssl/wolfcrypt/libwolfssl_sources.h>
#include <tests/api/api_decl.h>
#include <wolfssl/ssl.h>
int test_tls13_apis(void);
int test_tls13_cipher_suites(void);
int test_tls13_bad_psk_binder(void);
int test_tls13_rpk_handshake(void);
int test_tls13_pq_groups(void);
int test_tls13_early_data(void);
int wolfCrypt_PIE_first_function(void);
int wolfCrypt_PIE_first_function(void) {
return 0;
}
#define TEST_TLS13_DECLS \
TEST_DECL_GROUP("tls13", test_tls13_apis), \
TEST_DECL_GROUP("tls13", test_tls13_cipher_suites), \
TEST_DECL_GROUP("tls13", test_tls13_bad_psk_binder), \
TEST_DECL_GROUP("tls13", test_tls13_rpk_handshake), \
TEST_DECL_GROUP("tls13", test_tls13_pq_groups), \
TEST_DECL_GROUP("tls13", test_tls13_early_data)
const unsigned int wolfCrypt_PIE_rodata_start[];
const unsigned int wolfCrypt_PIE_rodata_start[] =
/* random values, analogous to wolfCrypt_FIPS_ro_{start,end} */
{ 0x8208f9ca, 0x9daf4ac9 };
#endif /* WOLFCRYPT_TEST_TLS13_H */
+11 -11
View File
@@ -20844,9 +20844,9 @@ static int DecodeBasicCaConstraintInternal(const byte* input, int sz,
return ret;
cert->isCA = isCa ? 1 : 0;
cert->pathLengthSet = pathLengthSet ? 1 : 0;
if (pathLengthSet) {
cert->pathLength = pathLength;
cert->pathLengthSet = pathLengthSet ? 1 : 0;
}
return 0;
@@ -25810,7 +25810,11 @@ int ParseCertRelative(DecodedCert* cert, int type, int verify, void* cm,
* If the cA boolean is not asserted, then the keyCertSign bit in the
* key usage extension MUST NOT be asserted. */
if (!cert->isCA && cert->extKeyUsageSet &&
(cert->extKeyUsage & KEYUSE_KEY_CERT_SIGN) != 0) {
(cert->extKeyUsage & KEYUSE_KEY_CERT_SIGN) != 0
#ifdef ALLOW_SELFSIGNED_INVALID_CERTSIGN
&& !cert->selfSigned
#endif
) {
WOLFSSL_ERROR_VERBOSE(KEYUSAGE_E);
return KEYUSAGE_E;
}
@@ -28245,9 +28249,8 @@ int wc_GetFASCNFromCert(struct DecodedCert* cert, byte* fascn, word32* fascnSz)
}
#endif /* WOLFSSL_FPKI */
#if !defined(NO_RSA) && (defined(WOLFSSL_CERT_GEN) || \
defined(WOLFSSL_KCAPI_RSA) || \
((defined(WOLFSSL_KEY_GEN) || defined(OPENSSL_EXTRA))))
#if !defined(NO_RSA) && \
(defined(WOLFSSL_KEY_TO_DER) || defined(WOLFSSL_CERT_GEN))
/* USER RSA ifdef portions used instead of refactor in consideration for
possible fips build */
/* Encode a public RSA key to output.
@@ -28429,13 +28432,10 @@ int wc_RsaKeyToPublicDer_ex(RsaKey* key, byte* output, word32 inLen,
return SetRsaPublicKey(output, key, (int)inLen, with_header);
}
#endif /* !NO_RSA && (WOLFSSL_CERT_GEN || WOLFSSL_KCAPI_RSA ||
((OPENSSL_EXTRA || WOLFSSL_KEY_GEN))) */
#endif /* !NO_RSA && WOLFSSL_KEY_TO_DER */
#endif /* NO_CERTS */
#if (defined(WOLFSSL_KEY_GEN) || defined(OPENSSL_EXTRA) || \
defined(WOLFSSL_KCAPI_RSA) || defined(WOLFSSL_SE050)) && \
!defined(NO_RSA)
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_TO_DER)
/* Encode private RSA key in DER format.
*
@@ -28602,7 +28602,7 @@ int wc_RsaKeyToDer(RsaKey* key, byte* output, word32 inLen)
#endif
}
#endif /* (WOLFSSL_KEY_GEN || OPENSSL_EXTRA) && !NO_RSA */
#endif /* !NO_RSA && WOLFSSL_KEY_TO_DER */
#ifndef NO_CERTS
+1 -1
View File
@@ -401,7 +401,7 @@ static WC_INLINE int wc_XChaCha20Poly1305_crypt_oneshot(
goto out;
}
if ((long int)dst_space < dst_len) {
if (dst_len < 0 || (long int)dst_space < dst_len) {
ret = BUFFER_E;
goto out;
}
+14 -10
View File
@@ -41,17 +41,21 @@
*/
void cpuid_set_flags(void)
{
if (!cpuid_check) {
cpuid_flags |= CPUID_AVX1;
cpuid_flags |= CPUID_AVX2;
cpuid_flags |= CPUID_BMI2;
cpuid_flags |= CPUID_RDSEED;
cpuid_flags |= CPUID_AESNI;
cpuid_flags |= CPUID_ADX;
cpuid_flags |= CPUID_MOVBE;
cpuid_flags |= CPUID_BMI1;
if (WOLFSSL_ATOMIC_LOAD(cpuid_flags) == WC_CPUID_INITIALIZER) {
cpuid_flags_t new_cpuid_flags = 0,
old_cpuid_flags = WC_CPUID_INITIALIZER;
cpuid_check = 1;
new_cpuid_flags |= CPUID_AVX1;
new_cpuid_flags |= CPUID_AVX2;
new_cpuid_flags |= CPUID_BMI2;
new_cpuid_flags |= CPUID_RDSEED;
new_cpuid_flags |= CPUID_AESNI;
new_cpuid_flags |= CPUID_ADX;
new_cpuid_flags |= CPUID_MOVBE;
new_cpuid_flags |= CPUID_BMI1;
(void)wolfSSL_Atomic_Uint_CompareExchange
(&cpuid_flags, &old_cpuid_flags, new_cpuid_flags);
}
}
+46
View File
@@ -10586,6 +10586,52 @@ int wc_dilithium_verify_ctx_hash(const byte* sig, word32 sigLen,
}
#endif /* WOLFSSL_DILITHIUM_NO_VERIFY */
#ifndef WC_NO_CONSTRUCTORS
/**
* Create a new dilithium key object.
*
* heap [in] Dynamic memory hint.
* devId [in] Device Id.
* returns MEMORY_E when dynamic memory allocation fails
*/
dilithium_key* wc_dilithium_new(void* heap, int devId)
{
int ret;
dilithium_key* key = (dilithium_key*)XMALLOC(sizeof(dilithium_key), heap,
DYNAMIC_TYPE_DILITHIUM);
if (key != NULL) {
ret = wc_dilithium_init_ex(key, heap, devId);
if (ret != 0) {
XFREE(key, heap, DYNAMIC_TYPE_DILITHIUM);
key = NULL;
}
}
return key;
}
/**
* Delete and free a dilithium key object.
*
* key [in] dilithium key object to delete.
* key_p [in, out] Pointer to key pointer to set to NULL.
* returns BAD_FUNC_ARG when key is NULL
*/
int wc_dilithium_delete(dilithium_key* key, dilithium_key** key_p)
{
if (key == NULL)
return BAD_FUNC_ARG;
wc_dilithium_free(key);
XFREE(key, key->heap, DYNAMIC_TYPE_DILITHIUM);
if (key_p != NULL)
*key_p = NULL;
return 0;
}
#endif /* !WC_NO_CONSTRUCTORS */
/* Initialize the dilithium private/public key.
*
* key [in] Dilithium key.
+6 -6
View File
@@ -8902,7 +8902,7 @@ static void clearEVPPkeyKeys(WOLFSSL_EVP_PKEY *pkey)
}
#ifndef NO_RSA
#if defined(WOLFSSL_KEY_GEN)
#ifdef WOLFSSL_KEY_TO_DER
static int PopulateRSAEvpPkeyDer(WOLFSSL_EVP_PKEY *pkey)
{
int ret = 0;
@@ -9008,7 +9008,7 @@ static int PopulateRSAEvpPkeyDer(WOLFSSL_EVP_PKEY *pkey)
return WOLFSSL_SUCCESS;
}
}
#endif
#endif /* WOLFSSL_KEY_TO_DER */
WOLFSSL_RSA* wolfSSL_EVP_PKEY_get0_RSA(WOLFSSL_EVP_PKEY *pkey)
{
@@ -9060,12 +9060,12 @@ int wolfSSL_EVP_PKEY_set1_RSA(WOLFSSL_EVP_PKEY *pkey, WOLFSSL_RSA *key)
}
}
#if defined(WOLFSSL_KEY_GEN)
#ifdef WOLFSSL_KEY_TO_DER
if (PopulateRSAEvpPkeyDer(pkey) != WOLFSSL_SUCCESS) {
WOLFSSL_MSG("PopulateRSAEvpPkeyDer failed");
return WOLFSSL_FAILURE;
}
#endif /* WOLFSSL_KEY_GEN */
#endif
#ifdef WC_RSA_BLINDING
if (key->ownRng == 0) {
@@ -10045,7 +10045,7 @@ int wolfSSL_EVP_PKEY_up_ref(WOLFSSL_EVP_PKEY* pkey)
return WOLFSSL_FAILURE;
}
#ifndef NO_RSA
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_TO_DER)
int wolfSSL_EVP_PKEY_assign_RSA(WOLFSSL_EVP_PKEY* pkey, WOLFSSL_RSA* key)
{
if (pkey == NULL || key == NULL)
@@ -10080,7 +10080,7 @@ int wolfSSL_EVP_PKEY_assign_RSA(WOLFSSL_EVP_PKEY* pkey, WOLFSSL_RSA* key)
return WOLFSSL_SUCCESS;
}
#endif /* !NO_RSA */
#endif /* !NO_RSA && WOLFSSL_KEY_TO_DER */
#ifndef NO_DSA
int wolfSSL_EVP_PKEY_assign_DSA(WOLFSSL_EVP_PKEY* pkey, WOLFSSL_DSA* key)
+2 -2
View File
@@ -24,7 +24,7 @@
/* Based On Daniel J Bernstein's curve25519 Public Domain ref10 work. */
#if defined(HAVE_CURVE25519) || defined(HAVE_ED25519)
#if !defined(CURVE25519_SMALL) || !defined(ED25519_SMALL) /* run when not defined to use small memory math */
#if !defined(CURVE25519_SMALL) && !defined(ED25519_SMALL)
#include <wolfssl/wolfcrypt/fe_operations.h>
@@ -1479,5 +1479,5 @@ void fe_cmov(fe f, const fe g, int b)
}
#endif
#endif /* !CURVE25519_SMALL || !ED25519_SMALL */
#endif /* !CURVE25519_SMALL && !ED25519_SMALL */
#endif /* HAVE_CURVE25519 || HAVE_ED25519 */
+12 -25
View File
@@ -253,7 +253,8 @@ void WOLFSSL_START(int funcNum)
if (funcNum < WC_FUNC_COUNT) {
double now = current_time(0) * 1000.0;
#ifdef WOLFSSL_FUNC_TIME_LOG
fprintf(stderr, "%17.3f: START - %s\n", now, wc_func_name[funcNum]);
WOLFSSL_DEBUG_PRINTF("%17.3f: START - %s\n",
now, wc_func_name[funcNum]);
#endif
wc_func_start[funcNum] = now;
}
@@ -265,7 +266,8 @@ void WOLFSSL_END(int funcNum)
double now = current_time(0) * 1000.0;
wc_func_time[funcNum] += now - wc_func_start[funcNum];
#ifdef WOLFSSL_FUNC_TIME_LOG
fprintf(stderr, "%17.3f: END - %s\n", now, wc_func_name[funcNum]);
WOLFSSL_DEBUG_PRINTF("%17.3f: END - %s\n",
now, wc_func_name[funcNum]);
#endif
}
}
@@ -278,11 +280,11 @@ void WOLFSSL_TIME(int count)
for (i = 0; i < WC_FUNC_COUNT; i++) {
if (wc_func_time[i] > 0) {
avg = wc_func_time[i] / count;
fprintf(stderr, "%8.3f ms: %s\n", avg, wc_func_name[i]);
WOLFSSL_DEBUG_PRINTF("%8.3f ms: %s\n", avg, wc_func_name[i]);
total += avg;
}
}
fprintf(stderr, "%8.3f ms\n", total);
WOLFSSL_DEBUG_PRINTF("%8.3f ms\n", total);
}
#endif
@@ -397,7 +399,7 @@ static void wolfssl_log(const int logLevel, const char* const file_name,
/* Assume zero-terminated msg, len less than WOLFSSL_MSG_CERT_BUF_SZ */
written = XVSNPRINTF(msg, WOLFSSL_MSG_CERT_BUF_SZ, fmt, args);
va_end(args);
if ((written > 0) && (loggingCertEnabled =! 0)) {
if ((written > 0) && (loggingCertEnabled != 0)) {
wolfssl_log(INFO_LOG, NULL, 0, msg);
}
#ifdef WOLFSSL_SMALL_STACK
@@ -1850,36 +1852,21 @@ static int backtrace_callback(void *data, uintptr_t pc, const char *filename,
*(int *)data = 1;
return 0;
}
#ifdef NO_STDIO_FILESYSTEM
printf(" #%d %p in %s %s:%d\n", (*(int *)data)++, (void *)pc,
function, filename, lineno);
#else
fprintf(stderr, " #%d %p in %s %s:%d\n", (*(int *)data)++, (void *)pc,
function, filename, lineno);
#endif
WOLFSSL_DEBUG_PRINTF(" #%d %p in %s %s:%d\n", (*(int *)data)++,
(void *)pc, function, filename, lineno);
return 0;
}
static void backtrace_error(void *data, const char *msg, int errnum) {
(void)data;
#ifdef NO_STDIO_FILESYSTEM
printf("ERR TRACE: error %d while backtracing: %s", errnum, msg);
#else
fprintf(stderr, "ERR TRACE: error %d while backtracing: %s", errnum, msg);
#endif
WOLFSSL_DEBUG_PRINTF("ERR TRACE: error %d while backtracing: %s",
errnum, msg);
}
static void backtrace_creation_error(void *data, const char *msg, int errnum) {
(void)data;
#ifdef NO_STDIO_FILESYSTEM
printf("ERR TRACE: internal error %d "
WOLFSSL_DEBUG_PRINTF("ERR TRACE: internal error %d "
"while initializing backtrace facility: %s", errnum, msg);
printf("ERR TRACE: internal error "
"while initializing backtrace facility");
#else
fprintf(stderr, "ERR TRACE: internal error %d "
"while initializing backtrace facility: %s", errnum, msg);
#endif
}
static int backtrace_init(struct backtrace_state **backtrace_state) {

Some files were not shown because too many files have changed in this diff Show More