better platform support, revert to pure /bin/sh, better verbosity...

This commit is contained in:
Dirk 2017-05-12 17:21:45 +02:00
parent bed1f8cc0d
commit f70bc4e08f

View File

@ -1,6 +1,9 @@
#!/bin/bash #!/bin/sh
#
# License GPLv2, see ../LICENSE # License GPLv2, see ../LICENSE
#
# instructions @ https://github.com/drwetter/testssl.sh/tree/2.9dev/bin
echo echo
echo "###################################################################" echo "###################################################################"
@ -15,14 +18,6 @@ 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-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" 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() { error() {
tput bold tput bold
@ -31,28 +26,50 @@ error() {
exit 2 exit 2
} }
clean() {
case $NOCLEAN in
yes|Y|YES) ;;
*) make clean
[ $? -ne 0 ] && error "no openssl directory"
;;
esac
return 0
}
makeall() { makeall() {
make depend || error "depend" make depend || error "depend"
make || error "making" make || error "making"
make report || error "testing/make report" 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 #FIXME: we need another error handler, as of now a failure doesn't mean a return status of != 0
# see https://github.com/openssl/openssl/pull/336 # see https://github.com/openssl/openssl/pull/336
return 0 return 0
} }
copyfiles() { copyfiles() {
local ret
local target=../openssl.$(uname).$(uname -m).$1
echo; apps/openssl version -a; echo echo; apps/openssl version -a; echo
if grep static <<< "$1"; then if [ -e "$target" ]; then
cp -p apps/openssl ../openssl.$(uname).$(uname -m) case $(uname) in
else *BSD|*Darwin)
cp -p apps/openssl ../openssl.$(uname).$(uname -m).krb5 mv $target $target-$(stat -f "%Sm" -t "%Y-%m-%d %H:%M" "$target" | sed -e 's/ .*$//' -e 's/-//g')
;;
*) mv $target $target-$(stat -c %y $target | awk '{ print $1 }' | sed -e 's/ .*$//' -e 's/-//g') ;;
esac
fi fi
return $? cp -pf apps/openssl ../openssl.$(uname).$(uname -m).$1
ret=$?
echo
ls -l apps/openssl ../openssl.$(uname).$(uname -m).$1
return $ret
} }
testv6_patch() { testv6_patch() {
if grep -q 'ending bracket for IPv6' apps/s_socket.c; then if grep -q 'ending bracket for IPv6' apps/s_socket.c; then
STDOPTIONS="$STDOPTIONS -DOPENSSL_USE_IPV6" STDOPTIONS="$STDOPTIONS -DOPENSSL_USE_IPV6"
echo "detected IPv6 patch thus compiling in IPv6 support"
echo
else else
echo echo
echo "no IPv6 patch (Fedora) detected!! -- Press ^C and dl & apply from" echo "no IPv6 patch (Fedora) detected!! -- Press ^C and dl & apply from"
@ -66,12 +83,11 @@ testv6_patch() {
testv6_patch testv6_patch
case $(uname) in case $(uname) in
Linux|FreeBSD) Linux|FreeBSD)
case $(uname -m) in case $(uname -m) in
"i686") clean i686|armv7l) clean
if [[ "$1" = krb ]]; then if [ "$1" == krb ]; then
name2add=krb name2add=krb
./config $STDOPTIONS no-ec_nistp_64_gcc_128 --with-krb5-flavor=MIT ./config $STDOPTIONS no-ec_nistp_64_gcc_128 --with-krb5-flavor=MIT
else else
@ -81,13 +97,13 @@ case $(uname) in
[ $? -ne 0 ] && error "configuring" [ $? -ne 0 ] && error "configuring"
makeall && copyfiles "$name2add" makeall && copyfiles "$name2add"
[ $? -ne 0 ] && error "copying files" [ $? -ne 0 ] && error "copying files"
apps/openssl ciphers -V 'ALL:COMPLEMENTOFALL' | wc -l echo "\n(w/o 4 GOST ciphers): $(apps/openssl ciphers -V 'ALL:COMPLEMENTOFALL' | wc -l)"
echo echo
echo "------------ all ok ------------" echo "------------ all ok ------------"
echo echo
;; ;;
"x86_64") clean x86_64|amd64) clean
if [[ "$1" = krb ]]; then if [ "$1" = krb ]; then
name2add=krb name2add=krb
./config $STDOPTIONS enable-ec_nistp_64_gcc_128 --with-krb5-flavor=MIT ./config $STDOPTIONS enable-ec_nistp_64_gcc_128 --with-krb5-flavor=MIT
else else
@ -97,7 +113,7 @@ case $(uname) in
[ $? -ne 0 ] && error "configuring" [ $? -ne 0 ] && error "configuring"
makeall && copyfiles "$name2add" makeall && copyfiles "$name2add"
[ $? -ne 0 ] && error "copying files" [ $? -ne 0 ] && error "copying files"
apps/openssl ciphers -V 'ALL:COMPLEMENTOFALL' | wc -l echo "\n(w/o 4 GOST ciphers): $(apps/openssl ciphers -V 'ALL:COMPLEMENTOFALL' | wc -l)"
echo echo
echo "------------ all ok ------------" echo "------------ all ok ------------"
echo echo
@ -108,11 +124,20 @@ case $(uname) in
esac esac
;; ;;
Darwin) Darwin)
case $(uname -m) in
x86_64) clean
echo "FIXME"
;;
i386) clean
echo "FIXME"
;;
esac
;;
*) echo " Sorry, don't know this OS $(uname)"
;; ;;
esac esac
# vim:tw=90:ts=5:sw=5 # vim:ts=5:sw=5
# $Id: make-openssl.sh,v 1.14 2015/07/20 19:40:54 dirkw Exp $ # $Id: make-openssl.sh,v 1.18 2017/05/12 15:03:00 dirkw Exp $