Skip to content

Commit cc93053

Browse files
authored
Add Support for openssl v3.5 as a TLS Backend (#4959)
1 parent 72593a3 commit cc93053

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+4959
-59
lines changed

.github/workflows/build-darwin-framework.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,12 @@ permissions: read-all
2121

2222
jobs:
2323
build-all-frameworks:
24+
strategy:
25+
matrix:
26+
tls: ["quictls", "openssl"]
2427
name: Build All Darwin Frameworks (Release)
2528
uses: ./.github/workflows/build-reuse-darwin-framework.yml
2629
with:
2730
config: 'Release'
2831
repo: ${{ github.repository }}
32+
tls: ${{ matrix.tls }}

.github/workflows/build-reuse-darwin-framework.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ on:
2424
type: string
2525
# options:
2626
# - quictls
27+
# - openssl
2728
static:
2829
required: false
2930
default: ''
@@ -73,7 +74,7 @@ jobs:
7374
path: artifacts
7475
- name: Build Package
7576
shell: pwsh
76-
run: scripts/merge-darwin.ps1 -DeleteSource -Config ${{ inputs.config }}
77+
run: scripts/merge-darwin.ps1 -DeleteSource -Config ${{ inputs.config }} -Tls ${{ inputs.tls }}
7778
- name: Upload build artifacts
7879
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
7980
with:
@@ -105,7 +106,7 @@ jobs:
105106
path: artifacts
106107
- name: Build Framework
107108
shell: pwsh
108-
run: scripts/package-darwin-framework.ps1 -Config ${{ inputs.config }} -Platform ${{ matrix.vec.plat }} -Arch ${{ matrix.vec.arch }}
109+
run: scripts/package-darwin-framework.ps1 -Config ${{ inputs.config }} -Platform ${{ matrix.vec.plat }} -Arch ${{ matrix.vec.arch }} -Tls ${{ inputs.tls }}
109110
- name: Upload build artifacts
110111
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
111112
with:
@@ -125,23 +126,23 @@ jobs:
125126
- name: Download Build Artifacts (iOS x64)
126127
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
127128
with:
128-
name: Framework-${{ inputs.config }}-ios-macos-13-x64-quictls
129+
name: Framework-${{ inputs.config }}-ios-macos-13-x64-${{ inputs.tls }}
129130
path: artifacts
130131
- name: Download Build Artifacts (iOS arm64)
131132
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
132133
with:
133-
name: Framework-${{ inputs.config }}-ios-macos-13-arm64-quictls
134+
name: Framework-${{ inputs.config }}-ios-macos-13-arm64-${{ inputs.tls }}
134135
path: artifacts
135136
- name: Download Build Artifacts (MacOS Universal)
136137
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
137138
with:
138-
name: Framework-${{ inputs.config }}-macos-macos-13-universal-quictls
139+
name: Framework-${{ inputs.config }}-macos-macos-13-universal-${{ inputs.tls }}
139140
path: artifacts
140141
- name: Build XCFramework
141142
shell: pwsh
142-
run: scripts/package-darwin-xcframework.ps1 -Config ${{ inputs.config }}
143+
run: scripts/package-darwin-xcframework.ps1 -Config ${{ inputs.config }} -Tls ${{ inputs.tls }}
143144
- name: Upload build artifacts
144145
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
145146
with:
146-
name: XCFramework-${{ inputs.config }}
147+
name: XCFramework-${{ inputs.config }}-${{ inputs.tls }}
147148
path: artifacts/frameworks

.github/workflows/build-reuse-unix.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ on:
5252
type: string
5353
# options:
5454
# - quictls
55+
# - openssl
5556
static:
5657
required: false
5758
default: ''

.github/workflows/build-reuse-win.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ on:
4949
type: string
5050
# options:
5151
# - quictls
52+
# - openssl
5253
# - schannel
5354
static:
5455
required: false

.github/workflows/build-reuse-winkernel.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ on:
4646
type: string
4747
# options:
4848
# - quictls
49+
# - openssl
4950
# - schannel
5051
build:
5152
required: false

.github/workflows/build.yml

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,14 @@ jobs:
3030
plat: [windows, uwp] # TODO: Support gamecore_console
3131
os: ['windows-2022']
3232
arch: [x86, x64, arm64]
33-
tls: [schannel, quictls]
33+
tls: [schannel, quictls, openssl]
3434
static: ['', '-Static']
3535
exclude:
3636
# OpenSSL/quictls doesn't support arm64
3737
- tls: quictls
3838
arch: arm64
39+
- plat: uwp
40+
tls: openssl
3941
# TODO: FIX: OpenSSL/quictls build fails with UWP
4042
- plat: uwp
4143
tls: quictls
@@ -99,7 +101,7 @@ jobs:
99101
plat: [linux]
100102
os: ['ubuntu-22.04', 'ubuntu-24.04']
101103
arch: [arm, arm64]
102-
tls: [quictls]
104+
tls: [quictls, openssl]
103105
static: ['', '-Static']
104106
uses: ./.github/workflows/build-reuse-unix.yml
105107
with:
@@ -121,7 +123,7 @@ jobs:
121123
plat: [linux, android]
122124
os: ['ubuntu-22.04', 'ubuntu-24.04']
123125
arch: [x86, x64]
124-
tls: [quictls]
126+
tls: [quictls, openssl]
125127
systemcrypto: ['', '-UseSystemOpenSSLCrypto']
126128
static: ['', '-Static']
127129
clang: ['', '-Clang']
@@ -133,6 +135,23 @@ jobs:
133135
arch: x86
134136
- plat: android
135137
systemcrypto: '-UseSystemOpenSSLCrypto'
138+
# No openssl system crypto on ubuntu-22.04
139+
- os: 'ubuntu-22.04'
140+
tls: 'quictls'
141+
systemcrypto: '-UseSystemOpenSSLCrypto'
142+
# No openssl system crypto on ubuntu-24.04
143+
- os: 'ubuntu-24.04'
144+
tls: 'quictls'
145+
systemcrypto: '-UseSystemOpenSSLCrypto'
146+
# No openssl system crypto on ubuntu-22.04
147+
- os: 'ubuntu-22.04'
148+
tls: 'openssl'
149+
systemcrypto: '-UseSystemOpenSSLCrypto'
150+
# No openssl system crypto on ubuntu-24.04
151+
- os: 'ubuntu-24.04'
152+
tls: 'openssl'
153+
systemcrypto: '-UseSystemOpenSSLCrypto'
154+
# linux xdp is for ubuntu24.04 only for now
136155
- plat: android
137156
xdp: "-UseXdp"
138157
- plat: android
@@ -185,7 +204,7 @@ jobs:
185204
plat: [macos, ios]
186205
os: ['macos-13']
187206
arch: [x64, arm64]
188-
tls: [quictls]
207+
tls: [quictls, openssl]
189208
static: ['', '-Static']
190209
uses: ./.github/workflows/build-reuse-unix.yml
191210
with:
@@ -206,6 +225,7 @@ jobs:
206225
vec: [
207226
#{ plat: "uwp", tls: "quictls", arg: "-UWP" }, # TODO: Fix build first
208227
{ plat: "windows", tls: "quictls" },
228+
{ plat: "windows", tls: "openssl" },
209229
{ plat: "windows", tls: "schannel" },
210230
]
211231
runs-on: windows-2022

.github/workflows/cargo.yml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,22 @@ jobs:
2121
fail-fast: false
2222
matrix:
2323
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-xlarge]
24-
features: ["", "--features static", "--features quictls", "--features quictls,static", "--features overwrite"]
24+
vec: [
25+
{ tls: "quictls", features: "" },
26+
{ tls: "quictls", features: "--features static" },
27+
{ tls: "quictls", features: "--features quictls" },
28+
{ tls: "quictls", features: "--features quictls,static" },
29+
{ tls: "openssl", features: "--features openssl" },
30+
{ tls: "openssl", features: "--features openssl,static" },
31+
{ tls: "quictls", features: "--features overwrite" }
32+
]
2533
runs-on: ${{ matrix.os }}
2634
name: Cargo
2735
steps:
2836
- name: Checkout repository
2937
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
3038
- name: Prepare Machine
31-
run: scripts/prepare-machine.ps1 -Tls quictls -ForBuild -InstallTestCertificates
39+
run: scripts/prepare-machine.ps1 -Tls ${{ matrix.vec.tls }} -ForBuild -InstallTestCertificates
3240
shell: pwsh
3341
- name: Install Perl
3442
if: runner.os == 'Windows'
@@ -46,9 +54,9 @@ jobs:
4654
- name: Cargo fmt
4755
run: cargo fmt --all -- --check
4856
- name: Cargo clippy
49-
run: cargo clippy --all-targets ${{ matrix.features }} -- -D warnings
57+
run: cargo clippy --all-targets ${{ matrix.vec.features }} -- -D warnings
5058
- name: Cargo build
51-
run: cargo build --all ${{ matrix.features }}
59+
run: cargo build --all ${{ matrix.vec.features }}
5260
- name: Check all generated files with git
5361
id: bindings_diff
5462
shell: bash
@@ -90,7 +98,7 @@ jobs:
9098
if: steps.bindings_diff.outputs.diff-found == 'true'
9199
run: exit 1
92100
- name: Cargo test
93-
run: cargo test --all ${{ matrix.features }}
101+
run: cargo test --all ${{ matrix.vec.features }}
94102
- name: Cargo Publish (dry run)
95103
run: cargo publish --dry-run --allow-dirty --no-verify
96104
# Test rust crate with preinstalled msquic lib.

