Skip to content

Commit ec8a1ba

Browse files
Merge pull request #7962 from embhorn/zd18558
Add cmake support for WOLFSSL_CUSTOM_CURVES
2 parents fcb8d3f + a75c73c commit ec8a1ba

2 files changed

Lines changed: 30 additions & 2 deletions

File tree

CMakeLists.txt

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -945,13 +945,29 @@ if(WOLFSSL_ECC)
945945
endif()
946946
endif()
947947

948-
# TODO: - ECC custom curves
949-
# - Compressed key
948+
# TODO: - Compressed key
950949
# - FP ECC, fixed point cache ECC
951950
# - ECC encrypt
952951
# - PSK
953952
# - Single PSK identity
954953

954+
# ECC custom curves
955+
add_option("WOLFSSL_ECCCUSTCURVES"
956+
"Enable ECC Custom Curves (default: disabled)"
957+
"no" "yes;no;all")
958+
959+
if(WOLFSSL_ECCCUSTCURVES)
960+
if("${WOLFSSL_ECCCUSTCURVES}" STREQUAL "all")
961+
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_ECC_SECPR2")
962+
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_ECC_SECPR3")
963+
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_ECC_BRAINPOOL")
964+
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_ECC_KOBLITZ")
965+
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_ECC_CDH")
966+
endif()
967+
968+
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_CUSTOM_CURVES")
969+
endif()
970+
955971
# CURVE25519
956972
set(WOLFSSL_CURVE25519_SMALL "no")
957973
add_option("WOLFSSL_CURVE25519"

cmake/options.h.in

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ extern "C" {
8686
#cmakedefine HAVE_CRL
8787
#undef HAVE_CRL_IO
8888
#cmakedefine HAVE_CRL_IO
89+
#undef WOLFSSL_CUSTOM_CURVES
90+
#cmakedefine WOLFSSL_CUSTOM_CURVES
8991
#undef HAVE_CURVE25519
9092
#cmakedefine HAVE_CURVE25519
9193
#undef HAVE_CURVE448
@@ -368,6 +370,16 @@ extern "C" {
368370
#cmakedefine WOLFSSL_WC_KYBER
369371
#undef NO_WOLFSSL_STUB
370372
#cmakedefine NO_WOLFSSL_STUB
373+
#undef HAVE_ECC_SECPR2
374+
#cmakedefine HAVE_ECC_SECPR2
375+
#undef HAVE_ECC_SECPR3
376+
#cmakedefine HAVE_ECC_SECPR3
377+
#undef HAVE_ECC_BRAINPOOL
378+
#cmakedefine HAVE_ECC_BRAINPOOL
379+
#undef HAVE_ECC_KOBLITZ
380+
#cmakedefine HAVE_ECC_KOBLITZ
381+
#undef HAVE_ECC_CDH
382+
#cmakedefine HAVE_ECC_CDH
371383

372384
#ifdef __cplusplus
373385
}

0 commit comments

Comments
 (0)