This repository has been archived by the owner on Jul 22, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbuild-oqssa.sh
executable file
·77 lines (61 loc) · 2.67 KB
/
build-oqssa.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/bash
export BUILDDIR=$HOME
export INSTALLDIR=$BUILDDIR/opt/oqssa
cleanup() {
echo "Cleaning up"
rm -rf $BUILDDIR/liboqs
rm -rf $BUILDDIR/curl-${CURL_VERSION}*
rm -rf $BUILDDIR/patch-${CURL_VERSION}.*
rm -rf $BUILDDIR/openssl
}
exit_on_error() {
exit_code=$1
if [ $exit_code -ne 0 ]; then
>&2 echo "command failed with exit code ${exit_code}."
cleanup
exit $exit_code
fi
}
echo "Setting installation dir: $BUILDDIR/opt/oqssa"
echo "Downloading liboqs and open-quantum-safe openssl"
# Download liboqs and oqs/openssl
cd $BUILDDIR
git clone --quiet --single-branch --branch main https://github.com/open-quantum-safe/liboqs
git clone --quiet --single-branch --branch OQS-OpenSSL_1_1_1-stable https://github.com/open-quantum-safe/openssl
exit_on_error $?
echo "Build liboqs"
# Compile liboqs
cd $BUILDDIR/liboqs
MYCMD=$(mkdir build && cd build && cmake .. -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$BUILDDIR/openssl/oqs > /dev/null && make > /dev/null && make install > /dev/null)
exit_on_error $?
echo "Build oqs-openssl"
# Compile oqs-openssl
cd $BUILDDIR/openssl
MYCMD=$(LDFLAGS="-Wl,-rpath -Wl,$INSTALLDIR/lib" ./Configure linux-x86_64 -DOQS_DEFAULT_GROUPS=\"prime256v1:secp384r1:secp521r1:X25519:X448:kyber512:kyber768:kyber1024:p256_kyber512:p384_kyber768:p521_kyber1024\" -lm --prefix=$INSTALLDIR &>/dev/null && make &> /dev/null && make install &> /dev/null)
exit_on_error $?
echo "Downloading libcurl"
# Download libcurl
cd $BUILDDIR
CURL_VERSION=7.69.1
wget -q https://curl.haxx.se/download/curl-$CURL_VERSION.tar.gz && tar -zxvf curl-$CURL_VERSION.tar.gz > /dev/null
wget -q https://raw.githubusercontent.com/open-quantum-safe/oqs-demos/master/curl/patch-$CURL_VERSION.oqs.txt
exit_on_error $?
cd $BUILDDIR/curl-${CURL_VERSION}
MYCMD=$(patch -p1 < ${BUILDDIR}/patch-${CURL_VERSION}.oqs.txt >/dev/null)
exit_on_error $?
echo "Build libcurl with oqs-openssl"
# Compile libcurl
MYCMD=$(CPPFLAGS="-I$INSTALLDIR" LDFLAGS=-Wl,-R${INSTALLDIR}/lib ./configure --prefix=$INSTALLDIR --with-ssl=${INSTALLDIR} &> /dev/null && make > /dev/null && make install > /dev/null)
exit_on_error $?
export PATH=$BUILDDIR/opt/oqssa/bin:$PATH
echo "Downloading IBM Key Protect Go Client"
cd $BUILDDIR
git clone --quiet --single-branch --branch qsc-support https://github.com/IBM/keyprotect-go-client.git
exit_on_error $?
#mkdir $BUILDDIR/keyprotect-go-client/examples
#cp $BUILDDIR/oqssa/main_qsc.go $BUILDDIR/keyprotect-go-client/examples/
#echo "Running IBM Key Protect Go Client quantum test"
#LD_LIBRARY_PATH=$BUILDDIR/opt/oqssa/lib PKG_CONFIG_PATH=$BUILDDIR/opt/oqssa/lib/pkgconfig go test --tags quantum
#cd $BUILDDIR
cleanup
echo "Installation Complete"