testssl.sh/utils/make-openssl.sh

119 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
# License GPLv2, see ../LICENSE
echo
echo "###################################################################"
echo "####### Build script for Peter Mosmans openssl #######"
echo "####### which contains all broken and all advanced features #######"
echo "###################################################################"
echo
sleep 3
STDOPTIONS="--prefix=/usr/ --openssldir=/etc/ssl -DOPENSSL_USE_BUILD_DATE enable-zlib \
enable-ssl2 enable-ssl3 enable-ssl-trace enable-rc5 enable-rc2 \
enable-gost enable-cms enable-md2 enable-mdc2 enable-ec enable-ec2m enable-ecdh enable-ecdsa \
enable-seed enable-camellia enable-idea enable-rfc3779 experimental-jpake"
clean() {
case $NOCLEAN in
yes|Y|YES) ;;
*) make clean ;;
esac
#[ $? -ne 0 ] && error "no openssl directory"
return 0
}
error() {
tput bold
echo "### ERROR $1 ###"
tput sgr0
exit 2
}
makeall() {
make depend || error "depend"
make || error "making"
make report || error "testing/make report"
#FIXME: we need another error handler, as of now a failure doesn't mean a return status of 1
# see https://github.com/openssl/openssl/pull/336
return 0
}
copyfiles() {
echo; apps/openssl version -a; echo
if grep static <<< "$1"; then
cp -p apps/openssl ../openssl.$(uname).$(uname -m)
else
cp -p apps/openssl ../openssl.$(uname).$(uname -m).krb5
fi
return $?
}
testv6_patch() {
if grep -q 'ending bracket for IPv6' apps/s_socket.c; then
STDOPTIONS="$STDOPTIONS -DOPENSSL_USE_IPV6"
else
echo
echo "no IPv6 patch (Fedora) detected!! -- Press ^C and dl & apply from"
echo "https://github.com/drwetter/testssl.sh/blob/master/bin/fedora-dirk-ipv6.diff"
echo "or press any key to ignore"
echo
read a
fi
}
testv6_patch
case $(uname) in
Linux|FreeBSD)
case $(uname -m) in
"i686") clean
if [[ "$1" = krb ]]; then
name2add=krb
./config $STDOPTIONS no-ec_nistp_64_gcc_128 --with-krb5-flavor=MIT
else
name2add=static
./config $STDOPTIONS no-ec_nistp_64_gcc_128 -static
fi
[ $? -ne 0 ] && error "configuring"
makeall && copyfiles "$name2add"
[ $? -ne 0 ] && error "copying files"
apps/openssl ciphers -V 'ALL:COMPLEMENTOFALL' | wc -l
echo
echo "------------ all ok ------------"
echo
;;
"x86_64") clean
if [[ "$1" = krb ]]; then
name2add=krb
./config $STDOPTIONS enable-ec_nistp_64_gcc_128 --with-krb5-flavor=MIT
else
name2add=static
./config $STDOPTIONS enable-ec_nistp_64_gcc_128 -static
fi
[ $? -ne 0 ] && error "configuring"
makeall && copyfiles "$name2add"
[ $? -ne 0 ] && error "copying files"
apps/openssl ciphers -V 'ALL:COMPLEMENTOFALL' | wc -l
echo
echo "------------ all ok ------------"
echo
;;
*) echo " Sorry, don't know this architecture $(uname -m)"
exit 1
;;
esac
;;
Darwin)
;;
esac
# vim:tw=90:ts=5:sw=5
# $Id: make-openssl.sh,v 1.14 2015/07/20 19:40:54 dirkw Exp $