Skip to content

bump tested ssl libraries #35

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 69 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
3208da2
upload tar.gz for new releases
prince-chrismc Dec 29, 2023
7bc6f0b
revert name to manually trigger it
prince-chrismc Jan 3, 2024
42c3206
write to separate path
prince-chrismc Jan 3, 2024
5400dfb
Update and rename nuget.yml to release.yml
prince-chrismc Jan 3, 2024
fdebd7d
bump tested ssl libraries
prince-chrismc Jan 3, 2024
3d2ed20
Merge pull request from prince-chrismc/release-zip
prince-chrismc Jan 11, 2024
1e12d24
disable nuget for testing
prince-chrismc Jan 11, 2024
1ea489f
add a zip as well
prince-chrismc Jan 11, 2024
2a9d6d4
Documentation Refresh (#323)
prince-chrismc Jan 10, 2024
7e19254
Merge branch 'master' into bump-ssl
prince-chrismc Jan 11, 2024
0c31350
error handling
prince-chrismc Jan 11, 2024
c4d61e0
Update release.yml
prince-chrismc Jan 11, 2024
1c64b0e
simple conditional
prince-chrismc Jan 16, 2024
a30c0f7
Update release.yml
prince-chrismc Jan 16, 2024
e679f33
back to basics
prince-chrismc Jan 16, 2024
337de47
exclude .git folder
prince-chrismc Jan 16, 2024
dd748ec
fix order for args
prince-chrismc Jan 17, 2024
3ed0b79
protect glob
prince-chrismc Jan 17, 2024
539850a
fix order
prince-chrismc Jan 17, 2024
c5017b2
remove remove testing code
prince-chrismc Jan 17, 2024
6e9a24f
Merge branch 'master' into master
prince-chrismc Jan 17, 2024
723a2d2
compiler openssl on windows
prince-chrismc Jan 17, 2024
f69c9d7
Merge branch 'master' into bump-ssl
prince-chrismc Jan 17, 2024
e1dc9e5
fix string compare
prince-chrismc Jan 17, 2024
6587501
fix typo
prince-chrismc Jan 17, 2024
0d125d5
fix order
prince-chrismc Jan 17, 2024
cba6d37
download with powershell
prince-chrismc Jan 17, 2024
85e9fa6
write file to the correct directory
prince-chrismc Jan 17, 2024
dcb0a11
Update action.yml
prince-chrismc Jan 17, 2024
f37e3a5
Update action.yml
prince-chrismc Jan 17, 2024
b6a1ebd
Update action.yml
prince-chrismc Jan 17, 2024
c092d7d
Merge branch 'master' into bump-ssl
prince-chrismc Jan 24, 2024
2025457
get more info from msbuild
prince-chrismc Jan 24, 2024
3e3f8b9
install less on windows
prince-chrismc Jan 24, 2024
a1f37d1
cache openssl + non default install location
prince-chrismc Jan 24, 2024
79f16cb
delete github provided openssl
prince-chrismc Jan 24, 2024
3a87a2d
add missing cd
prince-chrismc Jan 24, 2024
a09bd38
do not build openssl tests
prince-chrismc Jan 24, 2024
124fe77
back to nmake install
prince-chrismc Jan 25, 2024
e3071a2
Merge branch 'master' into bump-ssl
prince-chrismc Apr 24, 2024
8873152
run cross-platform with default installed SSL libraries
prince-chrismc Apr 27, 2024
76735b9
rafctor manual install to split OS specific instrcutions
prince-chrismc Apr 27, 2024
7fd62c7
Revert "rafctor manual install to split OS specific instrcutions"
prince-chrismc Apr 28, 2024
5766cfc
drop no-tests since it's nuot supported by 1.1.0
prince-chrismc Apr 28, 2024
af1ba9f
test on windows as well
prince-chrismc Apr 28, 2024
f4b77db
Update ssl.yml
prince-chrismc Apr 28, 2024
3da0337
adapt for windows
prince-chrismc Apr 28, 2024
a30a51f
run windows install in cmd prompt
prince-chrismc Apr 28, 2024
2746610
test more SSL variations
prince-chrismc Apr 28, 2024
c7ca3fe
bump libressl to latest
prince-chrismc Apr 28, 2024
029d691
enable no-tests for openssl>3
prince-chrismc Apr 28, 2024
d6649b1
ux and dont push labels twice
prince-chrismc Apr 28, 2024
071d01f
old openssl had separate makefile for windows
prince-chrismc Apr 28, 2024
d69cded
dont use runner name for cache
prince-chrismc Apr 28, 2024
c1ae547
debug print
prince-chrismc Apr 28, 2024
e4948d2
version checks are too hard
prince-chrismc Apr 29, 2024
994427f
bump openssl
prince-chrismc May 12, 2024
f8baef5
Update ssl.yml
prince-chrismc May 12, 2024
2126bd6
trying different syntax for exclude to see if it's valid
prince-chrismc May 12, 2024
b673082
trying to use a JSON map for name/tag values of openssl
prince-chrismc May 12, 2024
a9df397
remove space since that makes editor happy
prince-chrismc May 12, 2024
e8d257d
dont download on cache hit + bump action
prince-chrismc May 12, 2024
9a51feb
Merge branch 'master' into bump-ssl
prince-chrismc Jun 19, 2024
377cd64
Merge branch 'master' into bump-ssl
prince-chrismc Jul 29, 2024
a9522c6
install openssl sets the env correctly
prince-chrismc Aug 9, 2024
40a6211
rm windows specific test
prince-chrismc Aug 9, 2024
c0174fc
output failures
prince-chrismc Aug 9, 2024
e138fbf
Merge branch 'master' into bump-ssl
prince-chrismc Oct 9, 2024
a05fb16
output failures
prince-chrismc Oct 9, 2024
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
2 changes: 1 addition & 1 deletion .github/actions/install/cmake/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ runs:
uses: actions/cache@v3
with:
path: cmake-${{ inputs.version }}
key: ${{ runner.name }}-${{ runner.os }}-${{ runner.arch }}-${{ job.container.id }}-cmake-${{ inputs.version }}
key: ${{ runner.os }}-${{ runner.arch }}-${{ job.container.id }}-cmake-${{ inputs.version }}
- name: Build cmake
if: steps.cache-cmake.outputs.cache-hit != 'true'
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/install/libressl/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ inputs:
version:
description: The desired LibreSSL version to install
required: false
default: "3.3.0"
default: "3.5.4"
runs:
using: composite
steps:
Expand Down
55 changes: 47 additions & 8 deletions .github/actions/install/openssl/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,57 @@ inputs:
version:
description: The desired OpenSSL version to install
required: false
default: "openssl-3.0.0"
default: "openssl-3.3.0"
runs:
using: composite
steps:
- run: |
cd /tmp
- name: Cache CMake
id: cache-openssl
uses: actions/cache@v4
with:
path: openssl-${{ inputs.version }}
key: ${{ runner.os }}-${{ runner.arch }}-${{ job.container.id }}-openssl-${{ inputs.version }}

- uses: ilammy/setup-nasm@v1
- if: runner.os == 'Windows' && steps.cache-openssl.outputs.cache-hit != 'true'
shell: powershell
run: |
Invoke-WebRequest -OutFile ${{ inputs.version }}.tar.gz -Uri https://github.com/openssl/openssl/archive/refs/tags/${{ inputs.version }}.tar.gz
- if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1
- if: runner.os == 'Windows' && steps.cache-openssl.outputs.cache-hit != 'true'
shell: cmd
run: |
tar -zxf ${{ inputs.version }}.tar.gz
cd openssl-${{ inputs.version }}
perl Configure VC-WIN64A --prefix=${{ github.workspace }}\openssl
nmake
- if: runner.os == 'Windows'
shell: cmd
run: |
cd openssl-${{ inputs.version }}
nmake install
echo "OPENSSL_ROOT_DIR=${{ github.workspace }}/openssl" >> "$GITHUB_ENV"
echo "OpenSSL_ROOT=${{ github.workspace }}/openssl" >> "$GITHUB_ENV"

- if: runner.os == 'Linux' && steps.cache-openssl.outputs.cache-hit != 'true'
shell: bash
run: |
wget https://github.com/openssl/openssl/archive/refs/tags/${{ inputs.version }}.tar.gz
tar -zxf /tmp/${{ inputs.version }}.tar.gz
tar -zxf ./${{ inputs.version }}.tar.gz
cd openssl-${{ inputs.version }}
./config --prefix=/tmp --libdir=lib

# Check version using major number comparison
if [[ "${{ inputs.version }}" -ge "3.0.0" ]]; then
./config --prefix=${{ github.workspace }}/openssl --libdir=lib no-tests
else
./config --prefix=${{ github.workspace }}/openssl --libdir=lib
fi
make -j $(nproc)
sudo make -j $(nproc) install_sw
echo "OPENSSL_ROOT_DIR=/tmp" >> "$GITHUB_ENV"
echo "OpenSSL_ROOT=/tmp" >> "$GITHUB_ENV"
- if: runner.os == 'Linux'
shell: bash
run: |
cd openssl-${{ inputs.version }}
sudo make -j $(nproc) install_sw
echo "OPENSSL_ROOT_DIR=${{ github.workspace }}/openssl" >> "$GITHUB_ENV"
echo "OpenSSL_ROOT=${{ github.workspace }}/openssl" >> "$GITHUB_ENV"
2 changes: 1 addition & 1 deletion .github/actions/install/wolfssl/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ inputs:
version:
description: The desired stable wolfSSL version to install
required: false
default: "v4.8.1-stable"
default: "v5.6.6-stable"
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

5.7

runs:
using: composite
steps:
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/cross-platform.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ jobs:

steps:
- uses: actions/checkout@v4

- name: configure
run: cmake --preset examples

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/jwt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ jobs:
fail-fast: false
matrix:
openssl:
- { tag: "openssl-3.0.5", name: "3.0.5" }
- { tag: "OpenSSL_1_1_1q", name: "1.1.1q" }
- { tag: "openssl-3.3.0", name: "3.3.0" }
- { tag: "OpenSSL_1_1_1w", name: "1.1.1w" }
steps:
- uses: actions/checkout@v4
- uses: lukka/get-cmake@latest
Expand Down
59 changes: 36 additions & 23 deletions .github/workflows/ssl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,35 +8,48 @@ on:

jobs:
openssl:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest]
openssl:
- { tag: "openssl-3.0.5", name: "3.0.5" }
- { tag: "OpenSSL_1_1_1q", name: "1.1.1q" }
- { tag: "OpenSSL_1_1_0i", name: "1.1.0i" } # Do not bump, there's a broken in the autoconfig script and it's not maintained
- { tag: "OpenSSL_1_0_2u", name: "1.0.2u" }
- { tag: "OpenSSL_1_0_1u", name: "1.0.1u" }
name: OpenSSL ${{ matrix.openssl.name }}
- "3.3.0"
- "3.2.1"
- "3.1.5"
- "3.0.13"
- "1.1.1w"
- "1.1.0i" # Do not bump, there's a broken in the autoconfig script and it's not maintained
- "1.0.2u"
- "1.0.1u"
exclude:
# The older version of OpenSSL were less cross-platform friendly, the Windows build had a seperate set of build
# scripts but it's just a pain to support them, see the failed attempt:
# https://github.com/prince-chrismc/jwt-cpp/pull/35/commits/e4948d2e1b7ec03896f80669fab6f9a2edf7ea63
- os: windows-latest
openssl: "1.1.0i"
- os: windows-latest
openssl: "1.0.2u"
- os: windows-latest
openssl: "1.0.1u"
name: OpenSSL ${{ matrix.openssl }} - ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: lukka/get-cmake@latest
- uses: ./.github/actions/install/gtest
- uses: ./.github/actions/install/openssl
with:
version: ${{ matrix.openssl.tag }}

