Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
fc3ed2d
windows setup
julek-wolfssl Mar 24, 2026
53984d1
Rewrite tests into python scripts for easier portability
julek-wolfssl Mar 25, 2026
2430b87
Run tests in windows CI
julek-wolfssl Mar 31, 2026
f0d0bd5
Undef CRL_REASON_* because it clashes with other definitions
julek-wolfssl Mar 31, 2026
e57c65d
Fix test failures
julek-wolfssl Mar 31, 2026
39df6bc
Consolidate CI workflows and update action versions
julek-wolfssl Apr 1, 2026
b677c08
Clean up Windows CI workflow and VS project files
julek-wolfssl Apr 1, 2026
84c05b5
Use vswhere to detect PlatformToolset
julek-wolfssl Apr 1, 2026
94bfe32
Fix test failures
julek-wolfssl Apr 1, 2026
8a1fa88
Address code review
julek-wolfssl Apr 1, 2026
662ebee
Address PR review comments
julek-wolfssl Apr 2, 2026
2b34469
Exit 77 for skipped Python tests so automake reports SKIP
julek-wolfssl Apr 2, 2026
6c05619
Fix Camellia key size in encrypt/decrypt
julek-wolfssl Apr 2, 2026
6aad8ec
Address second round of review comments
julek-wolfssl Apr 2, 2026
7662310
Defer SNI insertion and validate decrypt input size
julek-wolfssl Apr 2, 2026
bdc4fbd
Fix client test to check for certificate instead of exit code
julek-wolfssl Apr 2, 2026
f0d1eb2
Enable x509 ca and req tests on Windows
julek-wolfssl Apr 3, 2026
8596578
Enable AES-CTR, Camellia, and IPv6 SAN tests on Windows
julek-wolfssl Apr 3, 2026
a0951de
Enable dilithium, SHA-3, and SHAKE for Windows builds
julek-wolfssl Apr 3, 2026
c5a5ad6
Recognize Windows drive-letter paths as absolute, enable more tests
julek-wolfssl Apr 7, 2026
00ff2e5
Exclude abstract OCSP base class from test discovery
julek-wolfssl Apr 7, 2026
bd57311
Fix ECC genkey default curve and sign test data size
julek-wolfssl Apr 7, 2026
f16c330
Update minimum required Python version to 3.6
julek-wolfssl Apr 7, 2026
0e45db9
Address code review comments
julek-wolfssl Apr 8, 2026
11458cf
Address third round of review comments
julek-wolfssl Apr 13, 2026
ce6fdb2
Port stack buffer overflow regression tests to python
julek-wolfssl Apr 13, 2026
d8255e2
Guard Windows absolute-path check with explicit length check
julek-wolfssl Apr 14, 2026
f0bcf44
Implement tests added in a3fe95
julek-wolfssl Apr 16, 2026
840211a
Fix make distcheck for Python test suite
julek-wolfssl Apr 16, 2026
8295068
Port tests from 25a6aa and accept -output case-insensitively
julek-wolfssl Apr 16, 2026
a943b30
Update src/x509/clu_x509_sign.c
julek-wolfssl Apr 16, 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
8 changes: 8 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Ensure cert/key files always use LF line endings so that hashes
# remain consistent across platforms.
*.pem eol=lf
*.cnf eol=lf
*.cfg eol=lf

# DER files are binary and must never be transformed.
*.der binary
75 changes: 75 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: CI

on:
push:
branches: ['*']
pull_request:
branches: ['*']

jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
config:
- '--enable-wolfclu'
- '--enable-wolfclu --enable-crl --enable-dsa --enable-pkcs7'
- '--enable-wolfclu --enable-smallstack'
- '--enable-wolfclu --enable-experimental --enable-dilithium'
- '--enable-wolfclu --enable-smallstack --enable-experimental --enable-dilithium'
- '--enable-all'
sanitize: ['', 'CC="cc -fsanitize=address"']

name: ${{ matrix.os }} ${{ matrix.sanitize && 'ASAN' || '' }} (${{ matrix.config }})
runs-on: ${{ matrix.os }}
timeout-minutes: 10

steps:
- uses: actions/checkout@v4
with:
path: wolfclu

- uses: actions/checkout@v4
with:
repository: wolfssl/wolfssl
ref: master
path: wolfssl

- name: Install dependencies (Ubuntu)
if: runner.os == 'Linux'
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -y openssl

- name: Install dependencies (macOS)
if: runner.os == 'macOS'
run: brew install automake libtool

- name: Build and install wolfSSL
working-directory: ./wolfssl
run: |
./autogen.sh
./configure ${{ matrix.config }} ${{ matrix.sanitize }} --prefix=$GITHUB_WORKSPACE/build-dir
make -j
make install

- name: Build wolfCLU
working-directory: ./wolfclu
run: |
./autogen.sh
./configure ${{ matrix.sanitize }} --with-wolfssl=$GITHUB_WORKSPACE/build-dir
make -j

