ec9d3104c4eea75562f5ed8ea85d492e4f5ac299
[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 apt-get -y install valgrind
41 RUN wget https://github.com/tpm2-software/tpm2-tss/releases/download/2.0.0/tpm2-tss-2.0.0.tar.gz
42 RUN tar -xvf tpm2-tss-2.0.0.tar.gz
43 RUN wget https://github.com/tpm2-software/tpm2-abrmd/releases/download/2.0.0/tpm2-abrmd-2.0.0.tar.gz
44 RUN tar -xvf tpm2-abrmd-2.0.0.tar.gz
45 RUN wget https://github.com/tpm2-software/tpm2-tools/releases/download/3.1.0/tpm2-tools-3.1.0.tar.gz
46 RUN tar -xvf tpm2-tools-3.1.0.tar.gz
47
48 RUN cd tpm2-tss-2.0.0 && \
49   ./configure && \
50   make && \
51   make install
52 RUN cp /tpm2-tss-2.0.0/src/util/tpm2b.h /usr/local/include/tss2/
53
54 RUN cd tpm2-abrmd-2.0.0 && \
55   useradd --system --user-group tss && \
56   ./configure --with-dbuspolicydir=/etc/dbus-1/system.d \
57     --with-udevrulesdir=/etc/udev/rules.d/ \
58     --with-systemdsystemunitdir=/lib/systemd/system && \
59   make && \
60   make install
61
62 RUN cd tpm2-tools-3.1.0 && \
63   export PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig && \
64   ./configure --disable-hardening && \
65   make && \
66   make install
67
68 RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/tpm2.conf && \
69   ldconfig
70
71 # Clone the sshsm repo
72 RUN git clone https://gerrit.onap.org/r/aaf/sshsm
73
74 # Build SoftHSMv2
75 RUN cd sshsm && \
76   cd SoftHSMv2 && \
77   export LD_LIBRARY_PATH=/usr/local/ssl/lib && \
78   sh autogen.sh && \
79   ./configure --disable-gost --with-openssl=/usr/local/ssl && \
80   make && \
81   make install
82
83 # Build TPM-Plugin
84 RUN cd sshsm && \
85   chmod 755 TPM2-Plugin/ && \
86   cd TPM2-Plugin && \
87   chmod 755 bootstrap && \
88   sleep 2 && \
89   ./bootstrap && \
90   ./configure LDFLAGS="-L/usr/local/ssl/lib" && \
91   make && \
92   make install && \
93   ldconfig
94
95 RUN cd sshsm && \
96   cd tpm-util && \
97   cd import && \
98   make -f sampleMakefile
99
100 RUN mkdir tpm-util
101 RUN cd tpm-util && \
102   mkdir bin
103 RUN cp /sshsm/tpm-util/import/ossl_tpm_import /tpm-util/bin/
104
105 RUN rm -rf tpm2-tss-2.0.0
106 RUN rm -rf tpm2-tss-2.0.0.tar.gz
107 RUN rm -rf tpm2-abrmd-2.0.0
108 RUN rm -rf tpm2-abrmd-2.0.0.tar.gz
109 RUN rm -rf tpm2-tools-3.1.0
110 RUN rm -rf tpm2-tools-3.1.0.tar.gz
111 RUN rm -rf sshsm
112 RUN rm -rf openssl-1.1.0
113 RUN rm -rf openssl-1.1.0.tar
114 RUN rm -rf openssl-1.1.0.tar.gz
115
116 RUN mkdir -p /sshsm/bin
117 COPY ./import.sh /sshsm/bin
118 COPY ./softhsmconfig.sh /sshsm/bin
119 COPY ./application.sh /sshsm/bin
120 COPY ./abrmd_ready.sh /sshsm/bin