Skip to content

Commit b84b0e7

Browse files
committed
Merge branch 'master' into make_rpm_fix
2 parents 1de1315 + 5151a69 commit b84b0e7

200 files changed

Lines changed: 14927 additions & 9513 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.

.github/workflows/hostap-vm.yml

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,21 @@ jobs:
7676
with:
7777
path: hostap
7878
key: hostap-repo
79-
lookup-only: true
8079

8180
- name: Checkout hostap
8281
if: steps.cache.outputs.cache-hit != 'true'
8382
run: git clone https://w1.fi/hostap.git hostap
8483

84+
- name: tar hostap
85+
run: tar -zcf hostap.tgz hostap
86+
87+
- name: Upload hostap repo
88+
uses: actions/upload-artifact@v4
89+
with:
90+
name: hostap-repo
91+
path: hostap.tgz
92+
retention-days: 1
93+
8594
build_uml_linux:
8695
name: Build UML (UserMode Linux)
8796
if: github.repository_owner == 'wolfssl'
@@ -96,15 +105,16 @@ jobs:
96105
with:
97106
path: linux/linux
98107
key: hostap-linux-${{ env.LINUX_REF }}
99-
lookup-only: true
100108

101-
- name: Checking if we have hostap in cache
109+
- name: Download hostap repo
102110
if: steps.cache.outputs.cache-hit != 'true'
103-
uses: actions/cache/restore@v4
111+
uses: actions/download-artifact@v4
104112
with:
105-
path: hostap
106-
key: hostap-repo
107-
fail-on-cache-miss: true
113+
name: hostap-repo
114+
115+
- name: untar hostap
116+
if: steps.cache.outputs.cache-hit != 'true'
117+
run: tar -xf hostap.tgz
108118

109119
- name: Checkout linux
110120
if: steps.cache.outputs.cache-hit != 'true'
@@ -122,6 +132,13 @@ jobs:
122132
cd linux
123133
yes "" | ARCH=um make -j $(nproc)
124134
135+
- name: Upload kernel binary
136+
uses: actions/upload-artifact@v4
137+
with:
138+
name: uml-linux-kernel
139+
path: linux/linux
140+
retention-days: 1
141+
125142
hostap_test:
126143
strategy:
127144
fail-fast: false
@@ -170,13 +187,14 @@ jobs:
170187
timeout-minutes: 45
171188
needs: [build_wolfssl, build_uml_linux, checkout_hostap]
172189
steps:
173-
- name: Checking if we have kernel in cache
174-
uses: actions/cache/restore@v4
175-
id: cache
190+
- name: Download kernel binary
191+
uses: actions/download-artifact@v4
176192
with:
177-
path: linux/linux
178-
key: hostap-linux-${{ env.LINUX_REF }}
179-
fail-on-cache-miss: true
193+
name: uml-linux-kernel
194+
path: linux
195+
196+
- name: Restore kernel binary executable bit
197+
run: chmod +x linux/linux
180198

181199
# No way to view the full strategy in the browser (really weird)
182200
- name: Print strategy
@@ -215,12 +233,13 @@ jobs:
215233
- name: Install pip dependencies
216234
run: sudo pip install pycryptodome
217235

218-
- name: Checking if we have hostap in cache
219-
uses: actions/cache/restore@v4
236+
- name: Download hostap repo
237+
uses: actions/download-artifact@v4
220238
with:
221-
path: hostap
222-
key: hostap-repo
223-
fail-on-cache-miss: true
239+
name: hostap-repo
240+
241+
- name: untar hostap
242+
run: tar -xf hostap.tgz
224243

225244
- name: Checkout correct ref
226245
working-directory: hostap

.github/workflows/os-check.yml

Lines changed: 62 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@ concurrency:
1313
# END OF COMMON SECTION
1414