.github/workflows/dotnet-test.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,14 @@ permissions: read-all
2222
jobs:
2323
build-darwin-frameworks:
2424
name: Build All Darwin Frameworks
25+
strategy:
26+
matrix:
27+
tls: ["quictls", "openssl"]
2528
uses: ./.github/workflows/build-reuse-darwin-framework.yml
2629
with:
2730
config: 'Debug'
2831
repo: ${{ github.repository }}
32+
tls: ${{ matrix.tls }}
2933

3034
build-linux:
3135
name: Ubuntu
@@ -36,6 +40,8 @@ jobs:
3640
vec: [
3741
{ plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "quictls" },
3842
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "quictls", xdp: "-UseXdp" },
43+
{ plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "openssl" },
44+
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl", xdp: "-UseXdp" },
3945
]
4046
uses: ./.github/workflows/build-reuse-unix.yml
4147
with:
@@ -55,6 +61,7 @@ jobs:
5561
matrix:
5662
vec: [
5763
{ plat: "windows", os: "windows-2022", arch: "x64", tls: "quictls" },
64+
{ plat: "windows", os: "windows-2022", arch: "x64", tls: "openssl" },
5865
]
5966
uses: ./.github/workflows/build-reuse-win.yml
6067
with:
@@ -75,7 +82,10 @@ jobs:
7582
{ plat: "windows", os: "windows-2022", arch: "x64", tls: "quictls" },
7683
{ plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "quictls" },
7784
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "quictls", xdp: "-UseXdp" },
85+
{ plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "openssl" },
86+
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl", xdp: "-UseXdp" },
7887
{ plat: "macos", os: "macos-13", arch: "universal", tls: "quictls" },
88+
{ plat: "macos", os: "macos-13", arch: "universal", tls: "openssl" },
7989
]
8090
runs-on: ${{ matrix.vec.os }}
8191
steps:

.github/workflows/netperf.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ on:
1818
- src/platform/**
1919
- src/perf/**
2020
- submodules/quictls/**
21+
- submodules/openssl/**
2122
- submodules/xdp-for-windows/**
2223
pull_request:
2324
branches:
@@ -35,6 +36,7 @@ on:
3536
- src/platform/**
3637
- src/perf/**
3738
- submodules/quictls/**
39+
- submodules/openssl/**
3840
- submodules/xdp-for-windows/**
3941

4042
concurrency:

.github/workflows/package-reuse-linux.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ on:
3333
type: string
3434
# options:
3535
# - quictls
36+
# - openssl
3637
static:
3738
required: false
3839
default: ''

0 commit comments

Comments
 (0)