Skip to content

Commit 801d9bf

Browse files
authored
Merge branch 'master' into doc
2 parents 87c4646 + 8741805 commit 801d9bf

441 files changed

Lines changed: 32354 additions & 11677 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.codespellexcludelines

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,5 @@ rsource "Kconfig.tls-generic"
1616
\pagenumbering{alph}
1717
DES3_KEY_SIZE = 24, /* 3 des ede */
1818
/* functions added to support above needed, removed TOOM and KARATSUBA */
19+
#include <sys/systm.h>
20+
* extern global version from /usr/src/sys/sys/systm.h */

.github/workflows/arduino.yml

Lines changed: 114 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ name: Arduino CI Build (1 of 4) wolfssl
3838
#
3939
# To test locally:
4040
# cd [your WOLFSSL_ROOT], e.g. cd /mnt/c/workspace/wolfssl-$USER
41-
# [optional checkout] e.g. git checkout tags/v5.8.2-stable
41+
# [optional checkout] e.g. git checkout tags/v5.8.4-stable
4242
# pushd ./IDE/ARDUINO
4343
# export ARDUINO_ROOT="$HOME/Arduino/libraries"
4444
# ./wolfssl-arduino.sh INSTALL
@@ -50,6 +50,7 @@ on:
5050
push:
5151
branches: [ '**', 'master', 'main', 'release/**' ]
5252
paths:
53+
# Specific to this Arduino CI Build (1 of 4)
5354
- '.github/workflows/arduino.yml'
5455
- 'IDE/ARDUINO/**'
5556
- 'src/**'
@@ -66,16 +67,60 @@ on:
6667
workflow_dispatch:
6768

6869
concurrency:
69-
group: ${{ github.workflow }}-${{ github.ref }}
70+
# Same branch push cancels other jobs. Other PR branches untouched
71+
72+
group: ${{ github.workflow }}-${{ github.ref_name }}
7073
cancel-in-progress: true
74+
7175
# END OF COMMON SECTION
7276

7377
jobs:
7478
build:
7579
if: github.repository_owner == 'wolfssl'
7680
runs-on: ubuntu-latest
81+
82+
strategy:
83+
fail-fast: false
84+
matrix:
85+
fqbn:
86+
# When editing this list, be sure to also edit file: board_list.txt
87+
# The compile-all-examples.sh optionally takes a FQBN parameter to
88+
# optionally compile all examples ONLY for the respective fully qualified board name.
89+
# See https://github.com/wolfSSL/wolfssl-examples/blob/master/Arduino/sketches/board_list.txt
90+
91+
- arduino:avr:ethernet
92+
- arduino:avr:leonardoeth
93+
- arduino:avr:mega
94+
- arduino:avr:nano
95+
- arduino:avr:uno
96+
- arduino:avr:yun
97+
- arduino:samd:mkrwifi1010
98+
- arduino:samd:mkr1000
99+
- arduino:samd:mkrfox1200
100+
- arduino:mbed_edge:edge_control
101+
- arduino:mbed_nano:nanorp2040connect
102+
- arduino:mbed_portenta:envie_m7
103+
- arduino:mbed_portenta:portenta_x8
104+
- arduino:renesas_uno:unor4wifi
105+
- arduino:sam:arduino_due_x
106+
- arduino:samd:arduino_zero_native
107+
- arduino:samd:tian
108+
- esp32:esp32:esp32
109+
- esp32:esp32:esp32s2
110+
- esp32:esp32:esp32s3
111+
- esp32:esp32:esp32c3
112+
- esp32:esp32:esp32c6
113+
- esp32:esp32:esp32h2
114+
- esp8266:esp8266:generic
115+
- teensy:avr:teensy40
116+
117+
# Not yet supported, not in standard library
118+
# - esp32:esp32:nano_nora
119+
120+
# End strategy matrix
77121
env:
78122
REPO_OWNER: ${{ github.repository_owner }}
123+
79124
steps:
80125
- name: Checkout Repository
81126
uses: actions/checkout@v4
@@ -84,7 +129,7 @@ jobs:
84129
run: |
85130
# Script to fetch and run install.sh from arduino/arduino-cli
86131
87-
# The install script will test to see if the recently installed apps in in the path
132+
# The install script will test to see if the recently installed apps in the path
88133
# So set it up in advance:
89134
mkdir -p "${PWD}/bin"
90135
echo "${PWD}/bin" >> $GITHUB_PATH
@@ -95,7 +140,7 @@ jobs:
95140
# Ensures that BINDIR exists before the installer runs
96141
mkdir -p "$ROOT_BIN"
97142
98-
# Save as a lobal environment variable
143+
# Save as a global environment variable
99144
echo "$ROOT_BIN" >> "$GITHUB_PATH"
100145
101146
# Download and run install script from Arduino:
@@ -126,34 +171,53 @@ jobs:
126171
echo "Alternative install script not needed."
127172
fi
128173
129-
- name: Confirm Arduino CLI install
174+
- name: Confirm Arduino CLI Install
130175
run: arduino-cli version
131176