1515
jobs:
16-
# Configs that interact with platform-specific features (sys-ca-certs,
17-
# Apple Security.framework, OpenSSL compat layer, networking).
18-
# Run on both Ubuntu and macOS.
19-
make_check:
16+
# Ubuntu config matrix. macOS is covered separately by make_check_macos
17+
# below with a curated subset; configs here either have equivalent macOS
18+
# coverage there or exercise no Darwin-specific code.
19+
make_check_linux:
2020
strategy:
2121
fail-fast: false
2222
matrix:
23-
os: [ ubuntu-24.04, macos-latest ]
2423
config: [
2524
# Add new configs here
2625
'',
@@ -89,26 +88,6 @@ jobs:
8988
'--enable-ocsp --enable-ocsp-responder --enable-ocspstapling CPPFLAGS="-DWOLFSSL_NONBLOCK_OCSP" --enable-maxfragment',
9089
'--enable-all CPPFLAGS=-DWOLFSSL_HASH_KEEP',
9190
'--enable-all --enable-writedup',
92-
]
93-
name: make check
94-
if: github.repository_owner == 'wolfssl'
95-
runs-on: ${{ matrix.os }}
96-
# This should be a safe limit for the tests to run.
97-
timeout-minutes: 14
98-
steps:
99-
- name: Build and test wolfSSL
100-
uses: wolfSSL/actions-build-autotools-project@v1
101-
with:
102-
configure: CFLAGS="-pedantic -Wdeclaration-after-statement -Wnull-dereference -Wno-overlength-strings -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE" ${{ matrix.config }}
103-
check: true
104-
105-
# Platform-agnostic configs: pure crypto algorithms, preprocessor guards,
106-
# or features with no macOS-specific code paths. Linux only.
107-
make_check_linux:
108-
strategy:
109-
fail-fast: false
110-
matrix:
111-
config: [
11291
'--enable-ascon --enable-experimental',
11392
'--enable-ascon CPPFLAGS=-DWOLFSSL_ASCON_UNROLL --enable-experimental',
11493
# PKCS#7 with RSA-PSS (CMS RSASSA-PSS signers)
@@ -130,7 +109,7 @@ jobs:
130109
'--enable-curve25519=nonblock --enable-ecc=nonblock --enable-sp=yes,nonblock CPPFLAGS="-DWOLFSSL_PUBLIC_MP -DWOLFSSL_DEBUG_NONBLOCK"',
131110
'--enable-certreq --enable-certext --enable-certgen --disable-secure-renegotiation-info CPPFLAGS="-DNO_TLS"',
132111
]
133-
name: make check (Linux only)
112+
name: make check linux
134113
if: github.repository_owner == 'wolfssl'
135114
runs-on: ubuntu-24.04
136115
# This should be a safe limit for the tests to run.
@@ -142,6 +121,55 @@ jobs:
142121
configure: CFLAGS="-pedantic -Wdeclaration-after-statement -Wnull-dereference -Wno-overlength-strings -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE" ${{ matrix.config }}
143122
check: true
144123

124+
# Curated macOS subset. Each config exists for a Darwin-specific reason;
125+
# do not add entries that only re-test platform-agnostic crypto already
126+
# covered by the corresponding Linux run.
127+
make_check_macos:
128+
strategy:
129+
fail-fast: false
130+
matrix:
131+
config: [
132+
# Default build: --enable-sys-ca-certs is auto-on on macOS, so
133+
# this exercises Apple keychain / system trust loading in
134+
# src/ssl_load.c that has no Linux equivalent.
135+
'',
136+
# Broad key-crypto + Security.framework + opensslextra in one run
137+
# (RSA, ECC, AES, SHA-2/3, ChaCha20-Poly1305, Curve25519/448, HMAC,
138+
# sniffer, DTLS, OCSP, ...). Note: --enable-all does NOT enable
139+
# cryptocb or SHE, so those have their own entries below.
140+
'--enable-all --enable-asn=template',
141+
# Validates the configure-time auto-enable override and that the
142+
# build compiles out the Security.framework code path cleanly --
143+
# macOS is the only OS where sys-ca-certs is auto-on by default.
144+
'--disable-sys-ca-certs',
145+
# DTLS over BSD sockets on Darwin: connection-ID, fragmented
146+
# ClientHello, secure renegotiation, PSK, AES-CCM, null cipher --
147+
# exercises recvmsg/MTU/datagram handling that differs from Linux.
148+
'--enable-dtls --enable-dtlscid --enable-dtls13 --enable-secure-renegotiation
149+
--enable-psk --enable-aesccm --enable-nullcipher
150+
CPPFLAGS=-DWOLFSSL_STATIC_RSA',
151+
# Crypto-callback dispatcher under Apple clang. Not covered by
152+
# --enable-all; verifies the cryptocb find/setkey/keygen path
153+
# compiles and runs on the macOS toolchain.
154+
'--enable-cryptocb --enable-keygen --enable-cryptocbutils=setkey',
155+
]
156+
name: make check macos
157+
if: github.repository_owner == 'wolfssl'
158+
runs-on: macos-latest
159+
# This should be a safe limit for the tests to run.
160+
timeout-minutes: 14
161+
steps:
162+
- name: Build and test wolfSSL
163+
uses: wolfSSL/actions-build-autotools-project@v1
164+
with:
165+
configure: CFLAGS="-pedantic -Wdeclaration-after-statement -Wnull-dereference -Wno-overlength-strings -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE" ${{ matrix.config }}
166+
check: true
167+
168+
# Run on both OSes: the user_settings.h header-driven build path is
169+
# distinct from the autotools-driven --enable-all path in
170+
# make_check_linux / make_check_macos, and macOS-specific guard ordering
171+
# (e.g. WOLFSSL_SYS_CA_CERTS pulling in Security.framework) needs to be
172+
# exercised under Apple clang here.
145173
make_user_settings:
146174
strategy:
147175
fail-fast: false
@@ -165,12 +193,11 @@ jobs:
165193
user-settings: ${{ matrix.user-settings }}
166194