version: ${{ fromJson('{"3.3.0":"openssl-3.3.0","3.2.1":"openssl-3.2.1","3.1.5":"openssl-3.1.5","3.0.13":"openssl-3.0.13","1.1.1w":"OpenSSL_1_1_1w","1.1.0i":"OpenSSL_1_1_0i","1.0.2u":"OpenSSL_1_0_2u","1.0.1u":"OpenSSL_1_0_1u"}')[matrix.openssl] }}
- name: configure
run: cmake --preset unit-tests -DOPENSSL_ROOT_DIR=/tmp
run: cmake --preset unit-tests
- run: cmake --build --preset unit-tests
- name: test
run: ctest --preset unit-tests --output-on-failure
run: ctest --preset unit-tests --rerun-failed --output-on-failure

- if: github.event_name == 'push' && always()
- if: github.event_name == 'push' && matrix.os == 'ubuntu-latest' && always()
uses: ./.github/actions/badge
with:
category: openssl
label: ${{ matrix.openssl.name }}
label: ${{ matrix.openssl }}

openssl-no-deprecated:
runs-on: ubuntu-latest
Expand All @@ -47,20 +60,20 @@ jobs:
- uses: ./.github/actions/install/gtest
- uses: ./.github/actions/install/openssl
with:
version: "openssl-3.0.5"
version: "openssl-3.3.0"

