<reponame>aead/tls-tris
FROM alpine

RUN apk add --update \
    git \
    cmake \
    patch \
    perl \
    python \
    build-base \
    go \
    ninja \
  && rm -rf /var/cache/apk/*

RUN git clone https://boringssl.googlesource.com/boringssl

RUN mkdir boringssl/build

# Draft 14
# ARG REVISION=88536c3

# Draft 15
# RUN cd boringssl && git fetch https://boringssl.googlesource.com/boringssl refs/changes/40/10840/18:draft15
# ARG REVISION=cae930d

# Draft "14.25" (sigalg renumbering)
# ARG REVISION=af56fbd

# Draft "14.25" w/ x25519 only
# ARG REVISION=c8b6b4f

# Draft "14.5" (sigalg, x25519, version ext)
# ARG REVISION=54afdab

# Draft 16
# ARG REVISION=89917a5

# Draft 18
# ARG REVISION=9b885c5
# Draft 18, but with "bssl server -loop -www" support and build fix
# ARG REVISION=40b24c8154

# Draft 21
# ARG REVISION=cd8470f

# Draft 22
# ARG REVISION=1530ef3e

# Draft 23
# ARG REVISION=cb15cfda29c0c60d8d74145b17c93b43a7667837

# Draft 28
# ARG REVISION=861f384d7bc59241a9df1634ae938d8e75be2d30

# TLS 1.3
ARG REVISION=d451453067cd665a5c38830fbbaac9e599234a5e

ADD sidh_$REVISION.patch /

RUN cd boringssl && git fetch
RUN cd boringssl && git checkout $REVISION
RUN cd boringssl && patch -p1 < /sidh_$REVISION.patch
RUN cd boringssl/build && cmake -DEXP_SIDH=1 -GNinja ..
RUN cd boringssl && ninja -C build

ADD httpreq.txt /httpreq.txt
ADD run.sh /run.sh
ADD server.sh rsa.pem ecdsa.pem /
ADD client_rsa.key client_rsa.crt client_ca.crt /
ENTRYPOINT ["/run.sh"]
