@@ -60,6 +60,7 @@ option(SECP256K1_ENABLE_MODULE_ECDH "Enable ECDH module." ON)
6060option (SECP256K1_ENABLE_MODULE_RECOVERY "Enable ECDSA pubkey recovery module." OFF )
6161option (SECP256K1_ENABLE_MODULE_EXTRAKEYS "Enable extrakeys module." ON )
6262option (SECP256K1_ENABLE_MODULE_SCHNORRSIG "Enable schnorrsig module." ON )
63+ option (SECP256K1_ENABLE_MODULE_SCHNORRSIG_HALFAGG "Enable schnorrsig half-aggregation module." OFF )
6364option (SECP256K1_ENABLE_MODULE_MUSIG "Enable musig module." ON )
6465option (SECP256K1_ENABLE_MODULE_ELLSWIFT "Enable ElligatorSwift module." ON )
6566
@@ -69,6 +70,18 @@ if(SECP256K1_ENABLE_MODULE_ELLSWIFT)
6970 add_compile_definitions (ENABLE_MODULE_ELLSWIFT=1)
7071endif ()
7172
73+ option (SECP256K1_EXPERIMENTAL "Allow experimental configuration options." OFF )
74+ if (SECP256K1_ENABLE_MODULE_SCHNORRSIG_HALFAGG)
75+ if (NOT SECP256K1_EXPERIMENTAL)
76+ message (FATAL_ERROR "Schnorrsig half-aggregation is experimental. Use -DSECP256K1_EXPERIMENTAL=ON to allow." )
77+ endif ()
78+ if (DEFINED SECP256K1_ENABLE_MODULE_SCHNORRSIG AND NOT SECP256K1_ENABLE_MODULE_SCHNORRSIG)
79+ message (FATAL_ERROR "Module dependency error: You have disabled the schnorrsig module explicitly, but it is required by the Schnorrsig half-aggregation module." )
80+ endif ()
81+ set (SECP256K1_ENABLE_MODULE_SCHNORRSIG ON )
82+ add_compile_definitions (ENABLE_MODULE_SCHNORRSIG_HALFAGG=1)
83+ endif ()
84+
7285if (SECP256K1_ENABLE_MODULE_MUSIG)
7386 if (DEFINED SECP256K1_ENABLE_MODULE_SCHNORRSIG AND NOT SECP256K1_ENABLE_MODULE_SCHNORRSIG)
7487 message (FATAL_ERROR "Module dependency error: You have disabled the schnorrsig module explicitly, but it is required by the musig module." )
@@ -156,7 +169,6 @@ elseif(SECP256K1_ASM)
156169 endif ()
157170endif ()
158171
159- option (SECP256K1_EXPERIMENTAL "Allow experimental configuration options." OFF )
160172if (NOT SECP256K1_EXPERIMENTAL)
161173 if (SECP256K1_ASM STREQUAL "arm32" )
162174 message (FATAL_ERROR "ARM32 assembly is experimental. Use -DSECP256K1_EXPERIMENTAL=ON to allow." )
@@ -325,6 +337,7 @@ message(" ECDH ................................ ${SECP256K1_ENABLE_MODULE_ECDH}
325337message (" ECDSA pubkey recovery ............... ${SECP256K1_ENABLE_MODULE_RECOVERY} " )
326338message (" extrakeys ........................... ${SECP256K1_ENABLE_MODULE_EXTRAKEYS} " )
327339message (" schnorrsig .......................... ${SECP256K1_ENABLE_MODULE_SCHNORRSIG} " )
340+ message (" schnorrsig halfagg .................. ${SECP256K1_ENABLE_MODULE_SCHNORRSIG_HALFAGG} " )
328341message (" musig ............................... ${SECP256K1_ENABLE_MODULE_MUSIG} " )
329342message (" ElligatorSwift ...................... ${SECP256K1_ENABLE_MODULE_ELLSWIFT} " )
330343message ("Parameters:" )
0 commit comments