stronghold_engine 0.4.0

A rust implementation of the IOTA Stronghold low-level libraries
Documentation
// Copyright 2020-2021 IOTA Stiftung
// SPDX-License-Identifier: Apache-2.0

# ------------------------------------------------------------------------------
# Cargo Build Stage
# ------------------------------------------------------------------------------


FROM rust:1.44-slim AS cargo-build

WORKDIR /usr/src/engine

RUN apt-get update

RUN apt-get install musl-tools build-essential gcc-multilib -y

RUN rustup target add x86_64-unknown-linux-musl

COPY Cargo.toml Cargo.toml
COPY crypto/ crypto/
COPY store/ store/

RUN RUSTFLAGS=-Clinker=musl-gcc cargo build --release --target=x86_64-unknown-linux-musl

RUN cd crypto/fuzz && RUSTFLAGS=-Clinker=musl-gcc cargo build --release --target=x86_64-unknown-linux-musl

RUN cd vault/fuzz && RUSTFLAGS=-Clinker=musl-gcc cargo build --release --target=x86_64-unknown-linux-musl

# ------------------------------------------------------------------------------
# Crypto Fuzz Stage
# ------------------------------------------------------------------------------


FROM alpine:latest

RUN addgroup -g 1000 engine

RUN adduser -D -s /bin/sh -u 1000 -G engine engine

WORKDIR /home/engine/bin/

# Build Crypto Fuzzer
# COPY --from=cargo-build /usr/src/engine/crypto/fuzz/target/x86_64-unknown-linux-musl/release/fuzz .

# Build vault Fuzzer
COPY --from=cargo-build /usr/src/engine/vault/fuzz/target/x86_64-unknown-linux-musl/release/fuzz .

CMD ["sh", "-c", "./fuzz > fuzz.log"]