Skip to content

Commit a057975

Browse files
authored
Merge pull request #10293 from Frauschi/liboqs_removal
Remove liboqs for ML-KEM and ML-DSA, update for Falcon
2 parents 76080d0 + 7a2cf5b commit a057975

88 files changed

Lines changed: 1412 additions & 3112 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.wolfssl_known_macro_extras

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ HAVE_PKCS7_RSA_RAW_SIGN_CALLBACK
299299
HAVE_POCO_LIB
300300
HAVE_RTP_SYS
301301
HAVE_SECURE_GETENV
302+
HAVE_SPHINCS
302303
HAVE_STACK_SIZE_VERBOSE_LOG
303304
HAVE_THREADX
304305
HAVE_TM_TYPE

CMakeLists.txt

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -625,20 +625,23 @@ add_option(WOLFSSL_OQS
625625
"Enable integration with the OQS (Open Quantum Safe) liboqs library (default: disabled)"
626626
"no" "yes;no")
627627

628+
# Falcon (provided via liboqs)
629+
add_option(WOLFSSL_FALCON
630+
"Enable Falcon post-quantum signatures via liboqs (default: disabled)"
631+
"no" "yes;no")
632+
628633
# ML-KEM/Kyber
629634
add_option(WOLFSSL_MLKEM
630635
"Enable the wolfSSL PQ ML-KEM library (default: disabled)"
631636
"yes" "yes;no")
632637

633638
if (WOLFSSL_MLKEM)
634639
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_HAVE_MLKEM")
635-
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_WC_MLKEM")
636640
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHA3")
637641
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHAKE128")
638642
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHAKE256")
639643