- name: Run tests
working-directory: ./wolfclu
env:
LD_LIBRARY_PATH: ${{ github.workspace }}/build-dir/lib
DYLD_LIBRARY_PATH: ${{ github.workspace }}/build-dir/lib
run: make check

- name: Display log
if: always()
working-directory: ./wolfclu
run: cat test-suite.log || true
91 changes: 0 additions & 91 deletions .github/workflows/fsanitize-check.yml

This file was deleted.

49 changes: 0 additions & 49 deletions .github/workflows/macos-check.yml

This file was deleted.

52 changes: 0 additions & 52 deletions .github/workflows/ubuntu-check.yml

This file was deleted.

95 changes: 44 additions & 51 deletions .github/workflows/windows-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,63 +2,56 @@ name: Windows Build Test

on:
push:
branches: [ '*' ]
branches: ['*']
pull_request:
branches: [ '*' ]

env:
# Path to the solution file relative to the root of the project.
WOLFSSL_SOLUTION_FILE_PATH: wolfssl/wolfssl64.sln
SOLUTION_FILE_PATH: wolfclu.sln
USER_SETTINGS_H_NEW: wolfclu/ide/winvs/user_settings.h
USER_SETTINGS_H: wolfssl/IDE/WIN/user_settings.h
INCLUDE_DIR: wolfclu

# Configuration type to build.
# You can convert this to a build matrix if you need coverage of multiple configuration types.
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
WOLFSSL_BUILD_CONFIGURATION: Release
WOLFCLU_BUILD_CONFIGURATION: Release
BUILD_PLATFORM: x64
TARGET_PLATFORM: 10
branches: ['*']

jobs:
build:
runs-on: windows-latest
timeout-minutes: 10

env:
BUILD_PLATFORM: x64
BUILD_CONFIGURATION: Release

steps:
- uses: actions/checkout@v2
with:
repository: wolfssl/wolfssl
path: wolfssl

- uses: actions/checkout@master
with:
path: wolfclu

- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v1
- uses: actions/checkout@v4
with:
repository: wolfssl/wolfssl
ref: master
path: wolfssl

- uses: actions/checkout@v4
with:
path: wolfclu

- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v2

- name: Replace user_settings.h
run: cp wolfclu/ide/winvs/user_settings.h wolfssl/IDE/WIN/user_settings.h

- name: Detect platform toolset
id: toolset
run: |
$major = (vswhere -latest -property installationVersion).Split('.')[0]
$toolsets = @{ "16" = "v142"; "17" = "v143"; "18" = "v145" }
$ts = $toolsets[$major]
if (-not $ts) {
Write-Error "Unsupported Visual Studio major version '$major'."
exit 1
}
echo "value=$ts" >> $env:GITHUB_OUTPUT

- name: Build wolfSSL
run: msbuild /m /p:PlatformToolset=${{ steps.toolset.outputs.value }} /p:Platform=${{ env.BUILD_PLATFORM }} /p:Configuration=${{ env.BUILD_CONFIGURATION }} wolfssl/wolfssl64.sln
Comment thread
julek-wolfssl marked this conversation as resolved.

- name: Build wolfCLU
working-directory: wolfclu
run: msbuild /m /p:Platform=${{ env.BUILD_PLATFORM }} /p:Configuration=${{ env.BUILD_CONFIGURATION }} wolfclu.sln

- name: Restore wolfSSL NuGet packages
working-directory: ${{env.GITHUB_WORKSPACE}}
run: nuget restore ${{env.WOLFSSL_SOLUTION_FILE_PATH}}

- name: replace with wolfCLU user_settings.h
working-directory: ${{env.GITHUB_WORKSPACE}}
run: cp ${{env.USER_SETTINGS_H_NEW}} ${{env.USER_SETTINGS_H}}

- name: Build wolfssl
working-directory: ${{env.GITHUB_WORKSPACE}}
# Add additional options to the MSBuild command line here (like platform or verbosity level).
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
run: msbuild /m /p:PlatformToolset=v142 /p:Platform=${{env.BUILD_PLATFORM}} /p:WindowsTargetPlatformVersion=${{env.TARGET_PLATFORM}} /p:Configuration=${{env.WOLFSSL_BUILD_CONFIGURATION}} ${{env.WOLFSSL_SOLUTION_FILE_PATH}}
- name: Run tests
working-directory: wolfclu
run: python tests/run_tests.py

- name: Restore NuGet packages
working-directory: ${{env.GITHUB_WORKSPACE}}wolfclu
run: nuget restore ${{env.SOLUTION_FILE_PATH}}

- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}wolfclu
# Add additional options to the MSBuild command line here (like platform or verbosity level).
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
run: msbuild /m /p:PlatformToolset=v142 /p:Platform=${{env.BUILD_PLATFORM}} /p:WindowsTargetPlatformVersion=${{env.TARGET_PLATFORM}} /p:Configuration=${{env.WOLFCLU_BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,8 @@ src/stamp-h1
.project
.settings/
AGENTS.md
Win32/
x64/
.vs/
__pycache__/
CLAUDE.md
Loading
Loading