diff --git a/.github/workflows/hostap-vm.yml b/.github/workflows/hostap-vm.yml index 254f34d835..2d97f9efcb 100644 --- a/.github/workflows/hostap-vm.yml +++ b/.github/workflows/hostap-vm.yml @@ -13,7 +13,7 @@ concurrency: # END OF COMMON SECTION env: - LINUX_REF: v6.6 + LINUX_REF: v6.12 jobs: build_wolfssl: @@ -91,6 +91,7 @@ jobs: with: repository: torvalds/linux path: linux + ref: ${{ env.LINUX_REF }} - name: Compile linux if: steps.cache.outputs.cache-hit != 'true' @@ -141,7 +142,6 @@ jobs: build_id: hostap-vm-build2 } name: hwsim test - # For openssl 1.1 if: github.repository_owner == 'wolfssl' runs-on: ubuntu-22.04 # This should be a safe limit for the tests to run. diff --git a/.github/workflows/mbedtls.sh b/.github/workflows/mbedtls.sh new file mode 100644 index 0000000000..d199fd2e3d --- /dev/null +++ b/.github/workflows/mbedtls.sh @@ -0,0 +1,79 @@ +#!/usr/bin/env bash + +set -e +set -x + +# Basic TLS test +./mbedtls/build/programs/ssl/ssl_server2 > /tmp/server.log 2>&1 & +SERVER_PID=$! +sleep 0.1 +./mbedtls/build/programs/ssl/ssl_client2 # Confirm working with mbed +env -C wolfssl ./examples/client/client -p 4433 -g \ + -A ../mbedtls/framework/data_files/test-ca-sha256.crt \ + -c ../mbedtls/framework/data_files/cli-rsa-sha256.crt \ + -k ../mbedtls/framework/data_files/cli-rsa-sha256.key.pem +kill $SERVER_PID +sleep 0.1 +env -C wolfssl ./examples/server/server -p 4433 -i -g \ + -A ../mbedtls/framework/data_files/test-ca-sha256.crt \ + -c ../mbedtls/framework/data_files/server2-sha256.crt \ + -k ../mbedtls/framework/data_files/server2.key.pem > /tmp/server.log 2>&1 & +SERVER_PID=$! +sleep 0.1 +./mbedtls/build/programs/ssl/ssl_client2 +env -C wolfssl ./examples/client/client -p 4433 -g \ + -A ../mbedtls/framework/data_files/test-ca-sha256.crt \ + -c ../mbedtls/framework/data_files/cli-rsa-sha256.crt \ + -k ../mbedtls/framework/data_files/cli-rsa-sha256.key.pem +kill $SERVER_PID +sleep 0.1 + +# Basic DTLS test +./mbedtls/build/programs/ssl/ssl_server2 dtls=1 > /tmp/server.log 2>&1 & +SERVER_PID=$! +sleep 0.1 +./mbedtls/build/programs/ssl/ssl_client2 dtls=1 # Confirm working with mbed +env -C wolfssl ./examples/client/client -p 4433 -g -u \ + -A ../mbedtls/framework/data_files/test-ca-sha256.crt \ + -c ../mbedtls/framework/data_files/cli-rsa-sha256.crt \ + -k ../mbedtls/framework/data_files/cli-rsa-sha256.key.pem +kill $SERVER_PID +sleep 0.1 +env -C wolfssl ./examples/server/server -p 4433 -i -g -u \ + -A ../mbedtls/framework/data_files/test-ca-sha256.crt \ + -c ../mbedtls/framework/data_files/server2-sha256.crt \ + -k ../mbedtls/framework/data_files/server2.key.pem > /tmp/server.log 2>&1 & +SERVER_PID=$! +sleep 0.1 +env -C wolfssl ./examples/client/client -p 4433 -g -u \ + -A ../mbedtls/framework/data_files/test-ca-sha256.crt \ + -c ../mbedtls/framework/data_files/cli-rsa-sha256.crt \ + -k ../mbedtls/framework/data_files/cli-rsa-sha256.key.pem +./mbedtls/build/programs/ssl/ssl_client2 dtls=1 +kill $SERVER_PID +sleep 0.1 + +# DTLS 1.2 CID test +./mbedtls/build/programs/ssl/ssl_server2 dtls=1 cid=1 cid_val=121212 > /tmp/server.log 2>&1 & +SERVER_PID=$! +sleep 0.1 +./mbedtls/build/programs/ssl/ssl_client2 dtls=1 cid=1 cid_val=232323 # Confirm working with mbed +env -C wolfssl ./examples/client/client -p 4433 -g -u --cid 232323 \ + -A ../mbedtls/framework/data_files/test-ca-sha256.crt \ + -c ../mbedtls/framework/data_files/cli-rsa-sha256.crt \ + -k ../mbedtls/framework/data_files/cli-rsa-sha256.key.pem +kill $SERVER_PID +sleep 0.1 +env -C wolfssl ./examples/server/server -p 4433 -i -g -u --cid 121212 \ + -A ../mbedtls/framework/data_files/test-ca-sha256.crt \ + -c ../mbedtls/framework/data_files/server2-sha256.crt \ + -k ../mbedtls/framework/data_files/server2.key.pem > /tmp/server.log 2>&1 & +SERVER_PID=$! +sleep 0.1 +./mbedtls/build/programs/ssl/ssl_client2 dtls=1 cid_val=232323 +env -C wolfssl ./examples/client/client -p 4433 -g -u --cid 232323 \ + -A ../mbedtls/framework/data_files/test-ca-sha256.crt \ + -c ../mbedtls/framework/data_files/cli-rsa-sha256.crt \ + -k ../mbedtls/framework/data_files/cli-rsa-sha256.key.pem +kill $SERVER_PID +sleep 0.1 diff --git a/.github/workflows/mbedtls.yml b/.github/workflows/mbedtls.yml new file mode 100644 index 0000000000..f9830fcf6e --- /dev/null +++ b/.github/workflows/mbedtls.yml @@ -0,0 +1,86 @@ +name: mbedtls interop Tests + +# START OF COMMON SECTION +on: + push: + branches: [ 'master', 'main', 'release/**' ] + pull_request: + branches: [ '*' ] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +# END OF COMMON SECTION + +env: + MBED_REF: v3.6.2 + +jobs: + build_mbedtls: + name: Build mbedtls + if: github.repository_owner == 'wolfssl' + runs-on: ubuntu-latest + # This should be a safe limit for the tests to run. + timeout-minutes: 10 + steps: + - name: Checking if we have mbed in cache + uses: actions/cache@v4 + id: cache + with: + path: mbedtls + key: mbedtls-${{ env.MBED_REF }} + lookup-only: true + + - name: Checkout mbedtls + if: steps.cache.outputs.cache-hit != 'true' + uses: actions/checkout@v4 + with: + repository: Mbed-TLS/mbedtls + ref: ${{ env.MBED_REF }} + path: mbedtls + + - name: Compile mbedtls + if: steps.cache.outputs.cache-hit != 'true' + working-directory: mbedtls + run: | + git submodule update --init + mkdir build + cd build + cmake .. + make -j + # convert key to pem format + openssl pkey -in framework/data_files/cli-rsa-sha256.key.der -text > framework/data_files/cli-rsa-sha256.key.pem + openssl pkey -in framework/data_files/server2.key.der -text > framework/data_files/server2.key.pem + + mbedtls_test: + name: Test interop with mbedtls + runs-on: ubuntu-latest + needs: build_mbedtls + timeout-minutes: 10 + if: github.repository_owner == 'wolfssl' + steps: + - name: Disable IPv6 (IMPORTANT, OTHERWISE DTLS MBEDTLS CLIENT WON'T CONNECT) + run: echo 1 | sudo tee /proc/sys/net/ipv6/conf/lo/disable_ipv6 + + - name: Checking if we have mbed in cache + uses: actions/cache/restore@v4 + id: cache + with: + path: mbedtls + key: mbedtls-${{ env.MBED_REF }} + fail-on-cache-miss: true + + - name: Build wolfSSL + uses: wolfSSL/actions-build-autotools-project@v1 + with: + path: wolfssl + configure: --enable-dtls --enable-dtlscid + install: false + check: false + + - name: Test interop + run: bash wolfssl/.github/workflows/mbedtls.sh + + - name: print server logs + if: ${{ failure() }} + run: cat /tmp/server.log diff --git a/configure.ac b/configure.ac index 7bd4b170df..c780ad028b 100644 --- a/configure.ac +++ b/configure.ac @@ -5044,10 +5044,6 @@ AC_ARG_ENABLE([dtlscid], ) if test "x$ENABLED_DTLS_CID" = "xyes" then - if test "x$ENABLED_DTLS13" != "xyes" - then - AC_MSG_ERROR([You need to enable DTLSv1.3 to use DTLS ConnectionID]) - fi AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_DTLS_CID" fi diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index e8337352c4..8624f9418b 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -4166,10 +4166,6 @@ extern void uITRON4_free(void *p) ; #error "DTLS v1.3 requires both WOLFSSL_TLS13 and WOLFSSL_DTLS" #endif -#if defined(WOLFSSL_DTLS_CID) && !defined(WOLFSSL_DTLS13) -#error "ConnectionID is supported for DTLSv1.3 only" -#endif - #if defined(WOLFSSL_QUIC) && defined(WOLFSSL_CALLBACKS) #error WOLFSSL_QUIC is incompatible with WOLFSSL_CALLBACKS. #endif