faest 0.2.2

Pure Rust implementation of the FAEST post-quantum secure digital signature scheme
Documentation
name: Rust

on: [push, pull_request]

env:
  CARGO_TERM_COLOR: always

jobs:
  test:
    strategy:
      matrix:
        toolchain:
          - stable
          - "1.85"
        runner:
          - ubuntu-latest
          - ubuntu-24.04-arm
    runs-on: ${{matrix.runner}}
    name: Test with Rust ${{matrix.toolchain}} toolchain on ${{matrix.runner}}
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{matrix.toolchain}}
      - uses: Swatinem/rust-cache@v2
      - name: Test without default features
        run: cargo test -r --no-default-features --workspace
      - name: Test with default features
        run: cargo test -r --workspace
      - name: Test with all features
        run: cargo test -r --all-features --workspace

  test-native:
    needs: test
    runs-on: ubuntu-latest
    name: Test with target-cpu=native
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: stable
      - uses: Swatinem/rust-cache@v2
      - name: Test with all features
        run: cargo test -r --all-features --workspace
    env:
      RUSTFLAGS: "-C target-cpu=native"

  test-capi:
    needs: test
    runs-on: ubuntu-latest
    name: Test with cargo-c
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: stable
      - uses: Swatinem/rust-cache@v2
      - name: Install cargo-c
        run: cargo install cargo-c
      - name: Test with capi
        run: cargo test -r --features=capi
      - name: Build with cargo-c
        run: cargo cbuild -r

  test-cross:
    needs: test
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        target:
          - i686-unknown-linux-gnu
          - s390x-unknown-linux-gnu
    name: Cross test for ${{matrix.target}}
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
        with:
          targets: ${{matrix.target}}
      - uses: Swatinem/rust-cache@v2
      - name: Install cross
        run: cargo install cross
      - name: Remove large test vector files
        run: rm -rvf tests/data/PQCsignKAT*
      - name: Test with all features
        run: cross test -r --all-features --workspace --target ${{matrix.target}}

  fmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - uses: Swatinem/rust-cache@v2
      - run: cargo fmt --all -- --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy
      - uses: Swatinem/rust-cache@v2
      - run: cargo clippy --all --all-features -- -D warnings