From b54dc09971649dbe5839b8b3d2f3ec173030b463 Mon Sep 17 00:00:00 2001 From: John Safranek Date: Fri, 19 Jun 2015 22:21:27 -0700 Subject: [PATCH] updated fips-check to cover all builds --- fips-check.sh | 77 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 3 deletions(-) diff --git a/fips-check.sh b/fips-check.sh index c2d6e98dd..d47cb1c32 100755 --- a/fips-check.sh +++ b/fips-check.sh @@ -5,22 +5,86 @@ # previous release of the FIPS code. While wolfSSL and wolfCrypt # may be advancing, they must work correctly with the last tested # copy of our FIPS approved code. +# +# This should check out all the approved versions. The command line +# option selects the version. +# +# $ ./fips-check [version] +# +# - version: linux (default), ios, android, windows +# + +function Usage() { + echo "Usage: $0 [platform]" + echo "Where \"platform\" is one of linux (default), ios, android, windows" +} + +LINUX_FIPS_VERSION=v3.2.6 +LINUX_FIPS_REPO=git@github.com:wolfSSL/fips.git +LINUX_CTAO_VERSION=v3.2.6 +LINUX_CTAO_REPO=git@github.com:cyassl/cyassl.git + +IOS_FIPS_VERSION=v3.4.8a +IOS_FIPS_REPO=git@github.com:wolfSSL/fips.git +IOS_CTAO_VERSION=v3.4.8.fips +IOS_CTAO_REPO=git@github.com:cyassl/cyassl.git + +ANDROID_FIPS_VERSION=v3.5.0 +ANDROID_FIPS_REPO=git@github.com:wolfSSL/fips.git +ANDROID_CTAO_VERSION=v3.5.0 +ANDROID_CTAO_REPO=git@github.com:cyassl/cyassl.git + +#WINDOWS_FIPS_VERSION=v3.6.0 +WINDOWS_FIPS_VERSION=master +WINDOWS_FIPS_REPO=git@github.com:wolfSSL/fips.git +WINDOWS_CTAO_VERSION=v3.6.0 +WINDOWS_CTAO_REPO=git@github.com:cyassl/cyassl.git -FIPS_VERSION=v3.2.6 -FIPS_REPO=git@github.com:wolfSSL/fips.git FIPS_SRCS=( fips.c fips_test.c ) WC_MODS=( aes des3 sha sha256 sha512 rsa hmac random ) TEST_DIR=XXX-fips-test WC_INC_PATH=cyassl/ctaocrypt WC_SRC_PATH=ctaocrypt/src +if [ "x$1" == "x" ]; then PLATFORM="linux"; else PLATFORM=$1; fi + +case $PLATFORM in +ios) + FIPS_VERSION=$IOS_FIPS_VERSION + FIPS_REPO=$IOS_FIPS_REPO + CTAO_VERSION=$IOS_CTAO_VERSION + CTAO_REPO=$IOS_CTAO_REPO + ;; +android) + FIPS_VERSION=$ANDROID_FIPS_VERSION + FIPS_REPO=$ANDROID_FIPS_REPO + CTAO_VERSION=$ANDROID_CTAO_VERSION + CTAO_REPO=$ANDROID_CTAO_REPO + ;; +windows) + FIPS_VERSION=$WINDOWS_FIPS_VERSION + FIPS_REPO=$WINDOWS_FIPS_REPO + CTAO_VERSION=$WINDOWS_CTAO_VERSION + CTAO_REPO=$WINDOWS_CTAO_REPO + ;; +linux) + FIPS_VERSION=$LINUX_FIPS_VERSION + FIPS_REPO=$LINUX_FIPS_REPO + CTAO_VERSION=$LINUX_CTAO_VERSION + CTAO_REPO=$LINUX_CTAO_REPO + ;; +*) + Usage + exit 1 +esac + git clone . $TEST_DIR [ $? -ne 0 ] && echo -e "\n\nCouldn't duplicate current working directory.\n\n" && exit 1 pushd $TEST_DIR # make a clone of the last FIPS release tag -git clone -b $FIPS_VERSION . old-tree +git clone -b $CTAO_VERSION $CTAO_REPO old-tree [ $? -ne 0 ] && echo -e "\n\nCouldn't checkout the FIPS release.\n\n" && exit 1 for MOD in ${WC_MODS[@]} @@ -29,6 +93,13 @@ do cp old-tree/$WC_INC_PATH/${MOD}.h $WC_INC_PATH done +# The following is temporary. We are using random.c from a separate release +pushd old-tree +git checkout v3.6.0 +popd +cp old-tree/$WC_SRC_PATH/random.c $WC_SRC_PATH +cp old-tree/$WC_INC_PATH/random.h $WC_INC_PATH + # clone the FIPS repository git clone -b $FIPS_VERSION $FIPS_REPO fips [ $? -ne 0 ] && echo -e "\n\nCouldn't checkout the FIPS repository.\n\n" && exit 1