Skip to content

Commit 141c87b

Browse files
authored
Integrate aws-lc-sys and aws-lc-fips-sys crates (#75)
* Relocate aws-lc-rust crate to subdirectory * Add Cargo.toml for workspace * Add aws-lc-sys crate to repository * Add aws-lc-fips-sys crate to repository * aws-lc-rust sys crate versions * Fix git safe directory issues * Use newer version of Go for docker images * Makefile updates * Mark pkcs8 test ignored * CI Updates * Feedback * Use HTTPS URL for submodules * Fix for coverage * Adjust working-directory syntax * Implement docker feedback * CI & Docker Tweaks * Allow CMakeLists.txt to handle prefixing library outputs * Diff target branch and published version * Fixes for latest clippy, make prefix headers even more stable.
1 parent 2ca01e5 commit 141c87b

File tree

221 files changed

+420897
-199
lines changed

Some content is hidden

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

221 files changed

+420897
-199
lines changed

.github/workflows/ci.yml

Lines changed: 96 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ jobs:
2020
steps:
2121
- uses: actions/checkout@v3
2222
with:
23-
submodules: true
24-
23+
submodules: 'recursive'
2524
- uses: actions-rs/[email protected]
2625
id: toolchain
2726
with:
@@ -40,39 +39,43 @@ jobs:
4039
runs-on: ubuntu-latest
4140
strategy:
4241
fail-fast: false
42+
matrix:
43+
crate_dir: [ "aws-lc-sys", "aws-lc-fips-sys", "aws-lc-rust" ]
44+
features:
45+
- ""
46+
- "--features fips"
47+
exclude:
48+
- crate_dir: aws-lc-sys
49+
features: "--features fips"
50+
- crate_dir: aws-lc-fips-sys
51+
features: "--features fips"
4352
steps:
4453
- uses: actions/checkout@v3
54+
with:
55+
submodules: 'recursive'
4556
- uses: actions-rs/[email protected]
4657
id: toolchain
4758
with:
4859
toolchain: ${{ env.RUST_NIGHTLY_TOOLCHAIN }}
4960
profile: minimal
5061
override: true
5162
components: clippy
52-
5363
- name: Run cargo clippy
54-
uses: actions-rs/[email protected]
55-
with:
56-
command: clippy
57-
args: --all-targets -- -W clippy::all -W clippy::pedantic -D warnings
58-
59-
- name: Run cargo clippy on fips
60-
uses: actions-rs/[email protected]
61-
env:
62-
CC: clang
63-
CXX: clang++
64-
with:
65-
command: clippy
66-
args: --features fips --all-targets -- -W clippy::all -W clippy::pedantic -D warnings
64+
working-directory: ${{ matrix.crate_dir }}
65+
run: cargo clippy ${{ matrix.features }} --all-targets -- -W clippy::all -W clippy::pedantic -D warnings
6766

6867
apidiff:
6968
runs-on: ubuntu-latest
7069
strategy:
7170
fail-fast: false
71+
matrix:
72+
crate_dir: [ "aws-lc-sys", "aws-lc-fips-sys", "aws-lc-rust" ]
73+
diff_target: [ "branch", "published" ]
7274
steps:
7375
- uses: actions/checkout@v3
7476
with:
7577
fetch-depth: 0
78+
submodules: 'recursive'
7679
- uses: actions-rs/[email protected]
7780
id: toolchain
7881
with:
@@ -84,21 +87,33 @@ jobs:
8487
with:
8588
command: install
8689
args: cargo-public-api
87-
- name: Perform API Diff
90+
- name: Install rust-script
8891
uses: actions-rs/[email protected]
8992
with:
90-
command: public-api
91-
args: diff --deny changed --deny removed ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}
92-
93-
# dependency-review:
94-
# runs-on: ubuntu-latest
95-
# steps:
96-
# - name: 'Checkout Repository'
97-
# uses: actions/checkout@v3
98-
# - name: 'Dependency Review'
99-
# uses: actions/dependency-review-action@v3
100-
# with:
101-
# allow-licenses: Apache-2.0, ISC, MIT, MIT-0
93+
command: install
94+
args: rust-script
95+
- name: Perform API Diff (Target Branch)
96+
if: matrix.diff_target == 'branch'
97+
working-directory: ${{ matrix.crate_dir }}
98+
run: cargo public-api diff --deny changed --deny removed ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}
99+
- name: Perform API Diff (Published)
100+
if: matrix.diff_target == 'published'
101+
working-directory: ${{ matrix.crate_dir }}
102+
shell: bash
103+
run: |
104+
CRATE_NAME=$("${GITHUB_WORKSPACE}"/scripts/tools/cargo-dig.rs -n)
105+
CRATE_VERSION=$(cargo search --limit 1 ${CRATE_NAME} | head -n 1 | sed -e 's/[^"]*"\([^"]*\)".*/\1/')
106+
cargo public-api diff --deny changed --deny removed "${CRATE_VERSION}"
107+
108+
# dependency-review:
109+
# runs-on: ubuntu-latest
110+
# steps:
111+
# - name: 'Checkout Repository'
112+
# uses: actions/checkout@v3
113+
# - name: 'Dependency Review'
114+
# uses: actions/dependency-review-action@v3
115+
# with:
116+
# allow-licenses: Apache-2.0, ISC, MIT, MIT-0
102117

