#!/bin/bash
VERSION_CST=3.3.1
VERSION_OPENSSL=1_0_2
OS=($(uname -a))
OSTYPE=${OS[0],,}${OS[-2]: -2}
OSTYPE_OPENSSL=${OS[0],,}-${OS[-2]}
OPENSSL_PATH=${HOME}/openssl
SSL_PATH=${HOME}/ssl
CST_PATH=${HOME}/cst-${VERSION_CST}/code
CST_HSM_PATH=${CST_PATH}/back_end-hsm/src
tar xf cst-${VERSION_CST}.tgz -C ${HOME}
git clone https://github.com/openssl/openssl.git ${OPENSSL_PATH}
cd ${OPENSSL_PATH}
git checkout OpenSSL_${VERSION_OPENSSL}
./Configure ${OSTYPE_OPENSSL} --prefix=${SSL_PATH}
make
make install
cd -
sed -i 's/no-idea/no-idea --prefix=$(HOME)/' ${CST_PATH}/cst/Makefile
sed -i '/make && \\/a\ make install && \\' ${CST_PATH}/cst/Makefile
cd ${CST_PATH}/cst/code
sed -i '/OBJECTS += \\/a\ ssl_wrapper.o \\' front_end/src/objects.mk
sed -i '/OBJECTS_FRONTEND += \\/a\ ssl_wrapper.o \\' front_end/src/objects.mk
sed -i '/OBJECTS += \\/a\ pkey.o \\' front_end/src/objects.mk
sed -i '/OBJECTS_FRONTEND += \\/a\ pkey.o \\' front_end/src/objects.mk
sed -i '/OBJECTS += \\/a\ adapt_layer_openssl.o \\' front_end/src/objects.mk
sed -i '/OBJECTS_FRONTEND += \\/a\ adapt_layer_openssl.o \\' front_end/src/objects.mk
cp back_end/src/*.c front_end/src/
cp back_end/hdr/*.h front_end/hdr/
cd -
cd ${CST_PATH}/cst
make openssl OSTYPE=${OSTYPE} OPENSSL_PATH=${OPENSSL_PATH}
make rel_bin OSTYPE=${OSTYPE} OPENSSL_PATH=${SSL_PATH}
cp code/obj.${OSTYPE}/libfrontend.a ${CST_HSM_PATH}
cd -
cd ${CST_HSM_PATH}
make ARCH=${OSTYPE: -2} OPENSSL_PATH=${SSL_PATH}
make all ARCH=${OSTYPE: -2} OPENSSL_PATH=${SSL_PATH}
cd -