![tmael](/assets/img/avatar_default.png)
* Add TLSv1.3 stateful support Fix internal and external session cache * session cache fixes * Refactor - implement wolfSSL_CTX_flush_sessions - use wolfSSL_CTX_flush_sessions to make test_wolfSSL_CTX_add_session_ext deterministic - add dtls to test_wolfSSL_CTX_add_session_ext - DoClientTicket_ex does not modify ssl object - only call session remove callback on: - timeout - session is being overwritten/removed from the cache * Session fixes - restore bogus ID on session duplicate - don't evict on overwrite - use memmove instead on memcpy as `ssl->session == session` is possible - ignore ClientSession parameter in AddSessionToCache on NO_SESSION_CACHE_REF - use sessionID when altSessionID not present * Session fixes - DoClientTicketFinalize: always copy in the ID as teh altSessionID - don't overwrite ex_data when overwriting cacheSession and cacheSession owns it * Callback wants to retain a copy * wolfSSL_GetSessionClient: ssl->ctx->get_sess_cb does not apply here * test_wolfSSL_CTX_add_session_ext gate expected results on WOLFSSL_DTLS_NO_HVR_ON_RESUME * TlsSessionIdIsValid: copy return can't be ignored * Silence unused parameter * test_wolfSSL_CTX_add_session_ext: handle async case * Gate wolfSSL_SSL_CTX_remove_session on NO_SESSION_CACHE * ssl.c: style fixes * Add twcase_get_sessionCb_cleanup to free external cache * Remove hard tab * Correct build error in wolfSSL_CTX_flush_sessions * Jenkins fixes: - altSessionID only available with WOLFSSL_TICKET_HAVE_ID - slim out psk_sess_free_cb_ctx * Stateful dtls case has 2 accesses. Stateless just one. * Add version numbering to hostap logs * Import internal.h for test_wolfSSL_SESSION_get_ex_new_index * wolfSSL_SetSession: don't check SslSessionCacheOff for session setting * wolfSSL_SetSession: fully set expired session for OpenSSL compatibility * wolfSSL_SetSession: check if setting same object * AddSession: always populate the session object to allow re-use * Add logging to wolfSSL_NewSession and wolfSSL_FreeSession * Always setup session object * Check if session has been setup before setting it * Print errors in async test * Make SetupSession available outside NO_SESSION_CACHE * Review comments * Fix ticBuf leak and TlsSessionIdIsValid logic * Fix unmatched curly brackets * TlsSessionIdIsValid: always need to check copy var * TlsResumptionIsValid: set resume to FALSE default * wolfSSL_SetSession: remove now variable since only used in one place * Move internalCacheLookupOff into HAVE_EXT_CACHE block --------- Co-authored-by: Juliusz Sosinowicz <juliusz@wolfssl.com>
123 lines
4.0 KiB
YAML
123 lines
4.0 KiB
YAML
name: Ubuntu-Macos-Windows Tests
|
|
|
|
on:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
make_check:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest, macos-latest ]
|
|
config: [
|
|
# Add new configs here
|
|
'',
|
|
'--enable-all --enable-asn=template',
|
|
'--enable-all --enable-asn=original',
|
|
'--enable-harden-tls',
|
|
'--enable-tls13 --enable-session-ticket --enable-dtls --enable-dtls13
|
|
--enable-opensslextra --enable-sessioncerts
|
|
CPPFLAGS=''-DWOLFSSL_DTLS_NO_HVR_ON_RESUME -DHAVE_EXT_CACHE
|
|
-DWOLFSSL_TICKET_HAVE_ID -DHAVE_EX_DATA -DSESSION_CACHE_DYNAMIC_MEM'' ',
|
|
]
|
|
name: make check
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Build and test wolfSSL
|
|
uses: wolfSSL/actions-build-autotools-project@v1
|
|
with:
|
|
configure: ${{ matrix.config }}
|
|
check: true
|
|
|
|
make_user_settings:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest, macos-latest ]
|
|
user-settings: [
|
|
# Add new user_settings.h here
|
|
'examples/configs/user_settings_all.h',
|
|
]
|
|
name: make user_setting.h
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Build and test wolfSSL
|
|
uses: wolfSSL/actions-build-autotools-project@v1
|
|
with:
|
|
configure: --enable-usersettings
|
|
check: true
|
|
user-settings: ${{ matrix.user-settings }}
|
|
|
|
make_user_settings_testwolfcrypt:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest, macos-latest ]
|
|
user-settings: [
|
|
# Add new user_settings.h here
|
|
'examples/configs/user_settings_min_ecc.h',
|
|
'examples/configs/user_settings_wolfboot_keytools.h',
|
|
'examples/configs/user_settings_wolftpm.h',
|
|
]
|
|
name: make user_setting.h (testwolfcrypt only)
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Build and test wolfSSL
|
|
uses: wolfSSL/actions-build-autotools-project@v1
|
|
with:
|
|
configure: --enable-usersettings --disable-examples
|
|
check: false
|
|
user-settings: ${{ matrix.user-settings }}
|
|
|
|
- name: Run wolfcrypt/test/testwolfcrypt
|
|
run: ./wolfcrypt/test/testwolfcrypt
|
|
|
|
# Has to be dedicated function due to the sed call
|
|
make_user_all:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest, macos-latest ]
|
|
name: make user_setting.h (with sed)
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- if: ${{ matrix.os == 'macos-latest' }}
|
|
run: brew install automake libtool
|
|
- run: ./autogen.sh
|
|
- name: user_settings_all.h with compatibility layer
|
|
run: |
|
|
cp ./examples/configs/user_settings_all.h user_settings.h
|
|
sed -i -e "s/if 0/if 1/" user_settings.h
|
|
./configure --enable-usersettings
|
|
make
|
|
make check
|
|
|
|
windows_build:
|
|
name: Windows Build Test
|
|
runs-on: windows-latest
|
|
env:
|
|
# Path to the solution file relative to the root of the project.
|
|
SOLUTION_FILE_PATH: wolfssl64.sln
|
|
|
|
# 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
|
|
BUILD_CONFIGURATION: Release
|
|
BUILD_PLATFORM: x64
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Add MSBuild to PATH
|
|
uses: microsoft/setup-msbuild@v1
|
|
|
|
- name: Restore NuGet packages
|
|
working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
run: nuget restore ${{env.SOLUTION_FILE_PATH}}
|
|
|
|
- name: Build
|
|
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:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
|