Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cryptocb test disable option #7862

Merged
merged 2 commits into from
Aug 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1877,6 +1877,10 @@ add_option("WOLFSSL_CRYPTOCB"
"Enable crypto callbacks (default: disabled)"
"no" "yes;no")

add_option("WOLFSSL_CRYPTOCB_NO_SW_TEST"
"Disable crypto callback SW testing (default: disabled)"
"no" "yes;no")

add_option("WOLFSSL_PKCALLBACKS"
"Enable public key callbacks (default: disabled)"
"no" "yes;no")
Expand Down Expand Up @@ -2080,6 +2084,10 @@ if(WOLFSSL_CRYPTOCB)
list(APPEND WOLFSSL_DEFINITIONS "-DWOLF_CRYPTO_CB")
endif()

if(WOLFSSL_CRYPTOCB_NO_SW_TEST)
list(APPEND WOLFSSL_DEFINITIONS "-DWC_TEST_NO_CRYPTOCB_SW_TEST")
endif()

# Public Key Callbacks
if(WOLFSSL_PKCALLBACKS)
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_PK_CALLBACKS")
Expand Down
18 changes: 18 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -8475,6 +8475,19 @@ AC_ARG_ENABLE([cryptocb],
[ ENABLED_CRYPTOCB=no ]
)

# Enable testing of cryptoCb using software crypto. On platforms where wolfCrypt tests
# are used to test a custom cryptoCb, it may be desired to disable this so wolfCrypt tests
# don't also test software implementations of every algorithm
AC_ARG_ENABLE([cryptocb-sw-test],
[AS_HELP_STRING([--disable-cryptocb-sw-test],[Disable wolfCrypt crypto callback tests using software crypto (default: enabled). Only valid with --enable-cryptocb])],
[ if test "x$ENABLED_CRYPTOCB" = "xno"; then
AC_MSG_ERROR([--disable-cryptocb-sw-test requires --enable-cryptocb])
else
ENABLED_CRYPTOCB_SW_TEST=$enableval
fi ],
[ ENABLED_CRYPTOCB_SW_TEST=yes ]
)

if test "x$ENABLED_PKCS11" = "xyes" || test "x$ENABLED_WOLFTPM" = "xyes" || test "$ENABLED_CAAM" != "no"
then
ENABLED_CRYPTOCB=yes
Expand All @@ -8484,6 +8497,11 @@ then
AM_CFLAGS="$AM_CFLAGS -DWOLF_CRYPTO_CB"
fi

if test "$ENABLED_CRYPTOCB_SW_TEST" = "no"
then
AM_CFLAGS="$AM_CFLAGS -DWC_TEST_NO_CRYPTOCB_SW_TEST"
fi



# Asynchronous Crypto
Expand Down
6 changes: 4 additions & 2 deletions wolfcrypt/test/test.c
Original file line number Diff line number Diff line change
Expand Up @@ -735,7 +735,7 @@ void printOutput(const char *strName, unsigned char *data, unsigned int dataSz);
WOLFSSL_TEST_SUBROUTINE int ariagcm_test(MC_ALGID);
#endif

#ifdef WOLF_CRYPTO_CB
#if defined(WOLF_CRYPTO_CB) && !defined(WC_TEST_NO_CRYPTOCB_SW_TEST)
WOLFSSL_TEST_SUBROUTINE wc_test_ret_t cryptocb_test(void);
#endif
#ifdef WOLFSSL_CERT_PIV
Expand Down Expand Up @@ -2321,7 +2321,7 @@ options: [-s max_relative_stack_bytes] [-m max_relative_heap_memory_bytes]\n\
TEST_PASS("blob test passed!\n");
#endif

#if defined(WOLF_CRYPTO_CB) && \
#if defined(WOLF_CRYPTO_CB) && !defined(WC_TEST_NO_CRYPTOCB_SW_TEST) && \
!(defined(HAVE_INTEL_QAT_SYNC) || defined(HAVE_CAVIUM_OCTEON_SYNC) || \
defined(WOLFSSL_QNX_CAAM) || defined(HAVE_RENESAS_SYNC))
if ( (ret = cryptocb_test()) != 0)
Expand Down Expand Up @@ -55567,6 +55567,7 @@ static int myCryptoCbFind(int currentId, int algoType)
#endif /* WOLF_CRYPTO_CB_FIND */


#if !defined(WC_TEST_NO_CRYPTOCB_SW_TEST)
WOLFSSL_TEST_SUBROUTINE wc_test_ret_t cryptocb_test(void)
{
wc_test_ret_t ret = 0;
Expand Down Expand Up @@ -55695,6 +55696,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t cryptocb_test(void)

return ret;
}
#endif /* ! WC_TEST_NO_CRYPTOCB_SW_TEST */
#endif /* WOLF_CRYPTO_CB */

#ifdef WOLFSSL_CERT_PIV
Expand Down