Skip to content

Commit

Permalink
curve: Fix no_std for fiat backend and add test for it (#572)
Browse files Browse the repository at this point in the history
  • Loading branch information
pinkforest committed Sep 4, 2023
1 parent c8d1d40 commit 5c5a320
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 38 deletions.
33 changes: 31 additions & 2 deletions .github/workflows/curve25519-dalek.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,14 @@ name: curve25519 Rust
on:
push:
branches: [ '**' ]
paths: 'curve25519-dalek/**'
paths:
- 'curve25519-dalek/**'
- '.github/workflows/curve25519-dalek.yml'
pull_request:
branches: [ '**' ]
paths: 'curve25519-dalek/**'
paths:
- 'curve25519-dalek/**'
- '.github/workflows/curve25519-dalek.yml'

defaults:
run:
Expand Down Expand Up @@ -39,6 +43,31 @@ jobs:
RUSTFLAGS: '--cfg curve25519_dalek_backend="fiat"'
run: cargo test --target ${{ matrix.target }}

# Default no_std test only tests using serial across all crates
build-nostd-fiat:
name: Build fiat on no_std target (thumbv7em-none-eabi)
runs-on: ubuntu-latest
strategy:
matrix:
include:
- crate: curve25519-dalek
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
targets: thumbv7em-none-eabi
- uses: taiki-e/install-action@cargo-hack
# No default features build
- name: no_std fiat / no feat ${{ matrix.crate }}
env:
RUSTFLAGS: '--cfg curve25519_dalek_backend="fiat"'
run: cargo build -p ${{ matrix.crate }} --target thumbv7em-none-eabi --release --no-default-features
- name: no_std fiat / cargo hack ${{ matrix.crate }}
env:
RUSTFLAGS: '--cfg curve25519_dalek_backend="fiat"'
run: cargo hack build -p ${{ matrix.crate }} --target thumbv7em-none-eabi --release --each-feature --exclude-features default,std,getrandom

test-serial:
name: Test serial backend
runs-on: ubuntu-latest
Expand Down
35 changes: 0 additions & 35 deletions .github/workflows/no_std.yml

This file was deleted.

23 changes: 23 additions & 0 deletions .github/workflows/workspace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,29 @@ jobs:
- name: Build default (host native) bench
run: cargo build --benches

# Test no_std with serial (default)
build-nostd-serial:
name: Build serial on no_std target (thumbv7em-none-eabi)
runs-on: ubuntu-latest
strategy:
matrix:
include:
- crate: curve25519-dalek
- crate: ed25519-dalek
- crate: x25519-dalek
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
targets: thumbv7em-none-eabi
- uses: taiki-e/install-action@cargo-hack
# No default features build
- name: no_std / no feat ${{ matrix.crate }}
run: cargo build -p ${{ matrix.crate }} --target thumbv7em-none-eabi --release --no-default-features
- name: no_std / cargo hack ${{ matrix.crate }}
run: cargo hack build -p ${{ matrix.crate }} --target thumbv7em-none-eabi --release --each-feature --exclude-features default,std,getrandom

clippy:
name: Check that clippy is happy
runs-on: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion curve25519-dalek/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ zeroize = { version = "1", default-features = false, optional = true }
cpufeatures = "0.2.6"

[target.'cfg(curve25519_dalek_backend = "fiat")'.dependencies]
fiat-crypto = "0.1.19"
fiat-crypto = { version = "0.1.19", default-features = false }

[features]
default = ["alloc", "precomputed-tables", "zeroize"]
Expand Down

0 comments on commit 5c5a320

Please sign in to comment.