Skip to content

Commit a0cce92

Browse files
Add configure and CMake options for WOLF_CRYPTO_CB_RSA_PAD.
Fixes #10271.
1 parent eeb34a7 commit a0cce92

3 files changed

Lines changed: 31 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2243,6 +2243,10 @@ add_option("WOLFSSL_CRYPTOCB_NO_SW_TEST"
22432243
"Disable crypto callback SW testing (default: disabled)"
22442244
"no" "yes;no")
22452245

2246+
add_option("WOLFSSL_CRYPTOCB_RSA_PAD"
2247+
"Enable RSA padding aware crypto callbacks (default: disabled)"
2248+
"no" "yes;no")
2249+
22462250
add_option("WOLFSSL_PKCALLBACKS"
22472251
"Enable public key callbacks (default: disabled)"
22482252
"no" "yes;no")
@@ -2475,6 +2479,13 @@ if(WOLFSSL_CRYPTOCB_NO_SW_TEST)
24752479
list(APPEND WOLFSSL_DEFINITIONS "-DWC_TEST_NO_CRYPTOCB_SW_TEST")
24762480
endif()
24772481

2482+
if(WOLFSSL_CRYPTOCB_RSA_PAD)
2483+
if(NOT WOLFSSL_CRYPTOCB)
2484+
message(FATAL_ERROR "WOLFSSL_CRYPTOCB_RSA_PAD requires WOLFSSL_CRYPTOCB")
2485+
endif()
2486+
list(APPEND WOLFSSL_DEFINITIONS "-DWOLF_CRYPTO_CB_RSA_PAD")
2487+
endif()
2488+
24782489
# Public Key Callbacks
24792490
if(WOLFSSL_PKCALLBACKS)
24802491
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_PK_CALLBACKS")

cmake/options.h.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,8 @@ extern "C" {
258258
#cmakedefine WC_RSA_PSS
259259
#undef WOLF_CRYPTO_CB
260260
#cmakedefine WOLF_CRYPTO_CB
261+
#undef WOLF_CRYPTO_CB_RSA_PAD
262+
#cmakedefine WOLF_CRYPTO_CB_RSA_PAD
261263
#undef WOLFSSL_AARCH64_BUILD
262264
#cmakedefine WOLFSSL_AARCH64_BUILD
263265
#undef WOLFSSL_AES_CFB

configure.ac

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10512,6 +10512,24 @@ if test "$ENABLED_CRYPTOCB_UTILS" != "no"; then
1051210512
fi
1051310513
fi
1051410514
10515+
# Crypto callback RSA padding support
10516+
# When enabled, the RSA crypto callback args struct exposes the RsaPadding
10517+
# parameters so the callback can perform RSA padding/unpadding itself or
10518+
# offload it together with the modular exponentiation.
10519+
AC_ARG_ENABLE([cryptocb-rsa-pad],
10520+
[AS_HELP_STRING([--enable-cryptocb-rsa-pad],[Enable RSA padding aware crypto callbacks (default: disabled). Requires --enable-cryptocb])],
10521+
[ ENABLED_CRYPTOCB_RSA_PAD=$enableval ],
10522+
[ ENABLED_CRYPTOCB_RSA_PAD=no ]
10523+
)
10524+
10525+
if test "$ENABLED_CRYPTOCB_RSA_PAD" = "yes"
10526+
then
10527+
if test "x$ENABLED_CRYPTOCB" = "xno"; then
10528+
AC_MSG_ERROR([--enable-cryptocb-rsa-pad requires --enable-cryptocb])
10529+
fi
10530+
AM_CFLAGS="$AM_CFLAGS -DWOLF_CRYPTO_CB_RSA_PAD"
10531+
fi
10532+
1051510533
1051610534
# Asynchronous Crypto
1051710535
AC_ARG_ENABLE([asynccrypt],

0 commit comments

Comments
 (0)