156d7e48643013ce56c15ed9ed4f6647f97dd5b1
[aaf/sshsm.git] / bin / base / xenialdockerfile
1 FROM ubuntu:xenial
2
3 RUN apt-get -y update && \
4   apt-get -y install \
5     autoconf \
6     autoconf-archive \
7     libglib2.0-dev \
8     libdbus-1-dev \
9     automake \
10     libtool \
11     autotools-dev \
12     libcppunit-dev \
13     p11-kit \
14     libcurl4-gnutls-dev \
15     libcmocka0 \
16     libcmocka-dev \
17     build-essential \
18     git \
19     pkg-config \
20     vim \
21     gcc \
22     g++ \
23     m4 \
24     curl \
25     wget \
26     liburiparser-dev \
27     pandoc \
28     opensc \
29     default-jdk
30
31 RUN wget https://www.openssl.org/source/openssl-1.1.0.tar.gz && \
32   gzip -d openssl-1.1.0.tar.gz && \
33   tar -xvf openssl-1.1.0.tar && \
34   cd openssl-1.1.0 && \
35   ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl && \
36   make && \
37   make install
38 RUN apt-get -y install libgcrypt20-dev
39
40 RUN echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/ssl.conf && \
41   ldconfig
42
43 RUN apt-get -y install valgrind
44 RUN wget https://github.com/tpm2-software/tpm2-tss/releases/download/2.0.0/tpm2-tss-2.0.0.tar.gz
45 RUN tar -xvf tpm2-tss-2.0.0.tar.gz
46 RUN wget https://github.com/tpm2-software/tpm2-abrmd/releases/download/2.0.0/tpm2-abrmd-2.0.0.tar.gz
47 RUN tar -xvf tpm2-abrmd-2.0.0.tar.gz
48 RUN wget https://github.com/tpm2-software/tpm2-tools/releases/download/3.1.0/tpm2-tools-3.1.0.tar.gz
49 RUN tar -xvf tpm2-tools-3.1.0.tar.gz
50
51 RUN cd tpm2-tss-2.0.0 && \
52   ./configure && \
53   make && \
54   make install
55 RUN cp /tpm2-tss-2.0.0/src/util/tpm2b.h /usr/local/include/tss2/
56
57 RUN cd tpm2-abrmd-2.0.0 && \
58   useradd --system --user-group tss && \
59   ./configure --with-dbuspolicydir=/etc/dbus-1/system.d \
60     --with-udevrulesdir=/etc/udev/rules.d/ \
61     --with-systemdsystemunitdir=/lib/systemd/system && \
62   make && \
63   make install
64
65 RUN cd tpm2-tools-3.1.0 && \
66   export PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig && \
67   ./configure --disable-hardening && \
68   make && \
69   make install
70
71 RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/tpm2.conf && \
72   ldconfig
73
74 # Clone the sshsm repo
75 RUN git clone https://gerrit.onap.org/r/aaf/sshsm
76
77 # Build SoftHSMv2
78 RUN cd sshsm && \
79   cd SoftHSMv2 && \
80   export LD_LIBRARY_PATH=/usr/local/ssl/lib && \
81   sh autogen.sh && \
82   ./configure --disable-gost --with-openssl=/usr/local/ssl && \
83   make && \
84   make install
85
86 # Build TPM-Plugin
87 RUN cd sshsm && \
88   chmod 755 TPM2-Plugin/ && \
89   cd TPM2-Plugin && \
90   chmod 755 bootstrap && \
91   sleep 2 && \
92   ./bootstrap && \
93   ./configure LDFLAGS="-L/usr/local/ssl/lib" && \
94   make && \
95   make install && \
96   ldconfig
97
98 RUN cd sshsm && \
99   cd tpm-util && \
100   cd import && \
101   export LDFLAGS="-L/usr/local/ssl/lib" && \
102   make -f sampleMakefile
103
104 RUN mkdir tpm-util
105 RUN cd tpm-util && \
106   mkdir bin
107 RUN cp /sshsm/tpm-util/import/ossl_tpm_import /tpm-util/bin/
108
109 RUN rm -rf tpm2-tss-2.0.0
110 RUN rm -rf tpm2-tss-2.0.0.tar.gz
111 RUN rm -rf tpm2-abrmd-2.0.0
112 RUN rm -rf tpm2-abrmd-2.0.0.tar.gz
113 RUN rm -rf tpm2-tools-3.1.0
114 RUN rm -rf tpm2-tools-3.1.0.tar.gz
115 RUN rm -rf sshsm
116 RUN rm -rf openssl-1.1.0
117 RUN rm -rf openssl-1.1.0.tar
118 RUN rm -rf openssl-1.1.0.tar.gz
119
120 RUN mkdir -p /sshsm/bin
121 COPY ./import.sh /sshsm/bin
122 COPY ./softhsmconfig.sh /sshsm/bin
123 COPY ./application.sh /sshsm/bin
124 COPY ./abrmd_ready.sh /sshsm/bin