640644
set_wolfssl_definitions("WOLFSSL_HAVE_MLKEM" RESULT)
641-
set_wolfssl_definitions("WOLFSSL_WC_MLKEM" RESULT)
642645
set_wolfssl_definitions("WOLFSSL_SHA3" RESULT)
643646
set_wolfssl_definitions("WOLFSSL_SHAKE128" RESULT)
644647
set_wolfssl_definitions("WOLFSSL_SHAKE256" RESULT)
@@ -677,13 +680,11 @@ add_option(WOLFSSL_DILITHIUM
677680

678681
if (WOLFSSL_DILITHIUM)
679682
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_DILITHIUM")
680-
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_WC_DILITHIUM")
681683
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHA3")
682684
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHAKE128")
683685
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHAKE256")
684686

685687
set_wolfssl_definitions("HAVE_DILITHIUM" RESULT)
686-
set_wolfssl_definitions("WOLFSSL_WC_DILITHIUM" RESULT)
687688
set_wolfssl_definitions("WOLFSSL_SHA3" RESULT)
688689
set_wolfssl_definitions("WOLFSSL_SHAKE128" RESULT)
689690
set_wolfssl_definitions("WOLFSSL_SHAKE256" RESULT)
@@ -731,6 +732,15 @@ if (WOLFSSL_EXPERIMENTAL)
731732

732733
set_wolfssl_definitions("WOLFSSL_EXPERIMENTAL_SETTINGS" RESULT)
733734

735+
# Cross-validate WOLFSSL_OQS and WOLFSSL_FALCON: liboqs is only linked
736+
# when a liboqs-backed algorithm (Falcon) is actually enabled.
737+
if (WOLFSSL_FALCON AND NOT WOLFSSL_OQS)
738+
message(FATAL_ERROR "WOLFSSL_FALCON requires WOLFSSL_OQS.")
739+
endif()
740+
if (WOLFSSL_OQS AND NOT WOLFSSL_FALCON)
741+
message(FATAL_ERROR "WOLFSSL_OQS requires WOLFSSL_FALCON.")
742+
endif()
743+
734744
# Checking for experimental feature: OQS
735745
message(STATUS "Looking for WOLFSSL_OQS")
736746
if (WOLFSSL_OQS)
@@ -747,6 +757,7 @@ if (WOLFSSL_EXPERIMENTAL)
747757
set_wolfssl_definitions("HAVE_LIBOQS" RESULT)
748758
set_wolfssl_definitions("HAVE_TLS_EXTENSIONS" RESULT)
749759
set_wolfssl_definitions("OPENSSL_EXTRA" RESULT)
760+
set_wolfssl_definitions("HAVE_FALCON" RESULT)
750761

751762
else()
752763
message(STATUS "Checking OQS - not found")
@@ -775,19 +786,15 @@ if (WOLFSSL_EXPERIMENTAL)
775786
message(STATUS "Warning: WOLFSSL_EXPERIMENTAL enabled, but no experimental features enabled.")
776787
endif()
777788

778-
# Sanity checks
779-
if(WOLFSSL_OQS AND WOLFSSL_MLKEM)
780-
message(FATAL_ERROR "Error: cannot enable both WOLFSSL_OQS and WOLFSSL_MLKEM at the same time.")
781-
endif()
782-
if(WOLFSSL_OQS AND WOLFSSL_DILITHIUM)
783-
message(FATAL_ERROR "Error: cannot enable both WOLFSSL_OQS and WOLFSSL_DILITHIUM at the same time.")
784-
endif()
785789
else()
786790
# Experimental mode not enabled, but were any experimental features enabled? Error out if so:
787791
message(STATUS "Looking for WOLFSSL_EXPERIMENTAL - not found")
788792
if (WOLFSSL_OQS)
789793
message(FATAL_ERROR "Error: WOLFSSL_OQS requires WOLFSSL_EXPERIMENTAL at this time.")
790794
endif()
795+
if (WOLFSSL_FALCON)
796+
message(FATAL_ERROR "Error: WOLFSSL_FALCON requires WOLFSSL_EXPERIMENTAL at this time.")
797+
endif()
791798
endif()
792799

793800
# LMS

IDE/Espressif/ESP-IDF/examples/template/components/wolfssl/component.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ed25519.o
203203
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ed448.o
204204
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/error.o
205205
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/evp.o
206-
# COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_mlkem.o
207206
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_lms.o
208207
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_xmss.o
209208
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/falcon.o

IDE/Espressif/ESP-IDF/examples/template/components/wolfssl/include/user_settings.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,6 @@
215215
#ifdef CONFIG_ESP_WOLFSSL_ENABLE_MLKEM
216216
/* Kyber typically needs a minimum 10K stack */
217217
#define WOLFSSL_HAVE_MLKEM
218-
#define WOLFSSL_WC_MLKEM
219218
#define WOLFSSL_SHAKE128
220219
#define WOLFSSL_SHAKE256
221220

@@ -234,7 +233,7 @@
234233
#define WOLFSSL_NO_ML_KEM_768
235234
#define NO_SESSION_CACHE
236235
#else
237-
/* Only needed for older wolfssl versions, see mlkem.h */
236+
/* Only needed for older wolfssl versions, see wc_mlkem.h */
238237
#define WOLFSSL_KYBER1024
239238
/* optional alternative sizes: */
240239
/* #define WOLFSSL_KYBER768 */

IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/components/wolfssl/component.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ed25519.o
203203
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ed448.o
204204
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/error.o
205205
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/evp.o
206-
# COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_mlkem.o
207206
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_lms.o
208207
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_xmss.o
209208
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/falcon.o

IDE/Espressif/ESP-IDF/examples/wolfssl_benchmark/components/wolfssl/include/user_settings.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,6 @@
215215
#ifdef CONFIG_ESP_WOLFSSL_ENABLE_MLKEM
216216
/* Kyber typically needs a minimum 10K stack */
217217
#define WOLFSSL_HAVE_MLKEM
218-
#define WOLFSSL_WC_MLKEM
219218
#define WOLFSSL_SHAKE128
220219
#define WOLFSSL_SHAKE256
221220

@@ -234,7 +233,7 @@
234233
#define WOLFSSL_NO_ML_KEM_768
235234
#define NO_SESSION_CACHE
236235
#else
237-
/* Only needed for older wolfssl versions, see mlkem.h */
236+
/* Only needed for older wolfssl versions, see wc_mlkem.h */
238237
#define WOLFSSL_KYBER1024
239238
/* optional alternative sizes: */
240239
/* #define WOLFSSL_KYBER768 */

IDE/Espressif/ESP-IDF/examples/wolfssl_client/components/wolfssl/component.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ed25519.o
203203
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ed448.o
204204
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/error.o
205205
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/evp.o
206-
# COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_mlkem.o
207206
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_lms.o
208207
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_xmss.o
209208
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/falcon.o

IDE/Espressif/ESP-IDF/examples/wolfssl_client/components/wolfssl/include/user_settings.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,6 @@
215215
#ifdef CONFIG_ESP_WOLFSSL_ENABLE_MLKEM
216216
/* Kyber typically needs a minimum 10K stack */
217217
#define WOLFSSL_HAVE_MLKEM
218-
#define WOLFSSL_WC_MLKEM
219218
#define WOLFSSL_SHAKE128
220219
#define WOLFSSL_SHAKE256
221220

@@ -234,7 +233,7 @@
234233
#define WOLFSSL_NO_ML_KEM_768
235234
#define NO_SESSION_CACHE
236235
#else
237-
/* Only needed for older wolfssl versions, see mlkem.h */
236+
/* Only needed for older wolfssl versions, see wc_mlkem.h */
238237
#define WOLFSSL_KYBER1024
239238
/* optional alternative sizes: */
240239
/* #define WOLFSSL_KYBER768 */

IDE/Espressif/ESP-IDF/examples/wolfssl_client/main/client-tls.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@
4141
#undef USE_WOLFSSL_ESP_SDK_WIFI
4242
#include <wolfssl/ssl.h>
4343

44-
#if defined(WOLFSSL_WC_MLKEM)
45-
#include <wolfssl/wolfcrypt/mlkem.h>
44+
#if defined(WOLFSSL_HAVE_MLKEM)
4645
#include <wolfssl/wolfcrypt/wc_mlkem.h>
4746
#endif
4847
#if defined(USE_CERT_BUFFERS_2048) || defined(USE_CERT_BUFFERS_1024)

IDE/Espressif/ESP-IDF/examples/wolfssl_server/components/wolfssl/component.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ed25519.o
203203
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ed448.o
204204
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/error.o
205205
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/evp.o
206-
# COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_mlkem.o
207206
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_lms.o
208207
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/ext_xmss.o
209208
COMPONENT_OBJS += $(WOLFSSL_ROOT)/wolfcrypt/src/falcon.o

0 commit comments

Comments
 (0)