177+
- name: Derive CORE_ID (vendor:arch from FQBN)
178+
run: |
179+
CORE_ID="$(echo '${{ matrix.fqbn }}' | cut -d: -f1-2)"
180+
echo "CORE_ID=$CORE_ID" >> "$GITHUB_ENV"
181+
132182
- name: Setup Arduino CLI
133183
run: |
134184
arduino-cli config init
135-
arduino-cli core update-index
185+
186+
# wait 10 minutes for big downloads (or use 0 for no limit)
187+
arduino-cli config set network.connection_timeout 600s
188+
136189
arduino-cli config add board_manager.additional_urls https://www.pjrc.com/teensy/package_teensy_index.json
137-
arduino-cli core update-index
138190
arduino-cli config add board_manager.additional_urls https://arduino.esp8266.com/stable/package_esp8266com_index.json
139191
arduino-cli core update-index
140-
arduino-cli core install esp32:esp32 # ESP32
141-
arduino-cli core install arduino:avr # Arduino Uno, Mega, Nano
142-
arduino-cli core install arduino:sam # Arduino Due
143-
arduino-cli core install arduino:samd # Arduino Zero
144-
arduino-cli core install teensy:avr # PJRC Teensy
145-
arduino-cli core install esp8266:esp8266 # ESP8266
146-
arduino-cli core install arduino:mbed_nano # nanorp2040connect
147-
arduino-cli core install arduino:mbed_portenta # portenta_h7_m7
148-
arduino-cli core install arduino:mbed_edge
192+
193+
echo "CORE_ID: $CORE_ID"
194+
arduino-cli core install "$CORE_ID"
195+
196+
# The above is instead of:
197+
# arduino-cli core install esp32:esp32 # ESP32
198+
# arduino-cli core install arduino:avr # Arduino Uno, Mega, Nano
199+
# arduino-cli core install arduino:sam # Arduino Due
200+
# arduino-cli core install arduino:samd # Arduino Zero
201+
# arduino-cli core install teensy:avr # PJRC Teensy
202+
# arduino-cli core install esp8266:esp8266 # ESP8266
203+
# arduino-cli core install arduino:mbed_nano # nanorp2040connect
204+
# arduino-cli core install arduino:mbed_portenta # portenta_h7_m7
205+
# arduino-cli core install arduino:mbed_edge
206+
# arduino-cli core install arduino:renesas_uno
207+
208+
# For reference:
209+
210+
# mbed nano not yet tested
149211
# sudo "/home/$USER/.arduino15/packages/arduino/hardware/mbed_nano/4.2.4/post_install.sh"
150-
arduino-cli core install arduino:renesas_uno
212+
213+
# Always install networking (not part of FQBN matrix)
214+
# The first one also creates directory: /home/runner/Arduino/libraries
151215
arduino-cli lib install "ArduinoJson" # Example dependency
152216
arduino-cli lib install "WiFiNINA" # ARDUINO_SAMD_NANO_33_IOT
153217
arduino-cli lib install "Ethernet" # Install Ethernet library
154218
arduino-cli lib install "Bridge" # Pseudo-network for things like arduino:samd:tian
155219
156-
- name: Set job environment variables
220+
- name: Set Job Environment Variables
157221
run: |
158222
# Script to assign some common environment variables after everything is installed
159223
@@ -178,6 +242,26 @@ jobs:
178242
# WOLFSSL_EXAMPLES_ROOT is the repo root, not example location
179243
echo "WOLFSSL_EXAMPLES_ROOT = $WOLFSSL_EXAMPLES_ROOT"
180244
245+
- name: Cache Arduino Packages
246+
uses: actions/cache@v4
247+
with:
248+
path: |
249+
~/.arduino15
250+
~/.cache/arduino
251+
~/.arduino15/staging
252+
253+
# Arduino libraries
254+
# Specific to Arduino CI Build (2 of 4) Arduinbo Release wolfSSL for Local Examples
255+
# Include all libraries, as the latest Arduino-wolfSSL will only change upon release.
256+
~/Arduino/libraries
257+
# Ensure wolfssl is not cached, we're always using the latest. See separate cache.
258+
!~/Arduino/libraries/wolfssl
259+
key: arduino-${{ runner.os }}-${{ env.CORE_ID }}-${{ hashFiles('Arduino/sketches/board_list.txt') }}
260+
261+
restore-keys: |
262+
arduino-${{ runner.os }}-${{ env.CORE_ID }}-
263+
arduino-${{ runner.os }}-
264+
181265
- name: Get wolfssl-examples
182266
run: |
183267
# Fetch Arduino examples from the wolfssl-examples repo
@@ -211,6 +295,9 @@ jobs:
211295
run: |
212296
# Run the local wolfssl-arduino.sh install script to install wolfssl Arduino library.
213297
298+
echo "Installing wolfSSL Arduino library (no cache hit)."
299+
rm -rf "$ARDUINO_ROOT/wolfssl"
300+
214301
# Methods of installing Arduino library:
215302
# 1) arduino-cli lib install "wolfSSL"
216303
# 2) manual copy of files (typical of the Arduino-wolfssl repo)
@@ -253,7 +340,8 @@ jobs:
253340
254341
# Fetch script and board list into WOLFSSL_EXAMPLES_DIRECTORY
255342
echo "Fetching board_list.txt from REPO_OWNER=$REPO_OWNER"
256-
curl -L "https://raw.githubusercontent.com/$REPO_OWNER/wolfssl-examples/master/Arduino/sketches/board_list.txt" -o "$WOLFSSL_EXAMPLES_DIRECTORY/$THIS_BOARD_LIST"
343+
curl -L "https://raw.githubusercontent.com/$REPO_OWNER/wolfssl-examples/master/Arduino/sketches/board_list.txt" \
344+
-o "$WOLFSSL_EXAMPLES_DIRECTORY/$THIS_BOARD_LIST"
257345
258346
# Check if the first line is "404: Not Found" - which would indicate the curl path above is bad.
259347
FILE="$WOLFSSL_EXAMPLES_DIRECTORY/board_list.txt"
@@ -272,7 +360,8 @@ jobs:
272360
273361
# Fetch the compile script from repo: https://github.com/[$USER]/wolfssl-examples/
274362
echo "Fetching compile-all-examples.sh from REPO_OWNER=$REPO_OWNER"
275-
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"
363+
curl -L "https://raw.githubusercontent.com/$REPO_OWNER/wolfssl-examples/master/Arduino/sketches/compile-all-examples.sh" \
364+
-o "$WOLFSSL_EXAMPLES_DIRECTORY/compile-all-examples.sh"
276365
277366
# Check if the first line is "404: Not Found" - which would indicate the curl path above is bad.
278367
FILE="$WOLFSSL_EXAMPLES_DIRECTORY/compile-all-examples.sh"
@@ -318,8 +407,12 @@ jobs:
318407
319408
echo "Change directory to Arduino examples..."
320409
pushd "$WOLFSSL_EXAMPLES_DIRECTORY"
410+
chmod +x ./compile-all-examples.sh
411+
412+
# The script expects all the examples to be in the current directory.
413+
# Along with ./board_list.txt from examples repo
321414
echo "Current directory: $PWD"
322415
echo "Calling ./compile-all-examples.sh"
323-
bash ./compile-all-examples.sh
416+
bash ./compile-all-examples.sh ./board_list.txt "${{ matrix.fqbn }}"
324417
popd
325418
# End Compile Arduino Sketches for Various Boards

