Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
fc69b71
Regenerate the CRL that expired in September 2025
aidangarske Jul 15, 2026
7d44d07
Refresh the expired certificates embedded in certloadverifybuffer
aidangarske Jul 15, 2026
08b3d0f
Return 0 from tls servers that returned a wolfSSL_write byte count
aidangarske Jul 15, 2026
8abdb10
Send a client certificate from client-tls and client-tls13-resume
aidangarske Jul 15, 2026
feb7e68
Return 0 from certverify instead of WOLFSSL_SUCCESS
aidangarske Jul 15, 2026
69641b7
Give the XTS demo key two different halves
aidangarske Jul 15, 2026
6085bb3
Exit success after ml_dsa prints its parameter table
aidangarske Jul 15, 2026
ccbc775
Report failure from the custom io file client and server
aidangarske Jul 15, 2026
f8edb6a
Latch failures across every ecc-params curve lookup
aidangarske Jul 15, 2026
4923501
Ignore SIGPIPE in the btle fifo transport
aidangarske Jul 15, 2026
283db48
Fix the dtls rw-threads certificate paths
aidangarske Jul 15, 2026
c73ac16
Make runall.sh fail when an example fails
aidangarske Jul 15, 2026
a433f56
Make openssl-verify.sh actually verify and actually fail
aidangarske Jul 15, 2026
2958219
Raise the generate_ssl.sh common name length limit
aidangarske Jul 15, 2026
b6d5d4a
Port the PQ examples to the current wolfSSL API
aidangarske Jul 15, 2026
4cfbf9f
Return 0 from csr_w_ed25519_example and rsa-public-decrypt-app
aidangarske Jul 15, 2026
70847c8
Build the x509_acert openssl example against the right headers
aidangarske Jul 15, 2026
bcbb8ff
Give the examples Makefiles a consistent wolfSSL prefix
aidangarske Jul 15, 2026
aff31ed
Fix the double free and NULL derefs in the custom io cleanup paths
aidangarske Jul 15, 2026
74246e2
Stop forcing the ESP32 examples to include a developer private config
aidangarske Jul 15, 2026
6f8aafb
Add the missing WiFi Kconfig to the DTLS13 station examples
aidangarske Jul 15, 2026
02afb8f
Use XSTRLCPY in client-dtls13 since wolfSSL has no XSTRCPY
aidangarske Jul 15, 2026
5af4c9a
Make the DTLS13 example ctx static so it stops colliding with libnet8…
aidangarske Jul 15, 2026
82e769a
Set SO_REUSEADDR on the tls servers that lacked it
aidangarske Jul 15, 2026
1f364f1
Give puf the wolfSSL sources and stop building the IDF 4.4 only ENC28…
aidangarske Jul 15, 2026
32c97ef
Set SO_REUSEADDR on server-tcp as well
aidangarske Jul 15, 2026
f4fa06f
Exit the can-bus client on EOF and give it real input in CI
aidangarske Jul 15, 2026
310f32b
Re-arm the select timeout each pass in the nonblocking dtls server
aidangarske Jul 15, 2026
19f4c35
Keep the shared memory BIOs alive until both sides are done
aidangarske Jul 15, 2026
e7f4546
Port the ebpf tracers to the libbpf 1.0 perf_buffer__new signature
aidangarske Jul 15, 2026
f89dc27
Clone wolfSSL before make builds its graph so uefi-static builds from…
aidangarske Jul 15, 2026
9c76ee5
Raise wolfcryptjni compileSdk to 32 for the BigInteger API its submod…
aidangarske Jul 15, 2026
6b03e37
Link wolfentropy.o and keep wc_port socket helpers out of the UEFI build
aidangarske Jul 15, 2026
f53c724
Track the wolfSSL dilithium.c to wc_mldsa.c rename and drop a stale j…
aidangarske Jul 15, 2026
1e7aad7
Move uefi-library to the wc_MlDsa API after the wolfSSL dilithium rename
aidangarske Jul 15, 2026
f156997
Declare the launcher activity exported, required from API 31
aidangarske Jul 15, 2026
47123ad
Configure wolfSSL before make in the fullstack setup script
aidangarske Jul 15, 2026
326ea65
Track the wolfSSL io.c to wolfio.c rename in the ndk sample
aidangarske Jul 15, 2026
1024d44
Keep glibc headers out of the freestanding uefi-library build
aidangarske Jul 15, 2026
6950717
Track the wolfSSL mlkem.h rename and give RT1060 the SDK name it sele…
aidangarske Jul 15, 2026
4c0201b
Track the wolfIP struct ll rename and pin wolfIP to its v1.0 release
aidangarske Jul 15, 2026
87e41d7
Use getaddrinfo in the ndk sample since bionic does not declare getho…
aidangarske Jul 15, 2026
81f67ed
Cross compile RT1060 with arm-none-eabi and document the SDK value th…
aidangarske Jul 15, 2026
8df26b0
Enable wolfIP HTTP so its httpd.h actually declares the API the examp…
aidangarske Jul 15, 2026
c9aa289
Define HAVE_NETDB_H so wolfio.c includes the header its getaddrinfo p…
aidangarske Jul 15, 2026
3967343
Link pkcs12.o, which RT1060 enables by default and wolfcrypt test calls
aidangarske Jul 15, 2026
92a6771
Port the ENC28J60 examples to the ESP-IDF 5.x ethernet API
aidangarske Jul 15, 2026
86f4622
Compile dtls.c in the ndk sample, which enables WOLFSSL_DTLS
aidangarske Jul 15, 2026
a07a27a
Define the PHY identifier registers the removed IDF header supplied
aidangarske Jul 15, 2026
484d2b8
Compile kdf.c in the ndk sample for the TLS PRF
aidangarske Jul 15, 2026
0ca3d08
Give RT1060 a current_time so the benchmark stops needing clock_gettime
aidangarske Jul 15, 2026
09db4b2
Port the ENC28J60 PHY to the IDF 5.x autonego_ctrl vtable
aidangarske Jul 15, 2026
1a1403f
Remove the ENC28J60 server's duplicate driver copy that main already …
aidangarske Jul 15, 2026
3181867
Return the DTLS server to accept on close_notify so a resume is heard
aidangarske Jul 16, 2026
5d227ec
Run the C# pq client/server pair under mono
aidangarske Jul 16, 2026
5446b4f
Define WOLFSSL_CERT_REQ so the ndk-gradle app links wolfssljni's X509…
aidangarske Jul 16, 2026
f7ffa21
Refresh the expired client ECC DER certificate
aidangarske Jul 15, 2026
5ff2282
Add CI that builds and runs every example against wolfSSL master and …
aidangarske Jul 16, 2026
7727d39
Sign OCSP staples with a responder intermediate1 actually delegated
aidangarske Jul 16, 2026
3e6bdcc
Report a failing PKCS#11 example instead of always exiting 0
aidangarske Jul 16, 2026
a47e0be
Link the PSA library the README's PSA_LIB_PATH names
aidangarske Jul 16, 2026
4ae58aa
Widen the mynewt pointer prints so they build on a 64 bit native BSP
aidangarske Jul 17, 2026
dca8b49
Test RSA under UEFI with a 2048 bit key so it clears wolfSSL's minimum
aidangarske Jul 17, 2026
d6b3a1d
Left pad the ECDSA r and s so a leading zero cannot shift the signature
aidangarske Jul 17, 2026
8479144
Document the smime and indef flags the pkcs7 examples need
aidangarske Jul 17, 2026
e92b617
Fail ecc-verify when the signature does not verify
aidangarske Jul 17, 2026
0acaded
Fail ecc-sign when a round produces an invalid signature
aidangarske Jul 17, 2026
7f1a1b6
Fail aesgcm-file-encrypt when its sanity test does not pass
aidangarske Jul 17, 2026
2ed4b2e
Check that ML-KEM derives the same shared secret on both sides
aidangarske Jul 17, 2026
66ca531
Fail ecdh_gen_secret when the two sides derive different secrets
aidangarske Jul 20, 2026
e68b98a
Return the DH key agreement error instead of always exiting 0
aidangarske Jul 20, 2026
6c829c3
Retry the fullstack HTTPS probe so a slow sim start does not fail it
aidangarske Jul 20, 2026
26efda6
Confirm the custom-io file transfer succeeded so CI can assert it
aidangarske Jul 20, 2026
ff7d041
Print a success line from the silent file-encrypt and ecc-export exam…
aidangarske Jul 20, 2026
250eebb
Add device-sims job running ATECC608 STSAFE and TROPIC01 sim wolfcryp…
aidangarske Jul 20, 2026
c4c18ed
Extend device-sims to STM32 and PIC32MZ for the full sim fleet
aidangarske Jul 20, 2026
1b49f91
Mount wolfSSL for the STM32 and PIC32MZ sim wolfcrypt runs
aidangarske Jul 20, 2026
997bf02
Accept the zero success return from wolfSSL_CTX_set_max_early_data
aidangarske Jul 20, 2026
5677309
Read the earlydata reply so the client processes the session ticket b…
aidangarske Jul 21, 2026
e3610ae
Read the earlydata reply in the DTLS client so it processes the sessi…
aidangarske Jul 21, 2026
494bf68
Run the tls13 and dtls13 earlydata pairs now that the clients process…
aidangarske Jul 21, 2026
dcbab04
Let expect_fail clear on refs that carry the fix via a fixed_on marker
aidangarske Jul 21, 2026
d63c26b
Retry the PSA TLS 1.3 handshake so an intermittent ECC reject does no…
aidangarske Jul 21, 2026
96f1fad
Retry network fetches across CI so a transient blip does not fail a job
aidangarske Jul 21, 2026
2592dbc
Normalize do_ecc and do_25519 exit codes like do_448 so an error is n…
aidangarske Jul 21, 2026
e06674a
Build and run the merged-in hsm dtls_client example in CI via a dedic…
aidangarske Jul 22, 2026
69db57a
Add a make check target to each applicable example
aidangarske Jul 22, 2026
df4568c
Run only the example and lint smoke set on draft PRs
aidangarske Jul 22, 2026
8c71295
Only run a per-target workflow when its own example dir changes
aidangarske Jul 22, 2026
86f07c7
Assert the real se050 wolfcrypt result instead of an early sub-test line
aidangarske Jul 22, 2026
a32df9f
Size the RSA 2048 key export buffers so the UEFI test does not fail o…
aidangarske Jul 22, 2026
9eb6617
Call the always-present MLDSA context API from the UEFI driver
aidangarske Jul 22, 2026
3f3b0dd
Cross uefi-static and uefi-library with both wolfSSL refs in the matrix
aidangarske Jul 22, 2026
a840e1f
Give each tpm matrix leg a ref-unique results file and artifact
aidangarske Jul 22, 2026
320e6c9
Add a codespell spellcheck pass to the lint job
aidangarske Jul 22, 2026
0601ffd
Run push CI on master only so a PR branch does not double-trigger
aidangarske Jul 22, 2026
5ea19d3
Select valgrind by caller_run_id since event_name is the caller under…
aidangarske Jul 22, 2026
5edb6f1
Make example check targets catch real failures with pipefail exit che…
aidangarske Jul 22, 2026
2024add
Wire the harness to run make check for mode check examples starting w…
aidangarske Jul 22, 2026
4871c14
Migrate the single-entry exec examples to mode check and fold their i…
aidangarske Jul 22, 2026
818d1cd
Fix four make check assertions that misfired under pipefail
aidangarske Jul 22, 2026
c11774d
Give the tpm manifest entry a run step so it asserts output
aidangarske Jul 22, 2026
a629a78
Skip uefi-static in the lint make -n loop so it does not clone
aidangarske Jul 22, 2026
8b20297
Assert the actual verify result in the pkcs7 and rsa-nb checks
aidangarske Jul 22, 2026
3f97419
Return nonzero from pkcs12-create-example on a failed create so the c…
aidangarske Jul 23, 2026
78e628a
Return nonzero from rsa-kg on any key generate or write failure
aidangarske Jul 23, 2026
fd9727c
Assert the static memory checks by exit code instead of a pipefail gr…
aidangarske Jul 23, 2026
b302438
Run pkcs7 signedData stream through make check so it asserts the real…
aidangarske Jul 23, 2026
0b24d8a
Check DER certificates and CRLs in the expiry canary too
aidangarske Jul 23, 2026
4086620
Feed the wolfHSM client its stdin so run_client actually exchanges data
aidangarske Jul 23, 2026
f86683f
Assert every make check by exit code and captured output instead of a…
aidangarske Jul 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/actions/apt-update/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: 'apt update'
description: 'Refresh apt, minus the runner vendor repos we never install from'