- name: configure
run: cmake --preset unit-tests -DOPENSSL_ROOT_DIR=/tmp -DCMAKE_CXX_FLAGS="-DOPENSSL_NO_DEPRECATED=1" -DCMAKE_C_FLAGS="-DOPENSSL_NO_DEPRECATED=1"
run: cmake --preset unit-tests -DCMAKE_CXX_FLAGS="-DOPENSSL_NO_DEPRECATED=1" -DCMAKE_C_FLAGS="-DOPENSSL_NO_DEPRECATED=1"
- run: cmake --build --preset unit-tests
- name: test
run: ctest --preset unit-tests
run: ctest --preset unit-tests --rerun-failed --output-on-failure

libressl:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
libressl: ["3.5.3", "3.4.3", "3.3.6"]
libressl: ["3.9.1", "3.8.2", "3.7.3"]
name: LibreSSL ${{ matrix.libressl }}
steps:
- uses: actions/checkout@v4
Expand All @@ -74,7 +87,7 @@ jobs:
run: cmake --preset unit-tests -DJWT_SSL_LIBRARY:STRING=LibreSSL
- run: cmake --build --preset unit-tests
- name: test
run: ctest --preset unit-tests
run: ctest --preset unit-tests --rerun-failed --output-on-failure

- if: github.event_name == 'push' && always()
uses: ./.github/actions/badge
Expand All @@ -85,12 +98,12 @@ jobs:
wolfssl:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
wolfssl:
- { ref: "v5.1.1-stable", name: "5.1.1"}
- { ref: "v5.2.0-stable", name: "5.2.0" }
- { ref: "v5.3.0-stable", name: "5.3.0"}
- { ref: "v5.7.0-stable", name: "5.7.0"}
- { ref: "v5.6.6-stable", name: "5.6.6"}
- { ref: "v5.5.4-stable", name: "5.5.4" }
name: wolfSSL ${{ matrix.wolfssl.name }}
steps:
- uses: actions/checkout@v4
Expand All @@ -104,7 +117,7 @@ jobs:
run: cmake --preset unit-tests -DJWT_SSL_LIBRARY:STRING=wolfSSL
- run: cmake --build --preset unit-tests
- name: test
run: ctest --preset unit-tests
run: ctest --preset unit-tests --rerun-failed --output-on-failure

