mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-29 18:27:29 +02:00
FIPS Revalidation
1. Enabled ECC Cofactor DH for the FIPSv2 build. 2. Updated the wolfCrypt HMAC-SHA-3 test to leave out the set of test cases that use the four-byte key in FIPS mode.
This commit is contained in:
@ -2043,7 +2043,7 @@ then
|
||||
AM_CFLAGS="$AM_CFLAGS -DHAVE_FIPS"
|
||||
# Add the FIPS flag.
|
||||
AS_IF([test "x$FIPS_VERSION" = "xv2"],
|
||||
[AM_CFLAGS="$AM_CFLAGS -DHAVE_FIPS_VERSION=2 -DWOLFSSL_KEY_GEN -DWOLFSSL_SHA224 -DWOLFSSL_AES_DIRECT -DHAVE_AES_ECB"
|
||||
[AM_CFLAGS="$AM_CFLAGS -DHAVE_FIPS_VERSION=2 -DWOLFSSL_KEY_GEN -DWOLFSSL_SHA224 -DWOLFSSL_AES_DIRECT -DHAVE_AES_ECB -DHAVE_ECC_CDH"
|
||||
ENABLED_KEYGEN="yes"
|
||||
ENABLED_SHA224="yes"
|
||||
AS_IF([test "x$ENABLED_AESCCM" != "xyes"],
|
||||
|
@ -3365,21 +3365,21 @@ int hmac_sha3_test(void)
|
||||
|
||||
const char* key[3] =
|
||||
{
|
||||
"Jefe",
|
||||
|
||||
"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
|
||||
"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
|
||||
|
||||
"Jefe",
|
||||
|
||||
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||
};
|
||||
|
||||
const char* input[3] =
|
||||
{
|
||||
"Hi There",
|
||||
|
||||
"what do ya want for nothing?",
|
||||
|
||||
"Hi There",
|
||||
|
||||
"\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
"\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
"\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
@ -3400,23 +3400,6 @@ int hmac_sha3_test(void)
|
||||
|
||||
const char* output[12] =
|
||||
{
|
||||
/* key = 0b..., input = Hi There */
|
||||
/* HMAC-SHA3-224 */
|
||||
"\x3b\x16\x54\x6b\xbc\x7b\xe2\x70\x6a\x03\x1d\xca\xfd\x56\x37\x3d"
|
||||
"\x98\x84\x36\x76\x41\xd8\xc5\x9a\xf3\xc8\x60\xf7",
|
||||
/* HMAC-SHA3-256 */
|
||||
"\xba\x85\x19\x23\x10\xdf\xfa\x96\xe2\xa3\xa4\x0e\x69\x77\x43\x51"
|
||||
"\x14\x0b\xb7\x18\x5e\x12\x02\xcd\xcc\x91\x75\x89\xf9\x5e\x16\xbb",
|
||||
/* HMAC-SHA3-384 */
|
||||
"\x68\xd2\xdc\xf7\xfd\x4d\xdd\x0a\x22\x40\xc8\xa4\x37\x30\x5f\x61"
|
||||
"\xfb\x73\x34\xcf\xb5\xd0\x22\x6e\x1b\xc2\x7d\xc1\x0a\x2e\x72\x3a"
|
||||
"\x20\xd3\x70\xb4\x77\x43\x13\x0e\x26\xac\x7e\x3d\x53\x28\x86\xbd",
|
||||
/* HMAC-SHA3-512 */
|
||||
"\xeb\x3f\xbd\x4b\x2e\xaa\xb8\xf5\xc5\x04\xbd\x3a\x41\x46\x5a\xac"
|
||||
"\xec\x15\x77\x0a\x7c\xab\xac\x53\x1e\x48\x2f\x86\x0b\x5e\xc7\xba"
|
||||
"\x47\xcc\xb2\xc6\xf2\xaf\xce\x8f\x88\xd2\x2b\x6d\xc6\x13\x80\xf2"
|
||||
"\x3a\x66\x8f\xd3\x88\x8b\xb8\x05\x37\xc0\xa0\xb8\x64\x07\x68\x9e",
|
||||
|
||||
/* key = jefe, input = what do ya want for nothing? */
|
||||
/* HMAC-SHA3-224 */
|
||||
"\x7f\xdb\x8d\xd8\x8b\xd2\xf6\x0d\x1b\x79\x86\x34\xad\x38\x68\x11"
|
||||
@ -3434,6 +3417,23 @@ int hmac_sha3_test(void)
|
||||
"\x28\x7b\xae\xc9\x21\xfd\x7c\xa0\xee\x7a\x0c\x31\xd0\x22\xa9\x5e"
|
||||
"\x1f\xc9\x2b\xa9\xd7\x7d\xf8\x83\x96\x02\x75\xbe\xb4\xe6\x20\x24",
|
||||
|
||||
/* key = 0b..., input = Hi There */
|
||||
/* HMAC-SHA3-224 */
|
||||
"\x3b\x16\x54\x6b\xbc\x7b\xe2\x70\x6a\x03\x1d\xca\xfd\x56\x37\x3d"
|
||||
"\x98\x84\x36\x76\x41\xd8\xc5\x9a\xf3\xc8\x60\xf7",
|
||||
/* HMAC-SHA3-256 */
|
||||
"\xba\x85\x19\x23\x10\xdf\xfa\x96\xe2\xa3\xa4\x0e\x69\x77\x43\x51"
|
||||
"\x14\x0b\xb7\x18\x5e\x12\x02\xcd\xcc\x91\x75\x89\xf9\x5e\x16\xbb",
|
||||
/* HMAC-SHA3-384 */
|
||||
"\x68\xd2\xdc\xf7\xfd\x4d\xdd\x0a\x22\x40\xc8\xa4\x37\x30\x5f\x61"
|
||||
"\xfb\x73\x34\xcf\xb5\xd0\x22\x6e\x1b\xc2\x7d\xc1\x0a\x2e\x72\x3a"
|
||||
"\x20\xd3\x70\xb4\x77\x43\x13\x0e\x26\xac\x7e\x3d\x53\x28\x86\xbd",
|
||||
/* HMAC-SHA3-512 */
|
||||
"\xeb\x3f\xbd\x4b\x2e\xaa\xb8\xf5\xc5\x04\xbd\x3a\x41\x46\x5a\xac"
|
||||
"\xec\x15\x77\x0a\x7c\xab\xac\x53\x1e\x48\x2f\x86\x0b\x5e\xc7\xba"
|
||||
"\x47\xcc\xb2\xc6\xf2\xaf\xce\x8f\x88\xd2\x2b\x6d\xc6\x13\x80\xf2"
|
||||
"\x3a\x66\x8f\xd3\x88\x8b\xb8\x05\x37\xc0\xa0\xb8\x64\x07\x68\x9e",
|
||||
|
||||
/* key = aa..., output = dd... */
|
||||
/* HMAC-SHA3-224 */
|
||||
"\x67\x6c\xfc\x7d\x16\x15\x36\x38\x78\x03\x90\x69\x2b\xe1\x42\xd2"
|
||||
@ -3452,11 +3452,16 @@ int hmac_sha3_test(void)
|
||||
"\xcb\x7b\x6e\x5a\xab\x7e\xa4\x2c\x66\x0f\x97\xfd\x85\x84\xbf\x03"
|
||||
};
|
||||
|
||||
int i, iMax = sizeof(input) / sizeof(input[0]),
|
||||
int i = 0, iMax = sizeof(input) / sizeof(input[0]),
|
||||
j, jMax = sizeof(hashType) / sizeof(hashType[0]),
|
||||
ret;
|
||||
|
||||
for (i = 0; i < iMax; i++) {
|
||||
#ifdef HAVE_FIPS
|
||||
/* FIPS requires a minimum length for HMAC keys, and "Jefe" is too
|
||||
* short. Skip it in FIPS builds. */
|
||||
i = 1;
|
||||
#endif
|
||||
for (; i < iMax; i++) {
|
||||
for (j = 0; j < jMax; j++) {
|
||||
if (wc_HmacInit(&hmac, HEAP_HINT, devId) != 0)
|
||||
return -3114;
|
||||
|
Reference in New Issue
Block a user