runs:
using: composite
steps:
- shell: bash
run: |
set -euo pipefail
# the image ships azure-cli/msprod repos we install nothing from; when they 403 apt fails the whole update
msft=$(grep -rl packages.microsoft.com /etc/apt/sources.list.d/ 2>/dev/null || true)
if [ -n "$msft" ]; then
sudo rm -f $msft
fi
sudo apt-get update -qq
126 changes: 126 additions & 0 deletions .github/actions/setup-wolfssl/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: 'Setup wolfSSL'
description: 'Build a wolfSSL profile, install it to /usr/local, and report its sha256'

inputs:
ref:
description: 'wolfSSL git ref (branch, tag, or SHA)'
required: true
default: 'master'
flags:
description: 'configure flags for this profile'
required: true
cflags:
description: 'extra CFLAGS for this profile'
required: false
default: ''

outputs:
sha256:
description: 'sha256 of the installed libwolfssl.so - the identity gate compares against this'
value: ${{ steps.identity.outputs.sha256 }}
resolved-ref:
description: 'the commit SHA the input ref resolved to'
value: ${{ steps.resolve.outputs.sha }}

runs:
using: composite
steps:
# Resolve to a commit SHA so the cache key is stable across a run. Keying on
# a moving branch name lets two jobs in one nightly build different wolfSSLs.
- name: Resolve wolfSSL ref
id: resolve
shell: bash
run: |
ref='${{ inputs.ref }}'
if [[ "$ref" =~ ^[0-9a-f]{40}$ ]]; then
sha="$ref"
else
# An annotated tag resolves to the tag object, not the commit, so ask
# for the peeled ref first and fall back for branches.
sha=$(git ls-remote https://github.com/wolfSSL/wolfssl.git \
"refs/tags/$ref^{}" | cut -f1)
[ -n "$sha" ] || sha=$(git ls-remote \
https://github.com/wolfSSL/wolfssl.git "$ref" | head -n1 | cut -f1)
fi
[ -n "$sha" ] || { echo "could not resolve wolfSSL ref '$ref'"; exit 1; }
echo "sha=$sha" >> "$GITHUB_OUTPUT"
echo "resolved '$ref' -> $sha"

- name: Hash profile config
id: cfg
shell: bash
run: |
printf '%s|%s' '${{ inputs.flags }}' '${{ inputs.cflags }}' \
| sha256sum | cut -c1-16 | sed 's/^/hash=/' >> "$GITHUB_OUTPUT"

# Key on the image, not runner.os: a binary built against a newer glibc must
# not be restored onto an older runner image. ImageOS is set by the hosted
# runner; fall back so a self-hosted or container runner still gets a key.
- name: Compute cache key
id: key
shell: bash
run: |
img="${ImageOS:-$(. /etc/os-release 2>/dev/null && echo "$ID$VERSION_ID" || echo unknown)}"
echo "key=wolfssl-${img}-${{ steps.resolve.outputs.sha }}-${{ steps.cfg.outputs.hash }}-v1" >> "$GITHUB_OUTPUT"
echo "cache key: wolfssl-${img}-${{ steps.resolve.outputs.sha }}-${{ steps.cfg.outputs.hash }}-v1"

- name: Restore wolfSSL install
id: cache
uses: actions/cache@v5
with:
path: ~/wolfssl-install
key: ${{ steps.key.outputs.key }}

- name: Build wolfSSL
if: steps.cache.outputs.cache-hit != 'true'
shell: bash
run: |
set -euo pipefail
rm -rf /tmp/wolfssl && mkdir -p /tmp/wolfssl
cd /tmp/wolfssl
git init -q
git fetch -q --depth 1 https://github.com/wolfSSL/wolfssl.git ${{ steps.resolve.outputs.sha }}
git checkout -q FETCH_HEAD
./autogen.sh
# We need the library, not wolfSSL's own examples and test suite. Those
# also fail to build under some profiles (the `tls` profile died on
# tests/unit.test), and skipping them cuts every build substantially.
./configure --prefix="$HOME/wolfssl-install" \
--disable-examples --disable-crypttests \
${{ inputs.flags }} \
${{ inputs.cflags && format('CFLAGS="{0}"', inputs.cflags) || '' }}
make -j"$(nproc)"
make install

# Every README tells users to build against a wolfSSL at /usr/local, and 5
# host-tier Makefiles have no -I/-L at all. Installing there means CI runs the
# exact command sequence the docs document, with no overrides.
- name: Install to /usr/local
shell: bash
run: |
set -euo pipefail
sudo cp -a "$HOME/wolfssl-install/." /usr/local/
sudo ldconfig

- name: Report cache outcome
shell: bash
run: |
if [ '${{ steps.cache.outputs.cache-hit }}' = 'true' ]; then
echo "wolfSSL restored from cache (no rebuild)"
else
echo "wolfSSL cache MISS -- built from source and saved for later jobs"
fi

- name: Record wolfSSL identity
id: identity
shell: bash
run: |
set -euo pipefail
lib=$(ls /usr/local/lib/libwolfssl.so.*.*.* 2>/dev/null | head -n1 \
|| readlink -f /usr/local/lib/libwolfssl.so)
[ -f "$lib" ] || { echo "no libwolfssl.so installed under /usr/local/lib"; exit 1; }
sha=$(sha256sum "$lib" | cut -d' ' -f1)
echo "sha256=$sha" >> "$GITHUB_OUTPUT"
echo "installed $lib"
echo "sha256 $sha"
/usr/local/bin/wolfssl-config --version 2>/dev/null || true
Loading
Loading