- if: github.event_name == 'push' && always()
uses: ./.github/actions/badge
Expand Down
26 changes: 14 additions & 12 deletions docs/ssl.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,26 @@ These are the version which are currently being tested:

| OpenSSL | LibreSSL | wolfSSL |
| ----------------- | -------------- | -------------- |
| ![1.0.2u][o1.0.2] | ![3.3.6][l3.3] | ![5.1.1][w5.1] |
| ![1.1.0i][o1.1.0] | ![3.4.3][l3.4] | ![5.2.0][w5.2] |
| ![1.1.1q][o1.1.1] | ![3.5.3][l3.5] | ![5.3.0][w5.3] |
| ![3.0.5][o3.0] | | |
| ![1.0.2u][o1.0.2] | ![3.6.2][l3.6] | ![5.4.0][w5.4] |
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

5.7

| ![1.1.0i][o1.1.0] | ![3.7.2][l3.7] | ![5.5.4][w5.5] |
| ![1.1.1w][o1.1.1] | ![3.8.2][l3.8] | ![5.6.6][w5.6] |
| ![3.2.0][o3.2] | | |


> [!NOTE]
> A complete list of versions tested in the past can be found [here](https://github.com/Thalhammer/jwt-cpp/tree/badges).

[o1.0.2]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/openssl/1.0.2u/shields.json
[o1.1.0]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/openssl/1.1.0i/shields.json
[o1.1.1]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/openssl/1.1.1q/shields.json
[o3.0]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/openssl/3.0.5/shields.json
[l3.3]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/libressl/3.3.6/shields.json
[l3.4]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/libressl/3.4.3/shields.json
[l3.5]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/libressl/3.5.3/shields.json
[w5.1]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/wolfssl/5.1.1/shields.json
[w5.2]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/wolfssl/5.2.0/shields.json
[w5.3]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/wolfssl/5.3.0/shields.json
[o1.1.1]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/openssl/1.1.1w/shields.json
[o3.2]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/openssl/3.2.0/shields.json
[l3.6]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/libressl/3.6.2/shields.json
[l3.7]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/libressl/3.7.2/shields.json
[l3.8]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/libressl/3.8.2/shields.json
[w5.4]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/wolfssl/5.6.6/shields.json
[w5.5]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/wolfssl/5.5.4/shields.json
[w5.6]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Thalhammer/jwt-cpp/badges/wolfssl/5.4.0/shields.json


## Notes

Expand Down
Loading