From 96b9e89de8694a485cfc391c25f4289628068a04 Mon Sep 17 00:00:00 2001 From: "Achim D. Brucker" Date: Sat, 23 Jan 2021 16:23:51 +0000 Subject: [PATCH] Initial commit. --- scale-mamba-1.5/Dockerfile | 66 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 scale-mamba-1.5/Dockerfile diff --git a/scale-mamba-1.5/Dockerfile b/scale-mamba-1.5/Dockerfile new file mode 100644 index 0000000..ef3920c --- /dev/null +++ b/scale-mamba-1.5/Dockerfile @@ -0,0 +1,66 @@ +FROM registry.hub.docker.com/library/debian:testing-slim + +ARG USERNAME=lh +ARG USER_UID=1000 +ARG USER_GID=$USER_UID + +ENV LD_LIBRARY_PATH=/opt/local/lib/:${LD_LIBRARY_PATH} +ENV LIBRARY_PATH=/opt/local/lib/:${LIBRARY_PATH} +ENV C_INCLUDE_PATH=/opt/local/include/:${C_INCLUDE_PATH} +ENV CPLUS_INCLUDE_PATH=/opt/local/include/:${CPLUS_INCLUDE_PATH} +ENV PATH=/opt/local/bin:/opt/scale-mamba/:${PATH} +ENV SCALE_MAMBA=/opt/scale-mamba/ + +# Configure apt and install packages +RUN mkdir -p /usr/share/man/man1 +RUN apt-get update \ + # + # Upgrade base image to ensure that all security updates are installed + # && apt-get -y dist-upgrade \ + # + # Ensure availability of common tools + && apt-get -y install libssl-dev curl git openssh-client less iproute2 procps lsb-release \ + # + # Install required develeopment tools (e.g., g++, python 2) + && apt-get -y install m4 g++ yasm git unzip gcc libssl-dev make libcrypto++-dev python \ + # + # Install MPIR 3.0.0 + && mkdir -p /opt/src/ \ + && cd /opt/src && curl http://mpir.org/mpir-3.0.0.tar.bz2 | tar xjf - \ + && cd /opt/src/mpir-3.0.0 && ./configure --enable-cxx --prefix=/opt/local && make -j 4 && make -j 4 check && make -j 4 install \ + # + # Install Cryptopp 820 + && mkdir -p /opt/src/ && cd /opt/src \ + && LD_LIBRARY_PATH= curl -O https://www.cryptopp.com/cryptopp820.zip && mkdir cryptopp820 \ + && cd /opt/src/cryptopp820 && unzip ../cryptopp820.zip && rm ../cryptopp820.zip && make -j 4 && make -j 4 libcryptopp.so && PREFIX=/opt/local make -j 4 install \ + # + # Requirements for remote sharing + && apt-get -y install libicu[0-9][0-9] libkrb5-3 zlib1g gnome-keyring libsecret-1-0 desktop-file-utils x11-utils openssl \ + # Install SCALE-MAMBA + && LD_LIBRARY_PATH= git clone https://github.com/KULeuven-COSIC/SCALE-MAMBA.git /opt/src/SCALE-MAMBA \ + && cd /opt/src/SCALE-MAMBA \ + # Install SCALE-MAMBA version 1.5 (git commit d7c960afd0a9776f04e15a5653caf300dd42f20a) + && git checkout d7c960afd0a9776f04e15a5653caf300dd42f20a \ + && cp CONFIG CONFIG.mine && echo ROOT=`pwd` >> CONFIG.mine \ + && sed -i -e 's/PRSS.cpp/PRSS.h/' src/Offline/DABitGenerator.cpp \ + && make -j 4 progs \ + # install + && mkdir -p /opt/scale-mamba \ + && cp Player.x /opt/scale-mamba/ \ + && cp Setup.x /opt/scale-mamba/ \ + && cp src/libMPC.a /opt/scale-mamba/ \ + && cp compile.py /opt/scale-mamba/ \ + && cp -r Compiler /opt/scale-mamba/ \ + # + # Create a non-root user to use if preferred + && groupadd --gid $USER_GID $USERNAME \ + && useradd -ms /bin/bash -o --uid $USER_UID --gid $USER_GID -m $USERNAME \ + # + # Clean up + && apt-get autoremove -y \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* + +USER $USERNAME +ENV HOME /home/$USERNAME +WORKDIR /opt/scale-mamba