qubip_aurora 0.12.0

A framework to build OpenSSL Providers tailored for the transition to post-quantum cryptography
Documentation
---
name: Rust tests

on:
  workflow_dispatch:
  push:
    branches: [master]
  pull_request:
  pull_request_target:
jobs:
  lint-code:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      statuses: read
    container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
    steps:
      - name: ⤵️ Check out code from GitHub
        uses: actions/checkout@v1
      - name: "Check rustc version"
        run: rustc --version
      - name: "Check cargo version"
        run: cargo --version
      - name: "Check openssl version"
        run: openssl version -a
      - name: "cargo fmt"
        run: cargo fmt -- --check
  test-code:
    runs-on: ubuntu-latest
    container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
    permissions:
      contents: read
      statuses: read
    steps:
      - name: ⤵️ Check out code from GitHub
        uses: actions/checkout@v1
      - name: "Check rustc version"
        run: rustc --version
      - name: "Check cargo version"
        run: cargo --version
      - name: "Check openssl version"
        run: openssl version -a
      - name: "Execute cargo build"
        run: cargo build
      - name: "List providers"
        run: RUST_LOG=info OPENSSL_MODULES="$PWD/target/debug" openssl list -verbose -providers -provider libaurora
      - name: "Execute cargo test"
        run: RUST_LOG=info cargo test
  test-code-pqclean:
    runs-on: ubuntu-latest
    container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
    defaults:
      run:
        shell: bash
    permissions:
      contents: read
      statuses: read
    steps:
      - name: ⤵️ Check out code from GitHub
        uses: actions/checkout@v1
      - name: "Check rustc version"
        run: rustc --version
      - name: "Check cargo version"
        run: cargo --version
      - name: "Check openssl version"
        run: openssl version -a
      - name: "Install jaq to query Cargo.toml"
        run: CARGO_INSTALL_ROOT=/ cargo install jaq
      - name: "Set features, selecting pqclean"
        run: |
          QUERY='.features.default - ["default_adapters"] + .features.default_adapters - ["mldsa_native_adapter"] + ["pqclean_adapter"] | join(",")'
          TEST_FEATURES="$(jaq -r "$QUERY" Cargo.toml)"
          echo "TEST_FEATURES=${TEST_FEATURES}"
          echo "TEST_FEATURES=${TEST_FEATURES}" >> "$GITHUB_ENV"
      - name: "Execute cargo build"
        run: |
          echo "TEST_FEATURES=${TEST_FEATURES}"
          cargo build --no-default-features --features="${TEST_FEATURES}"
      - name: "List providers"
        run: RUST_LOG=info OPENSSL_MODULES="$PWD/target/debug" openssl list -verbose -providers -provider libaurora
      - name: "Execute cargo test"
        run: |
          echo "TEST_FEATURES=${TEST_FEATURES}"
          RUST_LOG=info cargo test --no-default-features --features="${TEST_FEATURES}" --no-fail-fast
  test-code-release-native-built_info:
    runs-on: ubuntu-latest
    container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
    defaults:
      run:
        shell: bash
    permissions:
      contents: read
      statuses: read
    steps:
      - name: ⤵️ Check out code from GitHub
        uses: actions/checkout@v1
      - name: "Check rustc version"
        run: rustc --version
      - name: "Check cargo version"
        run: cargo --version
      - name: "Check openssl version"
        run: openssl version -a
      - name: "Set features"
        run: echo "TEST_FEATURES=native,built_info" >> "$GITHUB_ENV"
      - name: "Execute cargo build"
        run: |
          echo "TEST_FEATURES=${TEST_FEATURES}"
          cargo build --release --features="${TEST_FEATURES}"
      - name: "List providers"
        run: RUST_LOG=info OPENSSL_MODULES="$PWD/target/release" openssl list -verbose -providers -provider libaurora
      - name: "Execute cargo test"
        run: |
          echo "TEST_FEATURES=${TEST_FEATURES}"
          RUST_LOG=info cargo test --release --features="${TEST_FEATURES}" --no-fail-fast
  just-list:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      statuses: read
    container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
    steps:
      - name: ⤵️ Check out code from GitHub
        uses: actions/checkout@v1
      - name: "Check rustc version"
        run: rustc --version
      - name: "Check cargo version"
        run: cargo --version
      - name: "Check openssl version"
        run: openssl version -a
      - name: "Build"
        run: cargo build
      - name: "List providers"
        run: RUST_LOG=info openssl list -verbose -providers -provider $PWD/target/debug/libaurora.so
      - name: "List algorithms"
        run: RUST_LOG=info openssl list -verbose -all-algorithms -provider $PWD/target/debug/libaurora.so
  build-doc:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      statuses: read
    container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
    steps:
      - name: ⤵️ Check out code from GitHub
        uses: actions/checkout@v1
      - name: "Check rustc version"
        run: rustc --version
      - name: "Check cargo version"
        run: cargo --version
      - name: "Check openssl version"
        run: openssl version -a
      - name: "Build docs"
        run: cargo doc --document-private-items