103118
# This step won't be needed once "dependency-review" is enabled
104119
audit:
@@ -109,6 +124,7 @@ jobs:
109124
- uses: actions/checkout@v3
110125
with:
111126
fetch-depth: 0
127+
submodules: 'recursive'
112128
- uses: actions-rs/[email protected]
113129
id: toolchain
114130
with:
@@ -134,6 +150,7 @@ jobs:
134150
- uses: actions/checkout@v3
135151
with:
136152
fetch-depth: 0
153+
submodules: 'recursive'
137154
- uses: actions-rs/[email protected]
138155
id: toolchain
139156
with:
@@ -155,7 +172,7 @@ jobs:
155172
steps:
156173
- uses: actions/checkout@v3
157174
with:
158-
submodules: true
175+
submodules: 'recursive'
159176

160177
- uses: actions-rs/[email protected]
161178
id: toolchain
@@ -175,15 +192,15 @@ jobs:
175192
env:
176193
RUSTC_WRAPPER: ""
177194

178-
test:
179-
name: tests
195+
aws-lc-rust-test:
196+
name: aws-lc-rust tests
180197
runs-on: ${{ matrix.os }}
181198
strategy:
182199
fail-fast: false
183200
matrix:
184-
rust: [stable]
185-
os: [ubuntu-latest, macOS-latest]
186-
target: [native, aarch64-unknown-linux-gnu, i686-unknown-linux-gnu]
201+
rust: [ stable ]
202+
os: [ ubuntu-latest, macOS-latest ]
203+
target: [ native, aarch64-unknown-linux-gnu, i686-unknown-linux-gnu ]
187204
args:
188205
- --all-targets
189206
- --release --all-targets --features ring-benchmarks
@@ -200,6 +217,8 @@ jobs:
200217
target: i686-unknown-linux-gnu
201218
steps:
202219
- uses: actions/checkout@v3
220+
with:
221+
submodules: 'recursive'
203222
- uses: actions-rs/[email protected]
204223
id: toolchain
205224
with:
@@ -215,23 +234,26 @@ jobs:
215234
args: cross
216235

217236
- name: Run cargo test
218-
uses: actions-rs/[email protected]
219-
with:
220-
command: test
221-
args: ${{ matrix.args }} ${{ matrix.target != 'native' && format('--target {0}', matrix.target) || '' }}
222-
use-cross: ${{ matrix.target != 'native' }}
237+
working-directory: ./aws-lc-rust
238+
if: ${{ matrix.target == 'native' }}
239+
run: cargo test ${{ matrix.args }} ${{ matrix.target != 'native' && format('--target {0}', matrix.target) || '' }}
240+
241+
- name: Run cargo cross test
242+
working-directory: ./aws-lc-rust
243+
if: ${{ matrix.target != 'native' }}
244+
run: cross test ${{ matrix.args }} ${{ matrix.target != 'native' && format('--target {0}', matrix.target) || '' }}
223245

224246
fips-test:
225-
name: fips-tests
247+
name: aws-lc-rust fips-tests
226248
runs-on: ${{ matrix.os }}
227249
env:
228250
CC: clang
229251
CXX: clang++
230252
strategy:
231253
fail-fast: false
232254
matrix:
233-
rust: [stable]
234-
os: [ubuntu-latest]
255+
rust: [ stable ]
256+
os: [ ubuntu-latest ]
235257
args:
236258
- --release --all-targets --features fips
237259
- --no-default-features --features fips
@@ -241,22 +263,24 @@ jobs:
241263
- --no-default-features --features fips,bindgen
242264
steps:
243265
- uses: actions/checkout@v3
266+
with:
267+
submodules: 'recursive'
244268
- uses: actions-rs/[email protected]
245269
id: toolchain
246270
with:
247271
toolchain: ${{ matrix.rust }}
248272
override: true
249273
- name: Run cargo test
250-
uses: actions-rs/[email protected]
251-
with:
252-
command: test
253-
args: ${{ matrix.args }}
274+
working-directory: ./aws-lc-rust
275+
run: cargo test ${{ matrix.args }}
254276

255-
coverage:
277+
aws-lc-rust-coverage:
278+
name: aws-ls-rust coverage
256279
runs-on: ubuntu-latest
257280
steps:
258281
- uses: actions/checkout@v3
259282
with:
283+
submodules: 'recursive'
260284
lfs: true
261285

262286
- uses: actions-rs/[email protected]
@@ -276,16 +300,15 @@ jobs:
276300
# account. Using --html can give us more insight which regions are missing
277301
# coverage immediately.
278302
- name: Run coverage
279-
uses: actions-rs/[email protected]
280-
with:
281-
command: llvm-cov
282-
args: --no-fail-fast --fail-under-lines 95
303+
working-directory: ./aws-lc-rust
304+
run: cargo llvm-cov --no-fail-fast --fail-under-lines 95 --ignore-filename-regex "aws-lc-sys/*"
283305

