FIPS Check Script with Explicit Versioning

1. Remove the demo OE.
2. Update all OEs with the new file lists.
3. Merge OEs with same files and tags, and add a check for the
   difference to optionally update that. For example, solaris is the
   same file list and tags as linuxv2, but uses gmake instead of make.
pull/6713/head
John Safranek 2023-08-17 13:39:29 -07:00
parent 87695adc82
commit 6724a3d005
No known key found for this signature in database
GPG Key ID: 8CE817DE0D3CCB4A
1 changed files with 114 additions and 64 deletions

View File

@ -45,44 +45,99 @@ while [ "$1" ]; do
done
case "$FLAVOR" in
#linuxv2|fipsv2-OE-ready)
# FIPS_OPTION='v2'
# FIPS_VERSION='WCv4-stable'
# CRYPT_VERSION='WCv4-stable'
# RNG_VERSION='WCv4-rng-stable'
# WC_MODS=('aes' 'aes_asm' 'cmac' 'des3' 'dh' 'ecc' 'hmac' 'random' 'rsa' 'sha' 'sha256' 'sha3' 'sha512')
# FIPS_SRCS=('fips.c' 'fips_test.c' 'wolfcrypt_first.c' 'wolfcrypt_last.c')
# FIPS_INCS=('fips.h')
# ;;
#netbsd-selftest)
# # non-FIPS, CAVP only but pull in selftest
# FIPS_OPTION='cavp-selftest'
# FIPS_VERSION='v3.14.2b'
# CRYPT_VERSION='v3.14.2'
# RNG_VERSION='v3.14.2'
# WC_MODS=('aes' 'dh' 'dsa' 'ecc' 'hmac' 'random' 'rsa' 'sha' 'sha256' 'sha512')
# FIPS_SRCS=('selftest.c')
# ;;
#marvell-linux-selftest)
# # non-FIPS, CAVP only but pull in selftest
# FIPS_OPTION='cavp-selftest-v2'
# FIPS_VERSION='v3.14.2b'
# CRYPT_VERSION='v4.1.0-stable'
# RNG_VERSION='v4.1.0-stable'
# WC_MODS=('aes' 'dh' 'dsa' 'ecc' 'hmac' 'random' 'rsa' 'sha' 'sha256' 'sha512')
# FIPS_SRCS=('selftest.c')
# ;;
#linuxv5)
# FIPS_OPTION='v5'
# FIPS_VERSION='WCv5.0-RC12'
# CRYPT_VERSION='WCv5.0-RC12'
# RNG_VERSION='WCv5.0-RC12'
# WC_MODS=('aes' 'aes_asm' 'cmac' 'dh' 'ecc' 'hmac' 'kdf' 'random' 'rsa' 'sha' 'sha256' 'sha256_asm' 'sha3' 'sha512' 'sha512_asm')
# FIPS_SRCS=('fips.c' 'fips_test.c' 'wolfcrypt_first.c' 'wolfcrypt_last.c')
# FIPS_INCS=('fips.h')
# COPY_DIRECT=('wolfcrypt/src/aes_gcm_asm.S')
# ;;
linuxv5a)
linuxv2|fipsv2-OE-ready|solaris)
FIPS_OPTION='v2'
FIPS_FILES=('WCv4-stable'
'wolfcrypt/src/fips.c'
'wolfcrypt/src/fips_test.c'
'wolfcrypt/src/wolfcrypt_first.c'
'wolfcrypt/src/wolfcrypt_last.c'
'wolfssl/wolfcrypt/fips.h'
)
WOLFCRYPT_FILES=(
'wolfcrypt/src/aes.c:WCv4-stable'
'wolfcrypt/src/aes_asm.S:WCv4-stable'
'wolfcrypt/src/cmac.c:WCv4-stable'
'wolfcrypt/src/des3.c:WCv4-stable'
'wolfcrypt/src/dh.c:WCv4-stable'
'wolfcrypt/src/ecc.c:WCv4-stable'
'wolfcrypt/src/hmac.c:WCv4-stable'
'wolfcrypt/src/random.c:WCv4-rng-stable'
'wolfcrypt/src/rsa.c:WCv4-stable'
'wolfcrypt/src/sha.c:WCv4-stable'
'wolfcrypt/src/sha256.c:WCv4-stable'
'wolfcrypt/src/sha3.c:WCv4-stable'
'wolfcrypt/src/sha512.c:WCv4-stable'
'wolfssl/wolfcrypt/aes.h:WCv4-stable'
'wolfssl/wolfcrypt/cmac.h:WCv4-stable'
'wolfssl/wolfcrypt/des3.h:WCv4-stable'
'wolfssl/wolfcrypt/dh.h:WCv4-stable'
'wolfssl/wolfcrypt/ecc.h:WCv4-stable'
'wolfssl/wolfcrypt/hmac.h:WCv4-stable'
'wolfssl/wolfcrypt/random.h:WCv4-rng-stable'
'wolfssl/wolfcrypt/rsa.h:WCv4-stable'
'wolfssl/wolfcrypt/sha.h:WCv4-stable'
'wolfssl/wolfcrypt/sha256.h:WCv4-stable'
'wolfssl/wolfcrypt/sha3.h:WCv4-stable'
'wolfssl/wolfcrypt/sha512.h:WCv4-stable'
)
if [ "$FLAVOR" = 'solaris' ]; then MAKE='gmake'; fi
;;
netbsd-selftest)
# non-FIPS, CAVP only but pull in selftest
FIPS_OPTION='cavp-selftest'
FIPS_FILES=('v3.14.2b' 'wolfcrypt/src/selftest.c')
WOLFCRYPT_FILES=(
'wolfcrypt/src/aes.c:v3.14.2'
'wolfcrypt/src/dh.c:v3.14.2'
'wolfcrypt/src/dsa.c:v3.14.2'
'wolfcrypt/src/ecc.c:v3.14.2'
'wolfcrypt/src/hmac.c:v3.14.2'
'wolfcrypt/src/random.c:v3.14.2'
'wolfcrypt/src/rsa.c:v3.14.2'
'wolfcrypt/src/sha.c:v3.14.2'
'wolfcrypt/src/sha256.c:v3.14.2'
'wolfcrypt/src/sha512.c:v3.14.2'
'wolfssl/wolfcrypt/aes.h:v3.14.2'
'wolfssl/wolfcrypt/dh.h:v3.14.2'
'wolfssl/wolfcrypt/dsa.h:v3.14.2'
'wolfssl/wolfcrypt/ecc.h:v3.14.2'
'wolfssl/wolfcrypt/hmac.h:v3.14.2'
'wolfssl/wolfcrypt/random.h:v3.14.2'
'wolfssl/wolfcrypt/rsa.h:v3.14.2'
'wolfssl/wolfcrypt/sha.h:v3.14.2'
'wolfssl/wolfcrypt/sha256.h:v3.14.2'
'wolfssl/wolfcrypt/sha512.h:v3.14.2'
)
;;
marvell-linux-selftest)
# non-FIPS, CAVP only but pull in selftest
FIPS_OPTION='cavp-selftest-v2'
FIPS_FILES=('v3.14.2b' 'wolfcrypt/src/selftest.c')
WOLFCRYPT_FILES=(
'wolfcrypt/src/aes.c:v4.1.0-stable'
'wolfcrypt/src/dh.c:v4.1.0-stable'
'wolfcrypt/src/dsa.c:v4.1.0-stable'
'wolfcrypt/src/ecc.c:v4.1.0-stable'
'wolfcrypt/src/hmac.c:v4.1.0-stable'
'wolfcrypt/src/random.c:v4.1.0-stable'
'wolfcrypt/src/rsa.c:v4.1.0-stable'
'wolfcrypt/src/sha.c:v4.1.0-stable'
'wolfcrypt/src/sha256.c:v4.1.0-stable'
'wolfcrypt/src/sha512.c:v4.1.0-stable'
'wolfssl/wolfcrypt/aes.h:v4.1.0-stable'
'wolfssl/wolfcrypt/dh.h:v4.1.0-stable'
'wolfssl/wolfcrypt/dsa.h:v4.1.0-stable'
'wolfssl/wolfcrypt/ecc.h:v4.1.0-stable'
'wolfssl/wolfcrypt/hmac.h:v4.1.0-stable'
'wolfssl/wolfcrypt/random.h:v4.1.0-stable'
'wolfssl/wolfcrypt/rsa.h:v4.1.0-stable'
'wolfssl/wolfcrypt/sha.h:v4.1.0-stable'
'wolfssl/wolfcrypt/sha256.h:v4.1.0-stable'
'wolfssl/wolfcrypt/sha512.h:v4.1.0-stable'
)
;;
linuxv5)
FIPS_OPTION='v5'
FIPS_FILES=('WCv5.0-RC12'
'wolfcrypt/src/fips.c'
@ -122,7 +177,7 @@ linuxv5a)
'wolfssl/wolfcrypt/sha512.h:WCv5.0-RC12'
)
;;
fips-ready)
fips-ready|fips-dev)
FIPS_OPTION='ready'
FIPS_FILES=('master'
'wolfcrypt/src/fips.c'
@ -131,32 +186,27 @@ fips-ready)
'wolfcrypt/src/wolfcrypt_last.c'
'wolfssl/wolfcrypt/fips.h'
)
WOLFCRYPT_FILES=()
if [ "$FLAVOR" = 'fips-dev' ]; then FIPS_OPTION='dev'; fi
;;
wolfrand)
FIPS_OPTION='rand'
FIPS_FILES=('WRv4-stable'
'wolfcrypt/src/fips.c'
'wolfcrypt/src/fips_test.c'
'wolfcrypt/src/wolfcrypt_first.c'
'wolfcrypt/src/wolfcrypt_last.c'
'wolfssl/wolfcrypt/fips.h'
)
WOLFCRYPT_FILES=(
'wolfcrypt/src/hmac.c:WCv4-stable'
'wolfcrypt/src/random.c:WCv4-rng-stable'
'wolfcrypt/src/sha256.c:WCv4-stable'
'wolfssl/wolfcrypt/hmac.h:WCv4-stable'
'wolfssl/wolfcrypt/random.h:WCv4-rng-stable'
'wolfssl/wolfcrypt/sha256.h:WCv4-stable'
)
;;
#fips-dev)
# FIPS_OPTION='dev'
# FIPS_VERSION='master'
# FIPS_SRCS=('fips.c' 'fips_test.c' 'wolfcrypt_first.c' 'wolfcrypt_last.c')
# FIPS_INCS=('fips.h')
# ;;
#wolfrand)
# FIPS_OPTION='rand'
# FIPS_VERSION='WRv4-stable'
# CRYPT_VERSION='WCv4-stable'
# RNG_VERSION='WCv4-rng-stable'
# WC_MODS=('hmac' 'random' 'sha256')
# FIPS_SRCS=('fips.c' 'fips_test.c' 'wolfcrypt_first.c' 'wolfcrypt_last.c')
# FIPS_INCS=('fips.h')
# ;;
#solaris)
# FIPS_OPTION='v2'
# FIPS_VERSION='WCv4-stable'
# CRYPT_VERSION='WCv4-stable'
# RNG_VERSION='WCv4-rng-stable'
# WC_MODS=('aes' 'aes_asm' 'cmac' 'des3' 'dh' 'ecc' 'hmac' 'random' 'rsa' 'sha' 'sha256' 'sha3' 'sha512')
# FIPS_SRCS=('fips.c' 'fips_test.c' 'wolfcrypt_first.c' 'wolfcrypt_last.c')
# FIPS_INCS=('fips.h')
# MAKE='gmake'
# ;;
*)
Usage
exit 1