Merge pull request #4080 from kaleb-himes/SHAKE_DEFAULT_FIX

Sync SHAKE256 default (disabled) with parent default edDSA448 (disabled) and remove WOLFSSL_NO_SHAKE256 flag
This commit is contained in:
Sean Parkinson
2021-06-09 08:52:05 +10:00
committed by GitHub
5 changed files with 16 additions and 22 deletions

View File

@ -350,9 +350,6 @@ extern "C" {
#undef WOLFSSL_SHA3 #undef WOLFSSL_SHA3
#if 1 #if 1
#define WOLFSSL_SHA3 #define WOLFSSL_SHA3
#ifdef HAVE_FIPS
#define WOLFSSL_NO_SHAKE256
#endif
#endif #endif
/* MD5 */ /* MD5 */

View File

@ -1556,7 +1556,7 @@ if test "$ENABLED_AFALG" = "xilinx"
then then
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_AFALG_XILINX -DWOLFSSL_AFALG_XILINX_AES" AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_AFALG_XILINX -DWOLFSSL_AFALG_XILINX_AES"
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_AFALG_XILINX_SHA3 -DWOLFSSL_AFALG_XILINX_RSA" AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_AFALG_XILINX_SHA3 -DWOLFSSL_AFALG_XILINX_RSA"
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_NOSHA3_224 -DWOLFSSL_NOSHA3_256 -DWOLFSSL_NOSHA3_512 -DWOLFSSL_NO_SHAKE256" AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_NOSHA3_224 -DWOLFSSL_NOSHA3_256 -DWOLFSSL_NOSHA3_512"
ENABLED_AFALG="yes" ENABLED_AFALG="yes"
ENABLED_XILINX="yes" ENABLED_XILINX="yes"
fi fi
@ -1572,7 +1572,7 @@ if test "$ENABLED_AFALG" = "xilinx-sha3"
then then
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_AFALG_XILINX" AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_AFALG_XILINX"
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_AFALG_XILINX_SHA3" AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_AFALG_XILINX_SHA3"
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_NOSHA3_224 -DWOLFSSL_NOSHA3_256 -DWOLFSSL_NOSHA3_512 -DWOLFSSL_NO_SHAKE256" AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_NOSHA3_224 -DWOLFSSL_NOSHA3_256 -DWOLFSSL_NOSHA3_512"
ENABLED_AFALG="yes" ENABLED_AFALG="yes"
ENABLED_XILINX="yes" ENABLED_XILINX="yes"
fi fi
@ -1776,9 +1776,8 @@ fi
# SHAKE256 # SHAKE256
AC_ARG_ENABLE([shake256], AC_ARG_ENABLE([shake256],
[AS_HELP_STRING([--enable-shake256],[Enable wolfSSL SHAKE256 support (default: enabled on x86_64/aarch64)])], [AS_HELP_STRING([--enable-shake256],[Enable wolfSSL SHAKE256 support (default: disabled)])],
[ ENABLED_SHAKE256=$enableval ], [ ENABLED_SHAKE256=$enableval ]
[ ENABLED_SHAKE256=$ENABLED_SHA3 ]
) )
# SHA512 # SHA512
@ -2209,6 +2208,10 @@ then
then then
AC_MSG_ERROR([cannot enable ed448 without enabling sha512.]) AC_MSG_ERROR([cannot enable ed448 without enabling sha512.])
fi fi
if test "$FIPS_VERSION" = "v2"
then
AC_MSG_ERROR([cannot enable ed448 w/ dependency shake256 in FIPSv2 mode])
fi
ENABLED_FE448=yes ENABLED_FE448=yes
ENABLED_GE448=yes ENABLED_GE448=yes
AM_CFLAGS="$AM_CFLAGS -DHAVE_ED448" AM_CFLAGS="$AM_CFLAGS -DHAVE_ED448"
@ -3106,8 +3109,6 @@ AS_CASE([$FIPS_VERSION],
AM_CFLAGS="$AM_CFLAGS -DHAVE_FIPS -DWOLFSSL_KEY_GEN -DWOLFSSL_SHA224 -DWOLFSSL_AES_DIRECT -DHAVE_AES_ECB -DHAVE_ECC_CDH -DWC_RSA_NO_PADDING -DWOLFSSL_VALIDATE_FFC_IMPORT -DHAVE_FFDHE_Q" AM_CFLAGS="$AM_CFLAGS -DHAVE_FIPS -DWOLFSSL_KEY_GEN -DWOLFSSL_SHA224 -DWOLFSSL_AES_DIRECT -DHAVE_AES_ECB -DHAVE_ECC_CDH -DWC_RSA_NO_PADDING -DWOLFSSL_VALIDATE_FFC_IMPORT -DHAVE_FFDHE_Q"
ENABLED_KEYGEN="yes" ENABLED_KEYGEN="yes"
ENABLED_SHA224="yes" ENABLED_SHA224="yes"
# Shake256 is a SHA-3 algorithm not in our FIPS algorithm list
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_NO_SHAKE256"
AS_IF([test "x$ENABLED_AESCCM" != "xyes"], AS_IF([test "x$ENABLED_AESCCM" != "xyes"],
[ENABLED_AESCCM="yes" [ENABLED_AESCCM="yes"
AM_CFLAGS="$AM_CFLAGS -DHAVE_AESCCM"]) AM_CFLAGS="$AM_CFLAGS -DHAVE_AESCCM"])

View File

@ -10112,7 +10112,7 @@ static int test_wc_Sha3_GetFlags (void)
static int test_wc_InitShake256 (void) static int test_wc_InitShake256 (void)
{ {
int ret = 0; int ret = 0;
#if defined(WOLFSSL_SHAKE256) && !defined(WOLFSSL_NO_SHAKE256) #ifdef WOLFSSL_SHAKE256
wc_Shake shake; wc_Shake shake;
printf(testingFmt, "wc_InitShake256()"); printf(testingFmt, "wc_InitShake256()");
@ -10139,7 +10139,7 @@ static int testing_wc_Shake256_Update (void)
{ {
int ret = 0; int ret = 0;
#if defined(WOLFSSL_SHAKE256) && !defined(WOLFSSL_NO_SHAKE256) #ifdef WOLFSSL_SHAKE256
wc_Shake shake; wc_Shake shake;
byte msg[] = "Everybody's working for the weekend."; byte msg[] = "Everybody's working for the weekend.";
byte msg2[] = "Everybody gets Friday off."; byte msg2[] = "Everybody gets Friday off.";
@ -10191,7 +10191,7 @@ static int testing_wc_Shake256_Update (void)
wc_Shake256_Free(&shake); wc_Shake256_Free(&shake);
printf(resultFmt, ret == 0 ? passed : failed); printf(resultFmt, ret == 0 ? passed : failed);
#endif /* WOLFSSL_SHAKE256 && !WOLFSSL_NO_SHAKE256 */ #endif /* WOLFSSL_SHAKE256 */
return ret; return ret;
@ -10201,7 +10201,7 @@ static int test_wc_Shake256_Final (void)
{ {
int ret = 0; int ret = 0;
#if defined(WOLFSSL_SHAKE256) && !defined(WOLFSSL_NO_SHAKE256) #ifdef WOLFSSL_SHAKE256
wc_Shake shake; wc_Shake shake;
const char* msg = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnom" const char* msg = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnom"
"nopnopq"; "nopnopq";
@ -10256,7 +10256,7 @@ static int test_wc_Shake256_Final (void)
static int test_wc_Shake256_Copy (void) static int test_wc_Shake256_Copy (void)
{ {
int ret = 0; int ret = 0;
#if defined(WOLFSSL_SHAKE256) && !defined(WOLFSSL_NO_SHAKE256) #ifdef WOLFSSL_SHAKE256
wc_Shake shake, shakeCpy; wc_Shake shake, shakeCpy;
const char* msg = TEST_STRING; const char* msg = TEST_STRING;
word32 msglen = (word32)TEST_STRING_SZ; word32 msglen = (word32)TEST_STRING_SZ;
@ -10319,7 +10319,7 @@ static int test_wc_Shake256_Copy (void)
static int test_wc_Shake256Hash(void) static int test_wc_Shake256Hash(void)
{ {
int ret = 0; int ret = 0;
#if defined(WOLFSSL_SHAKE256) && !defined(WOLFSSL_NO_SHAKE256) #ifdef WOLFSSL_SHAKE256
const byte data[] = { /* Hello World */ const byte data[] = { /* Hello World */
0x48,0x65,0x6c,0x6c,0x6f,0x20,0x57,0x6f, 0x48,0x65,0x6c,0x6c,0x6f,0x20,0x57,0x6f,

View File

@ -1381,7 +1381,7 @@ int wc_HashGetFlags(wc_HashAlg* hash, enum wc_HashType type, word32* flags)
} }
#endif /* !WOLFSSL_NOSHA3_512 */ #endif /* !WOLFSSL_NOSHA3_512 */
#if defined(WOLFSSL_SHAKE256) && !defined(WOLFSSL_NO_SHAKE256) #ifdef WOLFSSL_SHAKE256
int wc_Shake256Hash(const byte* data, word32 len, byte* hash, int wc_Shake256Hash(const byte* data, word32 len, byte* hash,
word32 hashLen) word32 hashLen)
{ {
@ -1418,7 +1418,7 @@ int wc_HashGetFlags(wc_HashAlg* hash, enum wc_HashType type, word32* flags)
return ret; return ret;
} }
#endif /* WOLFSSL_SHAKE_256 && !WOLFSSL_NO_SHAKE256 */ #endif /* WOLFSSL_SHAKE_256 */
#endif /* WOLFSSL_SHA3 */ #endif /* WOLFSSL_SHA3 */
#endif /* !NO_HASH_WRAPPER */ #endif /* !NO_HASH_WRAPPER */

View File

@ -3366,7 +3366,6 @@ WOLFSSL_TEST_SUBROUTINE int sha3_test(void)
#ifdef WOLFSSL_SHAKE256 #ifdef WOLFSSL_SHAKE256
WOLFSSL_TEST_SUBROUTINE int shake256_test(void) WOLFSSL_TEST_SUBROUTINE int shake256_test(void)
{ {
#ifndef WOLFSSL_NO_SHAKE256
wc_Shake sha; wc_Shake sha;
byte hash[250]; byte hash[250];
@ -3507,9 +3506,6 @@ exit:
wc_Shake256_Free(&sha); wc_Shake256_Free(&sha);
return ret; return ret;
#else
return 0;
#endif
} }
#endif #endif