284306
mirai-analysis:
285307
runs-on: ubuntu-latest
286308
steps:
287309
- uses: actions/checkout@v3
288310
with:
311+
submodules: 'recursive'
289312
lfs: true
290313

291314
# Update toolchain when fixed: https://github.com/facebookexperimental/MIRAI/issues/1188
@@ -319,78 +342,52 @@ jobs:
319342
run: |
320343
cargo mirai
321344
322-
asan:
323-
runs-on: ubuntu-latest
324-
steps:
325-
- uses: actions/checkout@v3
326-
- uses: actions-rs/[email protected]
327-
id: toolchain
328-
with:
329-
toolchain: ${{ env.RUST_NIGHTLY_TOOLCHAIN }}
330-
override: true
331-
- name: Run address sanitizers
332-
uses: actions-rs/[email protected]
333-
env:
334-
ASAN_OPTIONS: detect_leaks=1
335-
RUSTFLAGS: -Zsanitizer=address
336-
RUSTDOCFLAGS: -Zsanitizer=address
337-
with:
338-
command: test
339-
args: --lib --bins --tests --examples --target x86_64-unknown-linux-gnu --features asan
340-
341-
asan-release:
345+
aws-lc-rust-asan:
346+
name: aws-lc-rust asan
347+
strategy:
348+
matrix:
349+
args:
350+
-
351+
- --release
352+
features:
353+
- --features asan
354+
- --no-default-features --features fips,asan
342355
runs-on: ubuntu-latest
343356
steps:
344357
- uses: actions/checkout@v3
345-
- uses: actions-rs/[email protected]
346-
id: toolchain
347358
with:
348-
toolchain: ${{ env.RUST_NIGHTLY_TOOLCHAIN }}
349-
override: true
350-
- name: Run address sanitizers
351-
uses: actions-rs/[email protected]
352-
env:
353-
ASAN_OPTIONS: detect_leaks=1
354-
RUSTFLAGS: -Zsanitizer=address
355-
RUSTDOCFLAGS: -Zsanitizer=address
356-
with:
357-
command: test
358-
args: --release --lib --bins --tests --examples --target x86_64-unknown-linux-gnu --features asan
359-
360-
asan-fips:
361-
runs-on: ubuntu-latest
362-
steps:
363-
- uses: actions/checkout@v3
359+
submodules: 'recursive'
364360
- uses: actions-rs/[email protected]
365361
id: toolchain
366362
with:
367363
toolchain: ${{ env.RUST_NIGHTLY_TOOLCHAIN }}
368364
override: true
369365
- name: Run address sanitizers
370-
uses: actions-rs/[email protected]
371366
env:
372367
ASAN_OPTIONS: detect_leaks=1
373368
RUSTFLAGS: -Zsanitizer=address
374369
RUSTDOCFLAGS: -Zsanitizer=address
375-
with:
376-
command: test
377-
args: --lib --bins --tests --examples --target x86_64-unknown-linux-gnu --no-default-features --features fips,asan
370+
working-directory: ./aws-lc-rust
371+
run: cargo test ${{ matrix.args }} --lib --bins --tests --examples --target x86_64-unknown-linux-gnu --features asan
378372

379373
s2n-quic-integration:
380374
name: s2n-quic-integration
381375
runs-on: ${{ matrix.os }}
382376
strategy:
383377
fail-fast: false
384378
matrix:
385-
os: [ubuntu-latest, macOS-latest]
379+
os: [ ubuntu-latest, macOS-latest ]
386380
steps:
387381
- uses: actions/checkout@v3
382+
with:
383+
submodules: 'recursive'
388384
- uses: actions-rs/[email protected]
389385
id: toolchain
390386
with:
391387
toolchain: stable
392388
override: true
393389
- name: Run s2n-quic integration
390+
working-directory: ./aws-lc-rust
394391
run: |
395392
./scripts/run-s2n-quic-integration.sh
396393
@@ -400,14 +397,17 @@ jobs:
400397
strategy:
401398
fail-fast: false
402399
matrix:
403-
os: [ubuntu-latest, macOS-latest]
400+
os: [ ubuntu-latest, macOS-latest ]
404401
steps:
405402
- uses: actions/checkout@v3
403+
with:
404+
submodules: 'recursive'
406405
- uses: actions-rs/[email protected]
407406
id: toolchain
408407
with:
409408
toolchain: stable
410409
override: true
411410
- name: Run rustls integration
411+
working-directory: ./aws-lc-rust
412412
run: |
413413
./scripts/run-rustls-integration.sh

.gitmodules

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[submodule "aws-lc-sys/aws-lc"]
2+
path = aws-lc-sys/aws-lc
3+
url = https://github.com/aws/aws-lc.git
4+
branch = main
5+
[submodule "aws-lc-fips-sys/aws-lc"]
6+
path = aws-lc-fips-sys/aws-lc
7+
url = https://github.com/aws/aws-lc.git
8+
branch = fips-2022-11-02

0 commit comments

Comments
 (0)