167195
make_user_settings_testwolfcrypt:
196+
# testwolfcrypt runs pure crypto tests with no platform-specific
197+
# features, so Linux-only is sufficient for these user_settings.
168198
strategy:
169199
fail-fast: false
170200
matrix:
171-
# testwolfcrypt runs pure crypto tests with no platform-specific
172-
# features, so Linux-only is sufficient for these user_settings.
173-
os: [ ubuntu-24.04 ]
174201
user-settings: [
175202
# Add new user_settings.h here (alphabetical order)
176203
'examples/configs/user_settings_ca.h',
@@ -194,7 +221,7 @@ jobs:
194221
]
195222
name: make user_setting.h (testwolfcrypt only)
196223
if: github.repository_owner == 'wolfssl'
197-
runs-on: ${{ matrix.os }}
224+
runs-on: ubuntu-24.04
198225
# This should be a safe limit for the tests to run.
199226
timeout-minutes: 14
200227
steps:
@@ -208,21 +235,18 @@ jobs:
208235
- name: Run wolfcrypt/test/testwolfcrypt
209236
run: ./wolfcrypt/test/testwolfcrypt
210237

211-
# Has to be dedicated function due to the sed call
238+
# Has to be dedicated function due to the sed call.
239+
# Platform-agnostic; --enable-all macOS coverage in make_check_macos and
240+
# the macOS user_settings_all.h run in make_user_settings already cover
241+
# the equivalent code paths on Darwin.
212242
make_user_all:
213-
strategy:
214-
fail-fast: false
215-
matrix:
216-
os: [ ubuntu-24.04, macos-latest ]
217243
name: make user_setting.h (with sed)
218244
if: github.repository_owner == 'wolfssl'
219-
runs-on: ${{ matrix.os }}
245+
runs-on: ubuntu-24.04
220246
# This should be a safe limit for the tests to run.
221247
timeout-minutes: 14
222248
steps:
223249
- uses: actions/checkout@v4
224-
- if: ${{ matrix.os == 'macos-latest' }}
225-
run: brew install automake libtool
226250
- run: ./autogen.sh
227251
- name: user_settings_all.h with compatibility layer
228252
run: |

.github/workflows/pq-all.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
if: github.repository_owner == 'wolfssl'
4545
runs-on: ubuntu-24.04
4646
# This should be a safe limit for the tests to run.
47-
timeout-minutes: 6
47+
timeout-minutes: 10
4848
steps:
4949
- uses: actions/checkout@v4
5050
name: Checkout wolfSSL

.wolfssl_known_macro_extras

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,7 @@ STM32L552xx
563563
STM32L562xx
564564
STM32MP135Fxx
565565
STM32N657xx
566+
STM32U385xx
566567
STM32U575xx
567568
STM32U585xx
568569
STM32U5A9xx
@@ -833,7 +834,6 @@ WOLFSSL_NO_DH186
833834
WOLFSSL_NO_DTLS_SIZE_CHECK
834835
WOLFSSL_NO_ETM_ALERT
835836
WOLFSSL_NO_FENCE
836-
WOLFSSL_NO_INIT_CTX_KEY
837837
WOLFSSL_NO_ISSUERHASH_TDPEER
838838
WOLFSSL_NO_KCAPI_AES_CBC
839839
WOLFSSL_NO_KCAPI_HMAC_SHA1
@@ -852,7 +852,6 @@ WOLFSSL_NO_SERVER_GROUPS_EXT
852852
WOLFSSL_NO_SESSION_STATS
853853
WOLFSSL_NO_SIGALG
854854
WOLFSSL_NO_SOCKADDR_UN
855-
WOLFSSL_NO_SPHINCS
856855
WOLFSSL_NO_STRICT_CIPHER_SUITE
857856
WOLFSSL_NO_TICKET_EXPIRE
858857
WOLFSSL_NO_TRUSTED_CERTS_VERIFY
@@ -910,6 +909,7 @@ WOLFSSL_SHA512_HASHTYPE
910909
WOLFSSL_SHUTDOWNONCE
911910
WOLFSSL_SILABS_TRNG
912911
WOLFSSL_SLHDSA_FULL_HASH
912+
WOLFSSL_SLHDSA_NO_VERIFY_ONLY
913913
WOLFSSL_SNIFFER_NO_RECOVERY
914914
WOLFSSL_SP_ARM32_UDIV
915915
WOLFSSL_SP_FAST_NCT_EXPTMOD

0 commit comments

Comments
 (0)