Skip to content

Commit 3d5c03a

Browse files
Merge branch 'master' of https://github.com/wolfSSL/wolfssl into zd21204
2 parents 9a0c18c + ff84de2 commit 3d5c03a

77 files changed

Lines changed: 4842 additions & 570 deletions

Some content is hidden

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

.github/workflows/arduino.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,9 @@ jobs:
9494
- arduino:avr:nano
9595
- arduino:avr:uno
9696
- arduino:avr:yun
97-
- arduino:samd:mkrwifi1010
9897
- arduino:samd:mkr1000
9998
- arduino:samd:mkrfox1200
10099
- arduino:mbed_edge:edge_control
101-
- arduino:mbed_nano:nanorp2040connect
102100
- arduino:mbed_portenta:envie_m7
103101
- arduino:mbed_portenta:portenta_x8
104102
- arduino:renesas_uno:unor4wifi

.github/workflows/bind.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
fail-fast: false
4545
matrix:
4646
# List of releases to test
47-
ref: [ 9.18.0, 9.18.28, 9.18.33 ]
47+
ref: [ 9.18.0, 9.18.28, 9.18.33, 9.20.11 ]
4848
name: ${{ matrix.ref }}
4949
if: github.repository_owner == 'wolfssl'
5050
runs-on: ubuntu-24.04
@@ -66,7 +66,7 @@ jobs:
6666
export DEBIAN_FRONTEND=noninteractive
6767
sudo apt-get update
6868
# hostap dependencies
69-
sudo apt-get install -y libuv1-dev libnghttp2-dev libcap-dev libcmocka-dev
69+
sudo apt-get install -y libuv1-dev libnghttp2-dev libcap-dev libcmocka-dev liburcu-dev
7070
7171
- name: Checkout OSP
7272
uses: actions/checkout@v4

