@@ -201,6 +201,20 @@ cmake_dependent_option(OQS_ENABLE_SIG_uov_ov_Is_pkc_skc "" ON "OQS_ENABLE_SIG_UO
201201cmake_dependent_option(OQS_ENABLE_SIG_uov_ov_Ip_pkc_skc "" ON "OQS_ENABLE_SIG_UOV" OFF )
202202cmake_dependent_option(OQS_ENABLE_SIG_uov_ov_III_pkc_skc "" ON "OQS_ENABLE_SIG_UOV" OFF )
203203cmake_dependent_option(OQS_ENABLE_SIG_uov_ov_V_pkc_skc "" ON "OQS_ENABLE_SIG_UOV" OFF )
204+
205+ option (OQS_ENABLE_SIG_SNOVA "Enable snova algorithm family" ON )
206+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4 "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
207+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4_SHAKE "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
208+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4_esk "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
209+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4_SHAKE_esk "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
210+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_37_17_2 "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
211+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_25_8_3 "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
212+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_56_25_2 "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
213+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_49_11_3 "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
214+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_37_8_4 "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
215+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_5 "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
216+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_60_10_4 "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
217+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_29_6_5 "" ON "OQS_ENABLE_SIG_SNOVA" OFF )
204218##### OQS_COPY_FROM_UPSTREAM_FRAGMENT_ADD_ENABLE_BY_ALG_END
205219
206220##### OQS_COPY_FROM_LIBJADE_FRAGMENT_ADD_ENABLE_BY_ALG_START
@@ -229,7 +243,7 @@ elseif (${OQS_ALGS_ENABLED} STREQUAL "STD")
229243elseif (${OQS_ALGS_ENABLED} STREQUAL "NIST_R4" )
230244 filter_algs("KEM_classic_mceliece_348864;KEM_classic_mceliece_348864f;KEM_classic_mceliece_460896;KEM_classic_mceliece_460896f;KEM_classic_mceliece_6688128;KEM_classic_mceliece_6688128f;KEM_classic_mceliece_6960119;KEM_classic_mceliece_6960119f;KEM_classic_mceliece_8192128;KEM_classic_mceliece_8192128f;KEM_hqc_128;KEM_hqc_192;KEM_hqc_256;KEM_bike_l1;KEM_bike_l3;KEM_bike_l5" )
231245elseif (${OQS_ALGS_ENABLED} STREQUAL "NIST_SIG_ONRAMP" )
232- filter_algs("SIG_mayo_1;SIG_mayo_2;SIG_mayo_3;SIG_mayo_5;SIG_cross_rsdp_128_balanced;SIG_cross_rsdp_128_fast;SIG_cross_rsdp_128_small;SIG_cross_rsdp_192_balanced;SIG_cross_rsdp_192_fast;SIG_cross_rsdp_192_small;SIG_cross_rsdp_256_balanced;SIG_cross_rsdp_256_fast;SIG_cross_rsdp_256_small;SIG_cross_rsdpg_128_balanced;SIG_cross_rsdpg_128_fast;SIG_cross_rsdpg_128_small;SIG_cross_rsdpg_192_balanced;SIG_cross_rsdpg_192_fast;SIG_cross_rsdpg_192_small;SIG_cross_rsdpg_256_balanced;SIG_cross_rsdpg_256_fast;SIG_cross_rsdpg_256_small;SIG_uov_ov_Ip;SIG_uov_ov_Is;SIG_uov_ov_III;SIG_uov_ov_V;SIG_uov_ov_Ip_pkc;SIG_uov_ov_Is_pkc;SIG_uov_ov_III_pkc;SIG_uov_ov_V_pkc;SIG_uov_ov_Ip_pkc_skc;SIG_uov_ov_Is_pkc_skc;SIG_uov_ov_III_pkc_skc;SIG_uov_ov_V_pkc_skc" )
246+ filter_algs("SIG_mayo_1;SIG_mayo_2;SIG_mayo_3;SIG_mayo_5;SIG_cross_rsdp_128_balanced;SIG_cross_rsdp_128_fast;SIG_cross_rsdp_128_small;SIG_cross_rsdp_192_balanced;SIG_cross_rsdp_192_fast;SIG_cross_rsdp_192_small;SIG_cross_rsdp_256_balanced;SIG_cross_rsdp_256_fast;SIG_cross_rsdp_256_small;SIG_cross_rsdpg_128_balanced;SIG_cross_rsdpg_128_fast;SIG_cross_rsdpg_128_small;SIG_cross_rsdpg_192_balanced;SIG_cross_rsdpg_192_fast;SIG_cross_rsdpg_192_small;SIG_cross_rsdpg_256_balanced;SIG_cross_rsdpg_256_fast;SIG_cross_rsdpg_256_small;SIG_uov_ov_Ip;SIG_uov_ov_Is;SIG_uov_ov_III;SIG_uov_ov_V;SIG_uov_ov_Ip_pkc;SIG_uov_ov_Is_pkc;SIG_uov_ov_III_pkc;SIG_uov_ov_V_pkc;SIG_uov_ov_Ip_pkc_skc;SIG_uov_ov_Is_pkc_skc;SIG_uov_ov_III_pkc_skc;SIG_uov_ov_V_pkc_skc;SNOVA_24_5_4;SNOVA_24_5_4_SHAKE;SNOVA_24_5_4_esk;SNOVA_24_5_4_SHAKE_esk;SNOVA_37_17_2;SNOVA_25_8_3;SNOVA_56_25_2;SNOVA_49_11_3;SNOVA_37_8_4;SNOVA_24_5_5;SNOVA_60_10_4;SNOVA_29_6_5 " )
233247else ()
234248 message (STATUS "Alg enablement unchanged" )
235249endif ()
@@ -844,6 +858,151 @@ if(OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
844858endif ()
845859endif ()
846860
861+
862+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
863+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
864+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_24_5_4" OFF )
865+ endif ()
866+ endif ()
867+
868+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
869+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
870+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_24_5_4" OFF )
871+ endif ()
872+ endif ()
873+
874+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
875+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
876+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4_SHAKE_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_24_5_4_SHAKE" OFF )
877+ endif ()
878+ endif ()
879+
880+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
881+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
882+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4_SHAKE_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_24_5_4_SHAKE" OFF )
883+ endif ()
884+ endif ()
885+
886+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
887+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
888+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4_esk_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_24_5_4_esk" OFF )
889+ endif ()
890+ endif ()
891+
892+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
893+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
894+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4_esk_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_24_5_4_esk" OFF )
895+ endif ()
896+ endif ()
897+
898+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
899+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
900+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4_SHAKE_esk_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_24_5_4_SHAKE_esk" OFF )
901+ endif ()
902+ endif ()
903+
904+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
905+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
906+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_4_SHAKE_esk_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_24_5_4_SHAKE_esk" OFF )
907+ endif ()
908+ endif ()
909+
910+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
911+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
912+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_37_17_2_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_37_17_2" OFF )
913+ endif ()
914+ endif ()
915+
916+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
917+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
918+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_37_17_2_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_37_17_2" OFF )
919+ endif ()
920+ endif ()
921+
922+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
923+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
924+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_25_8_3_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_25_8_3" OFF )
925+ endif ()
926+ endif ()
927+
928+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
929+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
930+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_25_8_3_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_25_8_3" OFF )
931+ endif ()
932+ endif ()
933+
934+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
935+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
936+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_56_25_2_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_56_25_2" OFF )
937+ endif ()
938+ endif ()
939+
940+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
941+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
942+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_56_25_2_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_56_25_2" OFF )
943+ endif ()
944+ endif ()
945+
946+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
947+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
948+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_49_11_3_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_49_11_3" OFF )
949+ endif ()
950+ endif ()
951+
952+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
953+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
954+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_49_11_3_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_49_11_3" OFF )
955+ endif ()
956+ endif ()
957+
958+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
959+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
960+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_37_8_4_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_37_8_4" OFF )
961+ endif ()
962+ endif ()
963+
964+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
965+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
966+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_37_8_4_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_37_8_4" OFF )
967+ endif ()
968+ endif ()
969+
970+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
971+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
972+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_5_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_24_5_5" OFF )
973+ endif ()
974+ endif ()
975+
976+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
977+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
978+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_24_5_5_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_24_5_5" OFF )
979+ endif ()
980+ endif ()
981+
982+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
983+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
984+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_60_10_4_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_60_10_4" OFF )
985+ endif ()
986+ endif ()
987+
988+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
989+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
990+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_60_10_4_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_60_10_4" OFF )
991+ endif ()
992+ endif ()
993+
994+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
995+ if (OQS_DIST_X86_64_BUILD OR (OQS_USE_AVX2_INSTRUCTIONS))
996+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_29_6_5_avx2 "" ON "OQS_ENABLE_SIG_snova_SNOVA_29_6_5" OFF )
997+ endif ()
998+ endif ()
999+
1000+ if (CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" )
1001+ if (OQS_DIST_ARM64_V8_BUILD OR (OQS_USE_ARM_NEON_INSTRUCTIONS AND OQS_USE_ARM_NEON_INSTRUCTIONS))
1002+ cmake_dependent_option(OQS_ENABLE_SIG_snova_SNOVA_29_6_5_neon "" ON "OQS_ENABLE_SIG_snova_SNOVA_29_6_5" OFF )
1003+ endif ()
1004+ endif ()
1005+
8471006##### OQS_COPY_FROM_UPSTREAM_FRAGMENT_ADD_ENABLE_BY_ALG_CONDITIONAL_END
8481007
8491008##### OQS_COPY_FROM_LIBJADE_FRAGMENT_ADD_ENABLE_BY_ALG_CONDITIONAL_START
@@ -959,8 +1118,8 @@ if(OQS_ALLOW_STFL_KEY_AND_SIG_GEN STREQUAL "ON")
9591118 message (STATUS "Experimental stateful key and signature generation is enabled. Ensure secret keys are securely stored to prevent multiple simultaneous sign operations." )
9601119endif ()
9611120
962- # Set XKCP (Keccak) required for Sphincs AVX2 code even if OpenSSL3 SHA3 is used:
963- if (${OQS_ENABLE_SIG_SPHINCS} OR NOT ${OQS_USE_SHA3_OPENSSL} )
1121+ # Set XKCP (Keccak) required for Sphincs and SNOVA AVX2 code even if OpenSSL3 SHA3 is used:
1122+ if (${OQS_ENABLE_SIG_SPHINCS} OR ${OQS_ENABLE_SIG_SNOVA} OR NOT ${OQS_USE_SHA3_OPENSSL} )
9641123 set (OQS_ENABLE_SHA3_xkcp_low ON )
9651124else ()
9661125 set (OQS_ENABLE_SHA3_xkcp_low OFF )
0 commit comments