.github/workflows/async.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333

3434
- name: Test wolfSSL async
3535
run: |
36-
./async-check.sh install
36+
./autogen.sh
3737
./configure ${{ matrix.config }}
3838
make check
3939

.github/workflows/curl.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
- name: Install test dependencies
5353
run: |
5454
sudo apt-get update
55-
sudo apt-get install nghttp2 libpsl5 libpsl-dev python3-impacket
55+
sudo apt-get install nghttp2 libpsl5 libpsl-dev python3-impacket apache2 apache2-dev
5656
5757
- name: Download lib
5858
uses: actions/download-artifact@v4
@@ -68,9 +68,9 @@ jobs:
6868
repository: curl/curl
6969
path: curl
7070
ref: ${{ matrix.curl_ref }}
71-
configure: --with-wolfssl=$GITHUB_WORKSPACE/build-dir
71+
configure: --with-wolfssl=$GITHUB_WORKSPACE/build-dir --with-test-httpd=yes
7272
check: false
7373

7474
- name: Test curl
7575
working-directory: curl
76-
run: make -j $(nproc) test-ci
76+
run: make -j $(nproc) test-nonflaky

.github/workflows/fil-c.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Fil-C Tests
22

33
env:
4-
FIL_C_VERSION: v0.673
4+
FIL_C_VERSION: v0.674
55

