Skip to content

Commit 50003a4

Browse files
olix0rArnar Páll
andauthored
meshtls: Add a boring backend (#1351)
This change adds a `meshtls-boring` proxy feature that can be used to compile the proxy with an alternate TLS implementation. The `meshtls-rustls` feature should be disabled to take advantage of this alternate backend. In its current mode, the boring backend is compatible with the existing identity credentials and algorithms (specifically TLSv1.3 and ECDSA-P256-SHA256 with CHACHA20-POLY1305-SHA256). In future changes--once `boring` has been updated--we can: - Improve error handling, especially for SSL errors - Relax deny.toml changes needed by bindgen features - Add a FIPS mode Co-authored-by: Arnar Páll <[email protected]>
1 parent 7ae1a21 commit 50003a4

File tree

23 files changed

+1397
-43
lines changed

23 files changed

+1397
-43
lines changed

.github/workflows/fast.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
steps:
2525
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
2626
- run: rustup component add clippy
27-
- run: cargo clippy --all
27+
- run: cargo clippy --all --exclude=linkerd-meshtls-boring
2828

2929
# Enforce automated formatting.
3030
check-fmt:
@@ -48,6 +48,7 @@ jobs:
4848
- run: |
4949
cargo doc --all --no-deps \
5050
--exclude=linkerd-meshtls \
51+
--exclude=linkerd-meshtls-boring \
5152
--exclude=linkerd-meshtls-rustls
5253
5354
# Test the meshtls backends.
@@ -57,6 +58,7 @@ jobs:
5758
container:
5859
image: docker://rust:1.56.0-buster
5960
steps:
61+
- run: apt update && apt install -y cmake clang golang # for boring
6062
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
6163
- working-directory: ./linkerd/meshtls
6264
run: cargo test --all-features --no-run
@@ -65,16 +67,23 @@ jobs:
6567
- working-directory: ./linkerd/meshtls
6668
run: |
6769
cargo test --no-run \
70+
--package=linkerd-meshtls-boring \
6871
--package=linkerd-meshtls-rustls
6972
- working-directory: ./linkerd/meshtls
7073
run: |
7174
cargo test \
75+
--package=linkerd-meshtls-boring \
7276
--package=linkerd-meshtls-rustls
7377
- working-directory: linkerd/meshtls
7478
run: |
7579
cargo doc --all-features --no-deps \
7680
--package=linkerd-meshtls \
81+
--package=linkerd-meshtls-boring \
7782
--package=linkerd-meshtls-rustls
83+
# Run clippy on the boring components while we have the dependencies installed.
84+
- run: rustup component add clippy
85+
- working-directory: linkerd/meshtls
86+
run: cargo clippy --features=boring --all-targets
7887

7988
# Run non-integration tests. This should be quick.
8089
test-unit:
@@ -95,6 +104,7 @@ jobs:
95104
--exclude=linkerd-app-outbound \
96105
--exclude=linkerd-app-test \
97106
--exclude=linkerd-meshtls \
107+
--exclude=linkerd-meshtls-boring \
98108
--exclude=linkerd-meshtls-rustls \
99109
--exclude=linkerd2-proxy
100110
- run: |
@@ -108,6 +118,7 @@ jobs:
108118
--exclude=linkerd-app-outbound \
109119
--exclude=linkerd-app-test \
110120
--exclude=linkerd-meshtls \
121+
--exclude=linkerd-meshtls-boring \
111122
--exclude=linkerd-meshtls-rustls \
112123
--exclude=linkerd2-proxy
113124

.github/workflows/slow.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jobs:
2626
- run: |
2727
for toml in $(find . -mindepth 2 \
2828
-not -path '*/fuzz/*' \
29+
-not -path './linkerd/meshtls/boring/*' \
2930
-name Cargo.toml \
3031
| sort -r)
3132
do

0 commit comments

Comments
 (0)