@@ -612,11 +612,39 @@ add_option(WOLFSSL_MLKEM
612612 "Enable the wolfSSL PQ ML-KEM library (default: disabled)"
613613 "no" "yes;no" )
614614
615+ if (WOLFSSL_MLKEM)
616+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_HAVE_MLKEM" )
617+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_WC_MLKEM" )
618+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHA3" )
619+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHAKE128" )
620+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHAKE256" )
621+
622+ set_wolfssl_definitions ("WOLFSSL_HAVE_MLKEM" RESULT )
623+ set_wolfssl_definitions ("WOLFSSL_WC_MLKEM" RESULT )
624+ set_wolfssl_definitions ("WOLFSSL_SHA3" RESULT )
625+ set_wolfssl_definitions ("WOLFSSL_SHAKE128" RESULT )
626+ set_wolfssl_definitions ("WOLFSSL_SHAKE256" RESULT )
627+ endif ()
628+
615629# Dilithium
616630add_option (WOLFSSL_DILITHIUM
617631 "Enable the wolfSSL PQ Dilithium (ML-DSA) implementation (default: disabled)"
618632 "no" "yes;no" )
619633
634+ if (WOLFSSL_DILITHIUM)
635+ list (APPEND WOLFSSL_DEFINITIONS "-DHAVE_DILITHIUM" )
636+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_WC_DILITHIUM" )
637+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHA3" )
638+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHAKE128" )
639+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_SHAKE256" )
640+
641+ set_wolfssl_definitions ("HAVE_DILITHIUM" RESULT )
642+ set_wolfssl_definitions ("WOLFSSL_WC_DILITHIUM" RESULT )
643+ set_wolfssl_definitions ("WOLFSSL_SHA3" RESULT )
644+ set_wolfssl_definitions ("WOLFSSL_SHAKE128" RESULT )
645+ set_wolfssl_definitions ("WOLFSSL_SHAKE256" RESULT )
646+ endif ()
647+
620648# LMS
621649add_option (WOLFSSL_LMS
622650 "Enable the PQ LMS Stateful Hash-based Signature Scheme (default: disabled)"
@@ -626,6 +654,22 @@ add_option(WOLFSSL_LMSSHA256192
626654 "Enable the LMS SHA_256_192 truncated variant (default: disabled)"
627655 "no" "yes;no" )
628656
657+ if (WOLFSSL_LMS)
658+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_HAVE_LMS" )
659+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_WC_LMS" )
660+
661+ set_wolfssl_definitions ("WOLFSSL_HAVE_LMS" RESULT )
662+ set_wolfssl_definitions ("WOLFSSL_WC_LMS" RESULT )
663+
664+ if (WOLFSSL_LMSSHA256192)
665+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_LMS_SHA256_192" )
666+ list (APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_NO_LMS_SHA256_256" )
667+
668+ set_wolfssl_definitions ("WOLFSSL_LMS_SHA256_192" RESULT )
669+ set_wolfssl_definitions ("WOLFSSL_NO_LMS_SHA256_256" RESULT )
670+ endif ()
671+ endif ()
672+
629673# Experimental features
630674add_option (WOLFSSL_EXPERIMENTAL
631675 "Enable experimental features (default: disabled)"
@@ -666,77 +710,6 @@ if (WOLFSSL_EXPERIMENTAL)
666710 message (STATUS "Looking for WOLFSSL_OQS - not found" )
667711 endif ()
668712
669- # Checking for experimental feature: WOLFSSL_MLKEM
670- message (STATUS "Looking for WOLFSSL_MLKEM" )
671- if (WOLFSSL_MLKEM)
672- set (WOLFSSL_FOUND_EXPERIMENTAL_FEATURE 1)
673-
674- message (STATUS "Automatically set related requirements for ML-KEM:" )
675- add_definitions ("-DWOLFSSL_HAVE_MLKEM" )
676- add_definitions ("-DWOLFSSL_WC_MLKEM" )
677- add_definitions ("-DWOLFSSL_SHA3" )
678- add_definitions ("-DWOLFSSL_SHAKE128" )
679- add_definitions ("-DWOLFSSL_SHAKE256" )
680-
681- set_wolfssl_definitions ("WOLFSSL_HAVE_MLKEM" RESULT )
682- set_wolfssl_definitions ("WOLFSSL_WC_MLKEM" RESULT )
683- set_wolfssl_definitions ("WOLFSSL_SHA3" RESULT )
684- set_wolfssl_definitions ("WOLFSSL_SHAKE128" RESULT )
685- set_wolfssl_definitions ("WOLFSSL_SHAKE256" RESULT )
686- message (STATUS "Looking for WOLFSSL_MLKEM - found" )
687- else ()
688- message (STATUS "Looking for WOLFSSL_MLKEM - not found" )
689- endif ()
690-
691- # Checking for experimental feature: WOLFSSL_LMS
692- message (STATUS "Looking for WOLFSSL_LMS" )
693- if (WOLFSSL_LMS)
694- set (WOLFSSL_FOUND_EXPERIMENTAL_FEATURE 2)
695-
696- message (STATUS "Automatically set related requirements for LMS" )
697- add_definitions ("-DWOLFSSL_HAVE_LMS" )
698- add_definitions ("-DWOLFSSL_WC_LMS" )
699- set_wolfssl_definitions ("WOLFSSL_HAVE_LMS" RESULT )
700- set_wolfssl_definitions ("WOLFSSL_WC_LMS" RESULT )
701- message (STATUS "Looking for WOLFSSL_LMS - found" )
702- # Checking for experimental feature: WOLFSSL_LMSSHA256192
703- if (WOLFSSL_LMSSHA256192)
704- message (STATUS "Automatically set related requirements for LMS SHA256-192" )
705- add_definitions ("-DWOLFSSL_LMS_SHA256_192" )
706- add_definitions ("-DWOLFSSL_NO_LMS_SHA256_256" )
707- set_wolfssl_definitions ("WOLFSSL_LMS_SHA256_192" RESULT )
708- set_wolfssl_definitions ("WOLFSSL_NO_LMS_SHA256_256" RESULT )
709- message (STATUS "Looking for WOLFSSL_LMSSHA256192 - found" )
710- else ()
711- message (STATUS "Looking for WOLFSSL_LMSSHA256192 - not found" )
712- endif ()
713- else ()
714- message (STATUS "Looking for WOLFSSL_LMS - not found" )
715- endif ()
716-
717- # Checking for experimental feature: Dilithium
718- message (STATUS "Looking for WOLFSSL_DILITHIUM" )
719- if (WOLFSSL_DILITHIUM)
720- set (WOLFSSL_FOUND_EXPERIMENTAL_FEATURE 1)
721-
722- message (STATUS "Automatically set related requirements for Dilithium:" )
723- add_definitions ("-DHAVE_DILITHIUM" )
724- add_definitions ("-DWOLFSSL_WC_DILITHIUM" )
725- add_definitions ("-DWOLFSSL_SHA3" )
726- add_definitions ("-DWOLFSSL_SHAKE128" )
727- add_definitions ("-DWOLFSSL_SHAKE256" )
728-
729- message (STATUS "Automatically set related requirements for Dilithium:" )
730- set_wolfssl_definitions ("HAVE_DILITHIUM" RESULT )
731- set_wolfssl_definitions ("WOLFSSL_WC_DILITHIUM" RESULT )
732- set_wolfssl_definitions ("WOLFSSL_SHA3" RESULT )
733- set_wolfssl_definitions ("WOLFSSL_SHAKE128" RESULT )
734- set_wolfssl_definitions ("WOLFSSL_SHAKE256" RESULT )
735- message (STATUS "Looking for WOLFSSL_DILITHIUM - found" )
736- else ()
737- message (STATUS "Looking for WOLFSSL_DILITHIUM - not found" )
738- endif ()
739-
740713 # Other experimental feature detection can be added here...
741714
742715 # Were any experimental features found? Display a message.
@@ -759,12 +732,6 @@ else()
759732 if (WOLFSSL_OQS)
760733 message (FATAL_ERROR "Error: WOLFSSL_OQS requires WOLFSSL_EXPERIMENTAL at this time." )
761734 endif ()
762- if (WOLFSSL_MLKEM)
763- message (FATAL_ERROR "Error: WOLFSSL_MLKEM requires WOLFSSL_EXPERIMENTAL at this time." )
764- endif ()
765- if (WOLFSSL_DILITHIUM)
766- message (FATAL_ERROR "Error: WOLFSSL_DILITHIUM requires WOLFSSL_EXPERIMENTAL at this time." )
767- endif ()
768735endif ()
769736
770737# LMS
0 commit comments