memsecurity 3.5.2

Securely hold secrets in memory and protect them against cross-protection-boundary readout via microarchitectural, via attacks on physical layout, and via coldboot attacks.
Documentation
name: Rust

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

env:
  CARGO_TERM_COLOR: always

jobs:
  build_ubuntu:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Build
      run: cargo build
    - name: Build with all features
      run: cargo build --all-features
    - name: Run clippy
      run: cargo clippy --all-targets --all-features -- -D warnings
    - name: Run build with `random` feature enabled
      run: cargo build --no-default-features --features random --verbose
    - name: Run build with `clonable_mem` feature enabled
      run: cargo build --no-default-features --features clonable_mem --verbose
    - name: Run build with `encryption` feature enabled
      run: cargo build --no-default-features --features encryption --verbose
    - name: Run build with `symm_asymm` feature enabled
      run: cargo build --no-default-features --features symm_asymm --verbose
    - name: Run build with `full` feature enabled
      run: cargo build --no-default-features --features full --verbose
    - name: Run tests with all features
      run: cargo test --all-features --verbose

    - name: Install cargo-deny
      run: cargo install cargo-deny
    - name: Check licenses are correct
      run: cargo deny check licenses

    - name: Run `simple.rs` example with no default features
      run: cargo run --example simple --no-default-features --features "encryption ed25519 x25519 uuid"

  build_windows:

    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v3
    - name: Build
      run: cargo build
    - name: Build with all features
      run: cargo build --all-features
    - name: Run build with `random` feature enabled
      run: cargo build --no-default-features --features random --verbose
    - name: Run build with `clonable_mem` feature enabled
      run: cargo build --no-default-features --features clonable_mem --verbose
    - name: Run build with `encryption` feature enabled
      run: cargo build --no-default-features --features encryption --verbose
    - name: Run build with `symm_asymm` feature enabled
      run: cargo build --no-default-features --features symm_asymm --verbose
    - name: Run build with `full` feature enabled
      run: cargo build --no-default-features --features full --verbose
    - name: Run tests with all features
      run: cargo test --all-features --verbose

    - name: Install cargo-deny
      run: cargo install cargo-deny
    - name: Check licenses are correct
      run: cargo deny check licenses

    - name: Run `simple.rs` example with no default features
      run: cargo run --example simple --no-default-features --features "encryption ed25519 x25519 uuid"

  build_macos:

    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v3
    - name: Build
      run: cargo build
    - name: Build with all features
      run: cargo build --all-features
    - name: Run build with `random` feature enabled
      run: cargo build --no-default-features --features random --verbose
    - name: Run build with `clonable_mem` feature enabled
      run: cargo build --no-default-features --features clonable_mem --verbose
    - name: Run build with `encryption` feature enabled
      run: cargo build --no-default-features --features encryption --verbose
    - name: Run build with `symm_asymm` feature enabled
      run: cargo build --no-default-features --features symm_asymm --verbose
    - name: Run build with `full` feature enabled
      run: cargo build --no-default-features --features full --verbose
    - name: Run tests with all features
      run: cargo test --all-features --verbose

    - name: Install cargo-deny
      run: cargo install cargo-deny
    - name: Check licenses are correct
      run: cargo deny check licenses

    - name: Run `simple.rs` example with no default features
      run: cargo run --example simple --no-default-features --features "encryption ed25519 x25519 uuid"