66
# START OF COMMON SECTION
77
on:

.github/workflows/multi-arch.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ jobs:
3737
CFLAGS: -marm -DWOLFSSL_SP_ARM_ARCH=6
3838
ARCH: armel
3939
EXTRA_OPTS: --enable-sp-asm
40+
opts: [ '-O2', '-O3', '-O1 -UFP_ECC', '-O0', '-Os', '-Ofast' ]
4041
if: github.repository_owner == 'wolfssl'
4142
runs-on: ubuntu-22.04
4243
# This should be a safe limit for the tests to run.
@@ -47,10 +48,10 @@ jobs:
4748
sudo apt update
4849
sudo apt install -y crossbuild-essential-${{ matrix.ARCH }} qemu-user
4950
- uses: actions/checkout@v4
50-
- name: Build
51+
- name: Build for ${{ matrix.ARCH }} with Opt Level ${{ matrix.opts }}
5152
env:
5253
CC: ${{ matrix.CC }}
53-
CFLAGS: ${{ matrix.CFLAGS }}
54+
CFLAGS: ${{ matrix.CFLAGS }} ${{ matrix.opts }}
5455
QEMU_LD_PREFIX: /usr/${{ matrix.HOST }}
5556
run: ./autogen.sh && ./configure --host=${{ matrix.HOST }} --enable-all --disable-examples CPPFLAGS="-pedantic -Wdeclaration-after-statement -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE -DWOLFCRYPT_TEST_LINT" ${{ matrix.EXTRA_OPTS }} && make
5657
- name: Print errors

.github/workflows/os-check.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ jobs:
6363
'--enable-coding=no',
6464
'--enable-dtls --enable-dtls13 --enable-ocspstapling --enable-ocspstapling2
6565
--enable-cert-setup-cb --enable-sessioncerts',
66+
'--disable-sni --disable-ecc --disable-tls13 --disable-secure-renegotiation-info',
67+
'CPPFLAGS=-DWOLFSSL_BLIND_PRIVATE_KEY',
6668
]
6769
name: make check
6870
if: github.repository_owner == 'wolfssl'

.github/workflows/watcomc.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,10 @@ jobs:
6262
uses: open-watcom/setup-watcom@v0
6363
with:
6464
version: ${{ matrix.platform.owimage }}
65-
tag: 2025-09-01-Build
66-
# Currently fixed to this build because of latest compiler error:
67-
# file clbrdll.lib(fltuse80): undefined symbol _SetLD80bit_
65+
# Currently fixed to a monthly build because of historical instability with daily releases.
66+
# See https://github.com/wolfSSL/wolfssl/pull/9167
67+
# Pin to monthly release as needed:
68+
tag: 2025-11-03-Build
6869

6970
- name: Checkout wolfSSL
7071
uses: actions/checkout@v4

.gitignore

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,6 @@ wolfcrypt_first.c
5050
wolfcrypt_last.c
5151
selftest.c
5252
fipsv2.c
53-
src/async.c
54-
wolfssl/async.h
55-
wolfcrypt/src/async.c
56-
wolfssl/wolfcrypt/async.h
57-
wolfcrypt/src/port/intel/quickassist.c
58-
wolfcrypt/src/port/intel/quickassist_mem.c
59-
wolfcrypt/src/port/cavium/cavium_nitrox.c
60-
wolfssl/wolfcrypt/port/intel/quickassist.h
61-
wolfssl/wolfcrypt/port/intel/quickassist_mem.h
62-
wolfssl/wolfcrypt/port/cavium/cavium_nitrox.h
6353
ctaocrypt/benchmark/benchmark
6454
ctaocrypt/test/testctaocrypt
6555
wolfcrypt/benchmark/benchmark
@@ -249,6 +239,12 @@ linuxkm/linuxkm
249239
linuxkm/src
250240
linuxkm/patches/src
251241
*.nds
242+
bsdkm/export_syms
243+
bsdkm/i386
244+
bsdkm/libwolfssl.ko
245+
bsdkm/machine
246+
bsdkm/opt_global.h
247+
bsdkm/x86
252248

253249
# autotools generated
254250
scripts/unit.test

0 commit comments

Comments
 (0)