Skip to content

Commit 4574a0c

Browse files
authored
Merge pull request #9706 from miyazakh/selftest_pqc
Enable kyber and dilithium in selftest
2 parents 6ae5555 + 0f72d2e commit 4574a0c

File tree

3 files changed

+24
-4
lines changed

3 files changed

+24
-4
lines changed

wolfssl/wolfcrypt/settings.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4572,9 +4572,14 @@ extern void uITRON4_free(void *p) ;
45724572
#define WOLFSSL_SHAKE256
45734573
#endif
45744574

4575-
/* SHAKE - Not allowed in FIPS v5.2 or older */
4576-
#if defined(WOLFSSL_SHA3) && (defined(HAVE_SELFTEST) || \
4577-
(defined(HAVE_FIPS) && FIPS_VERSION_LE(5,2)))
4575+
/* SHAKE - Not allowed in FIPS v5.2 or older, or selftest without PQC.
4576+
* Exception: Allow SHAKE in selftest when MLKEM (Kyber) or Dilithium
4577+
* is enabled.
4578+
*/
4579+
#if defined(WOLFSSL_SHA3) && \
4580+
((defined(HAVE_FIPS) && FIPS_VERSION_LE(5,2)) || \
4581+
(defined(HAVE_SELFTEST) && \
4582+
!defined(WOLFSSL_HAVE_MLKEM) && !defined(WOLFSSL_WC_DILITHIUM)))
45784583
#undef WOLFSSL_NO_SHAKE128
45794584
#define WOLFSSL_NO_SHAKE128
45804585
#undef WOLFSSL_NO_SHAKE256

wolfssl/wolfcrypt/sha3.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,11 @@ enum {
8686
WC_SHA3_256_BLOCK_SIZE = 136,
8787
WC_SHA3_384_BLOCK_SIZE = 104,
8888
WC_SHA3_512_BLOCK_SIZE = 72,
89+
#else
90+
/* For SELFTEST version < 2, define WC_SHA3_128_BLOCK_SIZE
91+
* for Kyber/Dilithium */
92+
WC_SHA3_128_BLOCK_SIZE = 168,
8993
#endif
90-
9194
WOLF_ENUM_DUMMY_LAST_ELEMENT(WC_SHA3)
9295
};
9396

wolfssl/wolfcrypt/types.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1439,7 +1439,19 @@ enum wc_HashType {
14391439
WC_HASH_TYPE_SHA3_512 = 13,
14401440
WC_HASH_TYPE_BLAKE2B = 14,
14411441
WC_HASH_TYPE_BLAKE2S = 19,
1442+
#ifdef WOLFSSL_SHAKE128
1443+
WC_HASH_TYPE_SHAKE128 = 20,
1444+
#endif
1445+
#ifdef WOLFSSL_SHAKE256
1446+
WC_HASH_TYPE_SHAKE256 = 21,
1447+
#endif
1448+
#if defined(WOLFSSL_SHAKE256)
1449+
WC_HASH_TYPE_MAX = WC_HASH_TYPE_SHAKE256,
1450+
#elif defined(WOLFSSL_SHAKE128)
1451+
WC_HASH_TYPE_MAX = WC_HASH_TYPE_SHAKE128,
1452+
#else
14421453
WC_HASH_TYPE_MAX = WC_HASH_TYPE_BLAKE2S,
1454+
#endif
14431455
#ifndef WOLFSSL_NOSHA512_224
14441456
#define WOLFSSL_NOSHA512_224
14451457
#endif

0 commit comments

Comments
 (0)