FROM alpine:latest AS build

RUN apk add --no-cache build-base musl-dev linux-headers upx
WORKDIR /src

# Copy all yescrypt source and header files flat
COPY yescrypt/*.h .
COPY yescrypt/yescrypt-ref.c .
COPY yescrypt/yescrypt-common.c .
COPY yescrypt/sha256.c .
COPY yescrypt/insecure_memzero.c .

COPY bruteforce.c .

RUN gcc -static -Os -s -o bruteforce \
    bruteforce.c \
    yescrypt-ref.c \
    yescrypt-common.c \
    sha256.c \
    insecure_memzero.c \
    && strip --strip-all --remove-section=.comment bruteforce \
    && upx --ultra-brute bruteforce

FROM scratch
COPY --from=build /src/bruteforce /
ENTRYPOINT ["/bruteforce"] 