Bump cipher to v0.5.0-rc.6 (#527)
#1284
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: aes | |
| on: | |
| pull_request: | |
| paths: | |
| - ".github/workflows/aes.yml" | |
| - "aes/**" | |
| - "Cargo.*" | |
| push: | |
| branches: master | |
| defaults: | |
| run: | |
| working-directory: aes | |
| env: | |
| CARGO_INCREMENTAL: 0 | |
| RUSTFLAGS: "-Dwarnings" | |
| # NOTE: The mirror number changes with each version so keep these in sync | |
| SDE_FULL_VERSION_MIRROR: "859732" | |
| SDE_FULL_VERSION: "9.58.0-2025-06-16" | |
| # Cancels CI jobs when new commits are pushed to a PR branch | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| # Builds for no_std platforms | |
| build: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| rust: | |
| - 1.85.0 # MSRV | |
| - stable | |
| target: | |
| - thumbv7em-none-eabi | |
| - wasm32-unknown-unknown | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - run: cargo check | |
| - run: | | |
| cargo build --target ${{ matrix.target }} | |
| cargo build --target ${{ matrix.target }} --features hazmat | |
| - env: | |
| RUSTFLAGS: "-Dwarnings --cfg aes_force_soft" | |
| run: | | |
| cargo build --target ${{ matrix.target }} | |
| cargo build --target ${{ matrix.target }} --features hazmat | |
| - env: | |
| RUSTFLAGS: "-Dwarnings --cfg aes_compact" | |
| run: | | |
| cargo build --target ${{ matrix.target }} | |
| cargo build --target ${{ matrix.target }} --features hazmat | |
| - env: | |
| RUSTFLAGS: "-Dwarnings --cfg aes_force_soft --cfg aes_compact" | |
| run: | | |
| cargo build --target ${{ matrix.target }} | |
| cargo build --target ${{ matrix.target }} --features hazmat | |
| minimal-versions: | |
| if: false # TODO: temp disabled due to unpublished prerelease dependencies | |
| uses: RustCrypto/actions/.github/workflows/minimal-versions.yml@master | |
| with: | |
| working-directory: ${{ github.workflow }} | |
| # Tests for the AES-NI backend | |
| aesni: | |
| runs-on: ubuntu-latest | |
| env: | |
| CARGO_INCREMENTAL: 0 | |
| RUSTDOCFLAGS: "-C target-feature=+aes,+ssse3" | |
| RUSTFLAGS: "-Dwarnings -C target-feature=+aes,+ssse3" | |
| strategy: | |
| matrix: | |
| include: | |
| # 32-bit Linux | |
| - target: i686-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| - target: i686-unknown-linux-gnu | |
| rust: stable | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| # 64-bit Linux | |
| - target: x86_64-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| - target: x86_64-unknown-linux-gnu | |
| rust: stable | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - run: ${{ matrix.deps }} | |
| - run: cargo test --target ${{ matrix.target }} | |
| - run: cargo test --target ${{ matrix.target }} --features hazmat | |
| - run: cargo test --target ${{ matrix.target }} --all-features | |
| # Tests for the VAES AVX backend | |
| vaes256: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| include: | |
| - target: x86_64-unknown-linux-gnu | |
| rust: stable | |
| RUSTFLAGS: "-Dwarnings --cfg aes_avx256" | |
| env: | |
| CARGO_INCREMENTAL: 0 | |
| RUSTFLAGS: ${{ matrix.RUSTFLAGS }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Intel SDE | |
| run: | | |
| curl -JLO "https://downloadmirror.intel.com/${{ env.SDE_FULL_VERSION_MIRROR }}/sde-external-${{ env.SDE_FULL_VERSION }}-lin.tar.xz" | |
| tar xvf sde-external-${{ env.SDE_FULL_VERSION }}-lin.tar.xz -C /opt | |
| echo "/opt/sde-external-${{ env.SDE_FULL_VERSION }}-lin" >> $GITHUB_PATH | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| # NOTE: Write a `.cargo/config.toml` to configure the target for VAES | |
| # NOTE: We use intel-sde as the runner since not all GitHub CI hosts support AVX512 | |
| - name: write .cargo/config.toml | |
| shell: bash | |
| run: | | |
| cd ../aes/.. | |
| mkdir -p .cargo | |
| echo '[target.${{ matrix.target }}]' > .cargo/config.toml | |
| echo 'runner = "sde64 -future --"' >> .cargo/config.toml | |
| - run: ${{ matrix.deps }} | |
| - run: cargo test --target ${{ matrix.target }} | |
| - run: cargo test --target ${{ matrix.target }} --features hazmat | |
| - run: cargo test --target ${{ matrix.target }} --all-features | |
| # Tests for the VAES AVX512 backend | |
| vaes512: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| include: | |
| - target: x86_64-unknown-linux-gnu | |
| rust: stable | |
| RUSTFLAGS: "-Dwarnings --cfg aes_avx512" | |
| - target: x86_64-unknown-linux-gnu | |
| rust: stable | |
| RUSTFLAGS: "-Dwarnings --cfg aes_avx256 --cfg aes_avx512" | |
| env: | |
| CARGO_INCREMENTAL: 0 | |
| RUSTFLAGS: ${{ matrix.RUSTFLAGS }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Intel SDE | |
| run: | | |
| curl -JLO "https://downloadmirror.intel.com/${{ env.SDE_FULL_VERSION_MIRROR }}/sde-external-${{ env.SDE_FULL_VERSION }}-lin.tar.xz" | |
| tar xvf sde-external-${{ env.SDE_FULL_VERSION }}-lin.tar.xz -C /opt | |
| echo "/opt/sde-external-${{ env.SDE_FULL_VERSION }}-lin" >> $GITHUB_PATH | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| # NOTE: Write a `.cargo/config.toml` to configure the target for VAES | |
| # NOTE: We use intel-sde as the runner since not all GitHub CI hosts support AVX512 | |
| - name: write .cargo/config.toml | |
| shell: bash | |
| run: | | |
| cd ../aes/.. | |
| mkdir -p .cargo | |
| echo '[target.${{ matrix.target }}]' > .cargo/config.toml | |
| echo 'runner = "sde64 -future --"' >> .cargo/config.toml | |
| - run: ${{ matrix.deps }} | |
| - run: cargo test --target ${{ matrix.target }} | |
| - run: cargo test --target ${{ matrix.target }} --features hazmat | |
| - run: cargo test --target ${{ matrix.target }} --all-features | |
| # Tests for CPU feature autodetection with fallback to portable software implementation | |
| autodetect: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| include: | |
| # 32-bit Linux | |
| - target: i686-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| - target: i686-unknown-linux-gnu | |
| rust: stable | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| # 64-bit Linux | |
| - target: x86_64-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| - target: x86_64-unknown-linux-gnu | |
| rust: stable | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - run: ${{ matrix.deps }} | |
| - run: cargo test --target ${{ matrix.target }} | |
| - run: cargo test --target ${{ matrix.target }} --features hazmat | |
| - run: cargo test --target ${{ matrix.target }} --all-features | |
| # Tests for the portable software backend (i.e. `aes_force_soft`-only) | |
| soft: | |
| runs-on: ubuntu-latest | |
| env: | |
| RUSTFLAGS: "-Dwarnings --cfg aes_force_soft" | |
| strategy: | |
| matrix: | |
| include: | |
| # 32-bit Linux | |
| - target: i686-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| - target: i686-unknown-linux-gnu | |
| rust: stable | |
| deps: sudo apt update && sudo apt install gcc-multilib | |
| # 64-bit Linux | |
| - target: x86_64-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| - target: x86_64-unknown-linux-gnu | |
| rust: stable | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - run: ${{ matrix.deps }} | |
| - run: cargo test --target ${{ matrix.target }} | |
| - run: cargo test --target ${{ matrix.target }} --all-features | |
| # Cross-compiled tests | |
| cross: | |
| strategy: | |
| matrix: | |
| include: | |
| # ARM64 | |
| - target: aarch64-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| - target: aarch64-unknown-linux-gnu | |
| rust: stable | |
| # PPC32 | |
| - target: powerpc-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| - target: powerpc-unknown-linux-gnu | |
| rust: stable | |
| runs-on: ubuntu-latest | |
| # Cross mounts only current package, i.e. by default it ignores workspace's Cargo.toml | |
| defaults: | |
| run: | |
| working-directory: . | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - uses: RustCrypto/actions/cross-install@master | |
| - run: ${{ matrix.deps }} | |
| - run: | | |
| cross test --package aes --target ${{ matrix.target }} | |
| cross test --package aes --target ${{ matrix.target }} --features hazmat | |
| - env: | |
| RUSTFLAGS: "-Dwarnings --cfg aes_force_soft" | |
| run: | | |
| cross test --package aes --target ${{ matrix.target }} | |
| cross test --package aes --target ${{ matrix.target }} --features hazmat | |
| - env: | |
| RUSTFLAGS: "-Dwarnings --cfg aes_compact" | |
| run: | | |
| cross test --package aes --target ${{ matrix.target }} | |
| cross test --package aes --target ${{ matrix.target }} --features hazmat | |
| - env: | |
| RUSTFLAGS: "-Dwarnings --cfg aes_force_soft --cfg aes_compact" | |
| run: | | |
| cross test --package aes --target ${{ matrix.target }} | |
| cross test --package aes --target ${{ matrix.target }} --features hazmat | |
| # ARMv8 cross-compiled tests for AES intrinsics | |
| armv8: | |
| strategy: | |
| matrix: | |
| include: | |
| - target: aarch64-unknown-linux-gnu | |
| rust: 1.85.0 # MSRV | |
| runs-on: ubuntu-latest | |
| # Cross mounts only current package, i.e. by default it ignores workspace's Cargo.toml | |
| defaults: | |
| run: | |
| working-directory: . | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - run: ${{ matrix.deps }} | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| targets: ${{ matrix.target }} | |
| - uses: RustCrypto/actions/cross-install@master | |
| - run: cross test --package aes --target ${{ matrix.target }} | |
| - run: cross test --package aes --target ${{ matrix.target }} --features hazmat | |
| - run: cross test --package aes --target ${{ matrix.target }} --all-features | |
| clippy: | |
| env: | |
| RUSTFLAGS: "-Dwarnings --cfg aes_compact" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: RustCrypto/actions/cargo-cache@master | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: 1.85.0 # MSRV | |
| components: clippy | |
| - run: cargo clippy --features hazmat -- -D warnings |