1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #!/bin/bash
- # fips-check.sh
- # This script checks the current revision of the code against the
- # 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.
- 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
- 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
- [ $? -ne 0 ] && echo -e "\n\nCouldn't checkout the FIPS release.\n\n" && exit 1
- for MOD in ${WC_MODS[@]}
- do
- cp old-tree/$WC_SRC_PATH/${MOD}.c $WC_SRC_PATH
- cp old-tree/$WC_INC_PATH/${MOD}.h $WC_INC_PATH
- done
- # 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
- for SRC in ${FIPS_SRCS[@]}
- do
- cp fips/$SRC $WC_SRC_PATH
- done
- # run the make test
- ./autogen.sh
- ./configure --enable-fips
- make
- [ $? -ne 0 ] && echo -e "\n\nMake failed. Debris left for analysis." && exit 1
- NEWHASH=`./wolfcrypt/test/testwolfcrypt | sed -n 's/hash = \(.*\)/\1/p'`
- if [ -n "$NEWHASH" ]; then
- sed -i.bak "s/^\".*\";/\"${NEWHASH}\";/" $WC_SRC_PATH/fips_test.c
- make clean
- fi
- make test
- [ $? -ne 0 ] && echo -e "\n\nTest failed. Debris left for analysis." && exit 1
- # Clean up
- popd
- rm -rf $TEST_DIR
|