.github/workflows/msmtp.yml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
name: msmtp Tests
2+
3+
# START OF COMMON SECTION
4+
on:
5+
push:
6+
branches: [ 'master', 'main', 'release/**' ]
7+
pull_request:
8+
branches: [ '*' ]
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
# END OF COMMON SECTION
14+
15+
jobs:
16+
build_wolfssl:
17+
name: Build wolfSSL
18+
# Just to keep it the same as the testing target
19+
if: github.repository_owner == 'wolfssl'
20+
runs-on: ubuntu-24.04
21+
# This should be a safe limit for the tests to run.
22+
timeout-minutes: 4
23+
steps:
24+
- name: Build wolfSSL
25+
uses: wolfSSL/actions-build-autotools-project@v1
26+
with:
27+
path: wolfssl
28+
configure: --enable-opensslextra --enable-opensslall
29+
install: true
30+
31+
- name: tar build-dir
32+
run: tar -zcf build-dir.tgz build-dir
33+
34+
- name: Upload built lib
35+
uses: actions/upload-artifact@v4
36+
with:
37+
name: wolf-install-msmtp
38+
path: build-dir.tgz
39+
retention-days: 5
40+
41+
msmtp_check:
42+
strategy:
43+
fail-fast: false
44+
matrix:
45+
ref: [ 1.8.28 ]
46+
name: ${{ matrix.ref }}
47+
if: github.repository_owner == 'wolfssl'
48+
runs-on: ubuntu-24.04
49+
# This should be a safe limit for the tests to run.
50+
timeout-minutes: 10
51+
needs: build_wolfssl
52+
steps:
53+
- name: Download lib
54+
uses: actions/download-artifact@v4
55+
with:
56+
name: wolf-install-msmtp
57+
58+
- name: untar build-dir
59+
run: tar -xf build-dir.tgz
60+
61+
- name: Checkout OSP
62+
uses: actions/checkout@v4
63+
with:
64+
repository: wolfssl/osp
65+
path: osp
66+
67+
- name: Install dependencies
68+
run: |
69+
sudo apt-get update
70+
sudo apt-get install -y \
71+
autoconf automake libtool pkg-config gettext \
72+
libidn2-dev libsecret-1-dev autopoint
73+
74+
- name: Checkout msmtp
75+
uses: actions/checkout@v4
76+
with:
77+
repository: marlam/msmtp
78+
ref: msmtp-${{ matrix.ref }}
79+
path: msmtp-${{ matrix.ref }}
80+
81+
- name: Apply wolfSSL patch
82+
working-directory: msmtp-${{ matrix.ref }}
83+
run: patch -p1 < $GITHUB_WORKSPACE/osp/msmtp/${{ matrix.ref }}/wolfssl-msmtp-${{ matrix.ref }}.patch
84+
85+
- name: Regenerate build system
86+
working-directory: msmtp-${{ matrix.ref }}
87+
run: autoreconf -ivf
88+
89+
- name: Configure msmtp with wolfSSL
90+
working-directory: msmtp-${{ matrix.ref }}
91+
run: |
92+
PKG_CONFIG_PATH=$GITHUB_WORKSPACE/build-dir/lib/pkgconfig \
93+
./configure --with-tls=wolfssl
94+
95+
- name: Build msmtp
96+
working-directory: msmtp-${{ matrix.ref }}
97+
run: make -j$(nproc)
98+
99+
- name: Run msmtp tests
100+
working-directory: msmtp-${{ matrix.ref }}
101+
run: LD_LIBRARY_PATH=$GITHUB_WORKSPACE/build-dir/lib make check
102+
103+
- name: Confirm msmtp built with wolfSSL
104+
run: ldd msmtp-${{ matrix.ref }}/src/msmtp | grep wolfssl
105+
106+
- name: Print test logs on failure
107+
if: ${{ failure() }}
108+
run: tail -n +1 msmtp-${{ matrix.ref }}/tests/*.log

.github/workflows/nginx.yml

Lines changed: 52 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ concurrency:
1212
cancel-in-progress: true
1313
# END OF COMMON SECTION
1414

15+
# clang has better sanitizer support
16+
env:
17+
CC: clang
18+
1519
jobs:
1620
build_wolfssl:
1721
name: Build wolfSSL
@@ -31,7 +35,8 @@ jobs:
3135
uses: wolfSSL/actions-build-autotools-project@v1
3236
with:
3337
path: wolfssl
34-
configure: --enable-nginx ${{ env.wolf_debug_flags }}
38+
configure: >-
39+
--enable-nginx --enable-curve25519 --enable-ed25519 ${{ env.wolf_debug_flags }}
3540
install: true
3641

3742
- name: tar build-dir
@@ -50,6 +55,41 @@ jobs:
5055
matrix:
5156
include:
5257
# in general we want to pass all tests that match *ssl*
58+
- ref: 1.28.1
59+
test-ref: 0fccfcef1278263416043e0bbb3e0116b84026e4
60+
# Following tests pass with sanitizer on
61+
sanitize-ok: >-
62+
h2_ssl_proxy_cache.t h2_ssl.t h2_ssl_variables.t
63+
h2_ssl_verify_client.t mail_imap_ssl.t mail_ssl_session_reuse.t
64+
mail_ssl.t proxy_ssl_certificate_cache.t
65+
proxy_ssl_certificate_empty.t proxy_ssl_certificate.t
66+
proxy_ssl_certificate_vars.t proxy_ssl_name.t ssl_cache_reload.t
67+
ssl_certificate_aux.t ssl_certificate_cache.t
68+
ssl_certificate_chain.t ssl_certificates.t ssl_certificate.t
69+
ssl_client_escaped_cert.t ssl_crl.t ssl_curve.t ssl_ocsp.t
70+
ssl_password_file.t ssl_proxy_upgrade.t ssl_reject_handshake.t
71+
ssl_session_reuse.t ssl_session_ticket_key.t ssl_sni_protocols.t
72+
ssl_sni_reneg.t ssl_sni_sessions.t ssl_sni.t ssl_stapling.t ssl.t
73+
ssl_verify_client.t ssl_verify_client_trusted.t ssl_verify_depth.t
74+
stream_proxy_ssl_certificate_cache.t stream_proxy_ssl_certificate.t
75+
stream_proxy_ssl_certificate_vars.t
76+
stream_proxy_ssl_name_complex.t stream_proxy_ssl_name.t
77+
stream_ssl_alpn.t stream_ssl_certificate_cache.t
78+
stream_ssl_certificate.t stream_ssl_ocsp.t stream_ssl_preread_alpn.t
79+
stream_ssl_preread_protocol.t stream_ssl_preread.t
80+
stream_ssl_reject_handshake.t stream_ssl_session_reuse.t
81+
stream_ssl_sni_protocols.t stream_ssl_stapling.t stream_ssl.t
82+
stream_ssl_variables.t stream_ssl_verify_client.t
83+
stream_upstream_zone_ssl.t upstream_zone_ssl.t
84+
uwsgi_ssl_certificate.t uwsgi_ssl_certificate_vars.t
85+
# Following tests do not pass with sanitizer on (with OpenSSL too)
86+
sanitize-not-ok: >-
87+
grpc_ssl.t h2_proxy_request_buffering_ssl.t h2_proxy_ssl.t
88+
proxy_request_buffering_ssl.t proxy_ssl_conf_command.t
89+
proxy_ssl_keepalive.t proxy_ssl.t proxy_ssl_verify.t ssl_cache.t
90+
stream_proxy_protocol_ssl.t stream_proxy_ssl_conf_command.t
91+
stream_proxy_ssl.t stream_proxy_ssl_verify.t
92+
5393
- ref: 1.25.0
5494
test-ref: 5b2894ea1afd01a26c589ce11f310df118e42592
5595
# Following tests pass with sanitizer on
@@ -120,30 +160,19 @@ jobs:
120160
- name: untar build-dir
121161
run: tar -xf build-dir.tgz
122162

123-
- name: Install dependencies
124-
run: |
125-
sudo cpan -iT Proc::Find
163+
- name: Openssl version
164+
run: openssl version -a
126165

127-
# Locking in the version of SSLeay used with testing
128-
- name: Download and install Net::SSLeay 1.94 manually
129-
run: |
130-
curl -LO https://www.cpan.org/modules/by-module/Net/CHRISN/Net-SSLeay-1.94.tar.gz
131-
tar -xzf Net-SSLeay-1.94.tar.gz
132-
cd Net-SSLeay-1.94
133-
perl Makefile.PL
134-
make
135-
sudo make install
166+
- name: Setup Perl environment
167+
uses: shogo82148/actions-setup-perl@v1
168+
with:
169+
perl-version: '5.38.2'
136170

137171
# SSL version 2.091 changes '' return to undef causing test case to fail.
138172
# Locking in the test version to use as 2.090
139-
- name: Download and install IO::Socket::SSL 2.090 manually
173+
- name: Install dependencies
140174
run: |
141-
curl -LO https://www.cpan.org/modules/by-module/IO/IO-Socket-SSL-2.090.tar.gz
142-
tar -xzf IO-Socket-SSL-2.090.tar.gz
143-
cd IO-Socket-SSL-2.090
144-
perl Makefile.PL
145-
make
146-
sudo make install
175+
cpanm --notest Proc::Find Net::SSLeay@1.94 IO::Socket::SSL@2.090
147176
148177
- name: Checkout wolfssl-nginx
149178
uses: actions/checkout@v4
@@ -211,10 +240,6 @@ jobs:
211240
run: |
212241
echo "nginx_c_flags=-O0" >> $GITHUB_ENV
213242
214-
- name: workaround high-entropy ASLR
215-
# not needed after either an update to llvm or runner is done
216-
run: sudo sysctl vm.mmap_rnd_bits=28
217-
218243
- name: Build nginx with sanitizer
219244
working-directory: nginx
220245
run: |
@@ -229,19 +254,16 @@ jobs:
229254
working-directory: nginx
230255
run: ldd objs/nginx | grep wolfssl
231256

232-
- if: ${{ runner.debug }}
233-
name: Run nginx-tests with sanitizer (debug)
257+
- name: Create LSAN suppression file
234258
working-directory: nginx-tests
235259
run: |
236-
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GITHUB_WORKSPACE/build-dir/lib \
237-
TMPDIR=$GITHUB_WORKSPACE TEST_NGINX_VERBOSE=y TEST_NGINX_CATLOG=y \
238-
TEST_NGINX_BINARY=../nginx/objs/nginx prove -v ${{ matrix.sanitize-ok }}
260+
echo "leak:ngx_worker_process_init" > lsan.supp
239261
240262
- if: ${{ !runner.debug }}
241263
name: Run nginx-tests with sanitizer
242264
working-directory: nginx-tests
243265
run: |
244266
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GITHUB_WORKSPACE/build-dir/lib \
267+
LSAN_OPTIONS=suppressions=$GITHUB_WORKSPACE/nginx-tests/lsan.supp \
245268
TMPDIR=$GITHUB_WORKSPACE TEST_NGINX_BINARY=../nginx/objs/nginx \
246269
prove ${{ matrix.sanitize-ok }}
247-

.github/workflows/no-malloc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ jobs:
1919
config: [
2020
# Add new configs here
2121
'--enable-rsa --enable-keygen --disable-dh CFLAGS="-DWOLFSSL_NO_MALLOC -DRSA_MIN_SIZE=1024 -pedantic -Wdeclaration-after-statement -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"',
22+
'--enable-ecc --enable-rsa --enable-keygen --enable-ed25519 --enable-curve25519 --enable-ed448 --enable-curve448 --enable-mlkem CFLAGS="-DWOLFSSL_NO_MALLOC -pedantic -Wdeclaration-after-statement -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"',
23+
'--enable-ecc --enable-rsa --enable-keygen --enable-ed25519 --enable-curve25519 --enable-ed448 --enable-curve448 --enable-mlkem --enable-staticmemory CFLAGS="-DWOLFSSL_NO_MALLOC -pedantic -Wdeclaration-after-statement -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE"',
2224
]
2325
name: make check
2426
if: github.repository_owner == 'wolfssl'

.github/workflows/os-check.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ jobs:
5353
'--enable-opensslall --enable-opensslextra CPPFLAGS=-DWC_RNG_SEED_CB',
5454
'--enable-opensslall --enable-opensslextra
5555
CPPFLAGS=''-DWC_RNG_SEED_CB -DWOLFSSL_NO_GETPID'' ',
56+
# PKCS#7 with RSA-PSS (CMS RSASSA-PSS signers)
57+
'--enable-pkcs7 CPPFLAGS=-DWC_RSA_PSS',
5658
'--enable-opensslextra CPPFLAGS=''-DWOLFSSL_NO_CA_NAMES'' ',
5759
'--enable-opensslextra=x509small',
5860
'CPPFLAGS=''-DWOLFSSL_EXTRA'' ',

.github/workflows/rust-wrapper.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ jobs:
3838
# Add new configs here
3939
'',
4040
'--enable-all',
41+
'--enable-all --enable-dilithium',
4142
'--enable-cryptonly --disable-examples',
4243
'--enable-cryptonly --disable-examples --disable-aes --disable-aesgcm',
4344
'--enable-cryptonly --disable-examples --disable-aescbc',

.github/workflows/socat.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
uses: wolfSSL/actions-build-autotools-project@v1
2424
with:
2525
path: wolfssl
26-
configure: --enable-maxfragment --enable-opensslall --enable-opensslextra --enable-dtls --enable-oldtls --enable-tlsv10 --enable-ipv6 'CPPFLAGS=-DWOLFSSL_NO_DTLS_SIZE_CHECK -DOPENSSL_COMPATIBLE_DEFAULTS'
26+
configure: --enable-all --enable-oldtls --enable-tlsv10 --enable-ipv6 'CPPFLAGS=-DWOLFSSL_NO_DTLS_SIZE_CHECK -DOPENSSL_COMPATIBLE_DEFAULTS'
2727
install: true
2828

2929
- name: tar build-dir
@@ -43,6 +43,14 @@ jobs:
4343
# This should be a safe limit for the tests to run.
4444
timeout-minutes: 30
4545
needs: build_wolfssl
46+
strategy:
47+
fail-fast: false
48+
matrix:
49+
include:
50+
- socat_version: "1.8.0.0"
51+
expect_fail: "36,64,146,216,309,310,386,399,402,403,459,460,467,468,475,478,491,492,528"
52+
- socat_version: "1.8.0.3"
53+
expect_fail: "146,386,399,402,459,460,467,468,475,478,491,492,495,528"
4654
steps:
4755
- name: Install prereqs
4856
run:
@@ -57,7 +65,7 @@ jobs:
5765
run: tar -xf build-dir.tgz
5866

5967
- name: Download socat
60-
run: curl -O http://www.dest-unreach.org/socat/download/socat-1.8.0.0.tar.gz && tar xvf socat-1.8.0.0.tar.gz
68+
run: curl -O http://www.dest-unreach.org/socat/download/socat-${{ matrix.socat_version }}.tar.gz && tar xvf socat-${{ matrix.socat_version }}.tar.gz
6169

6270
- name: Checkout OSP
6371
uses: actions/checkout@v4
@@ -66,16 +74,16 @@ jobs:
6674
path: osp
6775

6876
- name: Build socat
69-
working-directory: ./socat-1.8.0.0
77+
working-directory: ./socat-${{ matrix.socat_version }}
7078
run: |
71-
patch -p1 < ../osp/socat/1.8.0.0/socat-1.8.0.0.patch
79+
patch -p1 < ../osp/socat/${{ matrix.socat_version }}/socat-${{ matrix.socat_version }}.patch
7280
autoreconf -vfi
7381
./configure --with-wolfssl=$GITHUB_WORKSPACE/build-dir --enable-default-ipv=4
7482
make
7583
7684
- name: Run socat tests
77-
working-directory: ./socat-1.8.0.0
85+
working-directory: ./socat-${{ matrix.socat_version }}
7886
run: |
7987
export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/build-dir/lib:$LD_LIBRARY_PATH
8088
export SHELL=/bin/bash
81-
SOCAT=$GITHUB_WORKSPACE/socat-1.8.0.0/socat ./test.sh -t 0.5 --expect-fail 36,64,146,214,216,217,309,310,386,399,402,403,459,460,467,468,475,478,492,528,530
89+
SOCAT=$GITHUB_WORKSPACE/socat-${{ matrix.socat_version }}/socat ./test.sh -t 0.5 --expect-fail ${{ matrix.expect_fail }}

.github/workflows/sssd.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
fail-fast: false
4545
matrix:
4646
# List of releases to test
47-
ref: [ 2.9.1 ]
47+
ref: [ 2.9.1, 2.10.2 ]
4848
name: ${{ matrix.ref }}
4949
if: github.repository_owner == 'wolfssl'
5050
runs-on: ubuntu-24.04
@@ -61,7 +61,8 @@ jobs:
6161
# Don't prompt for anything
6262
export DEBIAN_FRONTEND=noninteractive
6363
sudo apt-get update
64-
sudo apt-get install -y build-essential autoconf libldb-dev libldb2 python3-ldb bc
64+
sudo apt-get install -y build-essential autoconf libldb-dev \
65+
libldb2 python3-ldb bc libcap-dev
6566
6667
- name: Setup env
6768
run: |

.wolfssl_known_macro_extras

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ ENABLED_BSDKM_REGISTER
220220
ENABLE_SECURE_SOCKETS_LOGS
221221
ESP32
222222
ESP8266
223+
ESPIPE
223224
ESP_ENABLE_WOLFSSH
224225
ESP_IDF_VERSION
225226
ESP_IDF_VERSION_MAJOR
@@ -367,6 +368,7 @@ NO_ASM
367368
NO_ASN_OLD_TYPE_NAMES
368369
NO_CAMELLIA_CBC
369370
NO_CERT
371+
NO_CERT_IN_TICKET
370372
NO_CIPHER_SUITE_ALIASES
371373
NO_CLIENT_CACHE
372374
NO_CLOCK_SPEEDUP
@@ -1094,6 +1096,7 @@ __clang_major__
10941096
__cplusplus
10951097
__ghc__
10961098
__ghs__
1099+
__has_attribute
10971100
__hpux__
10981101
__i386
10991102
__i386__

0 commit comments

Comments
 (0)