@@ -573,10 +573,15 @@ add_option(WOLFSSL_OQS
573573 "no" "yes;no" )
574574
575575# ML-KEM/Kyber
576- add_option (WOLFSSL_MMLKEM
576+ add_option (WOLFSSL_MLKEM
577577 "Enable the wolfSSL PQ ML-KEM library (default: disabled)"
578578 "no" "yes;no" )
579579
580+ # LMS
581+ add_option (WOLFSSL_LMS
582+ "Enable the PQ LMS Stateful Hash-based Signature Scheme (default: disabled)"
583+ "no" "yes;no" )
584+
580585# Experimental features
581586add_option (WOLFSSL_EXPERIMENTAL
582587 "Enable experimental features (default: disabled)"
@@ -590,7 +595,7 @@ if (WOLFSSL_EXPERIMENTAL)
590595 # check if any experimental features are also enabled:
591596 set (WOLFSSL_FOUND_EXPERIMENTAL_FEATURE 0)
592597
593- set_wolfssl_definitions ("WOLFSSL_EXPERIMENTAL_SETTINGS" RESUlT )
598+ set_wolfssl_definitions ("WOLFSSL_EXPERIMENTAL_SETTINGS" RESULT )
594599
595600 # Checking for experimental feature: OQS
596601 message (STATUS "Looking for WOLFSSL_OQS" )
@@ -605,9 +610,9 @@ if (WOLFSSL_EXPERIMENTAL)
605610 list (APPEND WOLFSSL_LINK_LIBS ${OQS_LIBRARY} )
606611 list (APPEND WOLFSSL_INCLUDE_DIRS ${OQS_INCLUDE_DIR} )
607612
608- set_wolfssl_definitions ("HAVE_LIBOQS" RESUlT )
609- set_wolfssl_definitions ("HAVE_TLS_EXTENSIONS" RESUlT )
610- set_wolfssl_definitions ("OPENSSL_EXTRA" RESUlT )
613+ set_wolfssl_definitions ("HAVE_LIBOQS" RESULT )
614+ set_wolfssl_definitions ("HAVE_TLS_EXTENSIONS" RESULT )
615+ set_wolfssl_definitions ("OPENSSL_EXTRA" RESULT )
611616
612617 else ()
613618 message (STATUS "Checking OQS - not found" )
@@ -617,20 +622,41 @@ if (WOLFSSL_EXPERIMENTAL)
617622 message (STATUS "Looking for WOLFSSL_OQS - not found" )
618623 endif ()
619624
620- # Checking for experimental feature: Kyber
621- message (STATUS "Looking for WOLFSSL_KYBER " )
622- if (WOLFSSL_KYBER )
625+ # Checking for experimental feature: WOLFSSL_MLKEM
626+ message (STATUS "Looking for WOLFSSL_MLKEM " )
627+ if (WOLFSSL_MLKEM )
623628 set (WOLFSSL_FOUND_EXPERIMENTAL_FEATURE 1)
624629
625- message (STATUS "Automatically set related requirements for Kyber:" )
626- set_wolfssl_definitions ("WOLFSSL_HAVE_MLKEM" RESUlT )
627- set_wolfssl_definitions ("WOLFSSL_WC_MLKEM" RESUlT )
628- set_wolfssl_definitions ("WOLFSSL_SHA3" RESUlT )
629- set_wolfssl_definitions ("WOLFSSL_SHAKE128" RESUlT )
630- set_wolfssl_definitions ("WOLFSSL_SHAKE256" RESUlT )
631- message (STATUS "Looking for WOLFSSL_KYBER - found" )
630+ message (STATUS "Automatically set related requirements for ML-KEM:" )
631+ add_definitions ("-DWOLFSSL_HAVE_MLKEM" )
632+ add_definitions ("-DWOLFSSL_WC_MLKEM" )
633+ add_definitions ("-DWOLFSSL_SHA3" )
634+ add_definitions ("-DWOLFSSL_SHAKE128" )
635+ add_definitions ("-DWOLFSSL_SHAKE256" )
636+
637+ set_wolfssl_definitions ("WOLFSSL_HAVE_MLKEM" RESULT )
638+ set_wolfssl_definitions ("WOLFSSL_WC_MLKEM" RESULT )
639+ set_wolfssl_definitions ("WOLFSSL_SHA3" RESULT )
640+ set_wolfssl_definitions ("WOLFSSL_SHAKE128" RESULT )
641+ set_wolfssl_definitions ("WOLFSSL_SHAKE256" RESULT )
642+ message (STATUS "Looking for WOLFSSL_MLKEM - found" )
643+ else ()
644+ message (STATUS "Looking for WOLFSSL_MLKEM - not found" )
645+ endif ()
646+
647+ # Checking for experimental feature: WOLFSSL_LMS
648+ message (STATUS "Looking for WOLFSSL_LMS" )
649+ if (WOLFSSL_LMS)
650+ set (WOLFSSL_FOUND_EXPERIMENTAL_FEATURE 2)
651+
652+ message (STATUS "Automatically set related requirements for LMS" )
653+ add_definitions ("-DWOLFSSL_HAVE_LMS" )
654+ add_definitions ("-DWOLFSSL_WC_LMS" )
655+ set_wolfssl_definitions ("WOLFSSL_HAVE_LMS" RESULT )
656+ set_wolfssl_definitions ("WOLFSSL_WC_LMS" RESULT )
657+ message (STATUS "Looking for WOLFSSL_LMS - found" )
632658 else ()
633- message (STATUS "Looking for WOLFSSL_KYBER - not found" )
659+ message (STATUS "Looking for WOLFSSL_LMS - not found" )
634660 endif ()
635661
636662 # Other experimental feature detection can be added here...
@@ -643,8 +669,8 @@ if (WOLFSSL_EXPERIMENTAL)
643669 endif ()
644670
645671 # Sanity checks
646- if (WOLFSSL_OQS AND WOLFSSL_KYBER )
647- message (FATAL_ERROR "Error: cannot enable both WOLFSSL_OQS and WOLFSSL_KYBER at the same time." )
672+ if (WOLFSSL_OQS AND WOLFSSL_MLKEM )
673+ message (FATAL_ERROR "Error: cannot enable both WOLFSSL_OQS and WOLFSSL_MLKEM at the same time." )
648674 endif ()
649675
650676else ()
@@ -653,8 +679,8 @@ else()
653679 if (WOLFSSL_OQS)
654680 message (FATAL_ERROR "Error: WOLFSSL_OQS requires WOLFSSL_EXPERIMENTAL at this time." )
655681 endif ()
656- if (WOLFSSL_KYBER )
657- message (FATAL_ERROR "Error: WOLFSSL_KYBER requires WOLFSSL_EXPERIMENTAL at this time." )
682+ if (WOLFSSL_MLKEM )
683+ message (FATAL_ERROR "Error: WOLFSSL_MLKEM requires WOLFSSL_EXPERIMENTAL at this time." )
658684 endif ()
659685endif ()
660686
0 commit comments