From c7c837882d422f7286c48d00cc88d209071b6ce7 Mon Sep 17 00:00:00 2001 From: Fabian Jahr Date: Thu, 28 Nov 2024 18:25:09 +0100 Subject: [PATCH] build: Add build option for batch module --- CMakeLists.txt | 15 ++++++++++++++- src/CMakeLists.txt | 5 +++++ src/modules/batch/main_impl.h | 2 +- src/modules/extrakeys/batch_add_impl.h | 6 +++--- src/modules/schnorrsig/batch_add_impl.h | 6 +++--- 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aba6e51259..6946a262c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,6 +60,7 @@ option(SECP256K1_ENABLE_MODULE_ECDH "Enable ECDH module." ON) option(SECP256K1_ENABLE_MODULE_RECOVERY "Enable ECDSA pubkey recovery module." OFF) option(SECP256K1_ENABLE_MODULE_EXTRAKEYS "Enable extrakeys module." ON) option(SECP256K1_ENABLE_MODULE_SCHNORRSIG "Enable schnorrsig module." ON) +option(SECP256K1_ENABLE_MODULE_BATCH "Enable batch module." OFF) option(SECP256K1_ENABLE_MODULE_MUSIG "Enable musig module." ON) option(SECP256K1_ENABLE_MODULE_ELLSWIFT "Enable ElligatorSwift module." ON) @@ -69,6 +70,18 @@ if(SECP256K1_ENABLE_MODULE_ELLSWIFT) add_compile_definitions(ENABLE_MODULE_ELLSWIFT=1) endif() +option(SECP256K1_EXPERIMENTAL "Allow experimental configuration options." OFF) +if(SECP256K1_ENABLE_MODULE_BATCH) + if(NOT SECP256K1_EXPERIMENTAL) + message(FATAL_ERROR "Schnorrsig batch validation is experimental. Use -DSECP256K1_EXPERIMENTAL=ON to allow.") + endif() + if(DEFINED SECP256K1_ENABLE_MODULE_SCHNORRSIG AND NOT SECP256K1_ENABLE_MODULE_SCHNORRSIG) + message(FATAL_ERROR "Module dependency error: You have disabled the schnorrsig module explicitly, but it is required by the Schnorrsig batch validation module.") + endif() + set(SECP256K1_ENABLE_MODULE_SCHNORRSIG ON) + add_compile_definitions(ENABLE_MODULE_BATCH=1) +endif() + if(SECP256K1_ENABLE_MODULE_MUSIG) if(DEFINED SECP256K1_ENABLE_MODULE_SCHNORRSIG AND NOT SECP256K1_ENABLE_MODULE_SCHNORRSIG) 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) endif() endif() -option(SECP256K1_EXPERIMENTAL "Allow experimental configuration options." OFF) if(NOT SECP256K1_EXPERIMENTAL) if(SECP256K1_ASM STREQUAL "arm32") message(FATAL_ERROR "ARM32 assembly is experimental. Use -DSECP256K1_EXPERIMENTAL=ON to allow.") @@ -325,6 +337,7 @@ message(" ECDH ................................ ${SECP256K1_ENABLE_MODULE_ECDH} message(" ECDSA pubkey recovery ............... ${SECP256K1_ENABLE_MODULE_RECOVERY}") message(" extrakeys ........................... ${SECP256K1_ENABLE_MODULE_EXTRAKEYS}") message(" schnorrsig .......................... ${SECP256K1_ENABLE_MODULE_SCHNORRSIG}") +message(" batch ............................... ${SECP256K1_ENABLE_MODULE_BATCH}") message(" musig ............................... ${SECP256K1_ENABLE_MODULE_MUSIG}") message(" ElligatorSwift ...................... ${SECP256K1_ENABLE_MODULE_ELLSWIFT}") message("Parameters:") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f31b8c8f55..701f8471cd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -132,6 +132,11 @@ if(SECP256K1_INSTALL) if(SECP256K1_ENABLE_MODULE_SCHNORRSIG) list(APPEND ${PROJECT_NAME}_headers "${PROJECT_SOURCE_DIR}/include/secp256k1_schnorrsig.h") endif() + if(SECP256K1_ENABLE_MODULE_BATCH) + list(APPEND ${PROJECT_NAME}_headers "${PROJECT_SOURCE_DIR}/include/secp256k1_batch.h") + list(APPEND ${PROJECT_NAME}_headers "${PROJECT_SOURCE_DIR}/include/secp256k1_schnorrsig_batch.h") + list(APPEND ${PROJECT_NAME}_headers "${PROJECT_SOURCE_DIR}/include/secp256k1_tweak_check_batch.h") + endif() if(SECP256K1_ENABLE_MODULE_MUSIG) list(APPEND ${PROJECT_NAME}_headers "${PROJECT_SOURCE_DIR}/include/secp256k1_musig.h") endif() diff --git a/src/modules/batch/main_impl.h b/src/modules/batch/main_impl.h index 29c1737153..10e43df028 100644 --- a/src/modules/batch/main_impl.h +++ b/src/modules/batch/main_impl.h @@ -1,7 +1,7 @@ #ifndef SECP256K1_MODULE_BATCH_MAIN_H #define SECP256K1_MODULE_BATCH_MAIN_H -#include "include/secp256k1_batch.h" +#include "../../../include/secp256k1_batch.h" /* Maximum number of scalar-point pairs on the batch * for which `secp256k1_batch_verify` remains efficient */ diff --git a/src/modules/extrakeys/batch_add_impl.h b/src/modules/extrakeys/batch_add_impl.h index 3074214585..46798fbe46 100644 --- a/src/modules/extrakeys/batch_add_impl.h +++ b/src/modules/extrakeys/batch_add_impl.h @@ -1,9 +1,9 @@ #ifndef SECP256K1_MODULE_EXTRAKEYS_BATCH_ADD_IMPL_H #define SECP256K1_MODULE_EXTRAKEYS_BATCH_ADD_IMPL_H -#include "include/secp256k1_extrakeys.h" -#include "include/secp256k1_tweak_check_batch.h" -#include "src/modules/batch/main_impl.h" +#include "../../../include/secp256k1_extrakeys.h" +#include "../../../include/secp256k1_tweak_check_batch.h" +#include "..//batch/main_impl.h" /* The number of scalar-point pairs allocated on the scratch space * by `secp256k1_batch_add_xonlypub_tweak_check` */ diff --git a/src/modules/schnorrsig/batch_add_impl.h b/src/modules/schnorrsig/batch_add_impl.h index d43e6a34db..7c3da4a29d 100644 --- a/src/modules/schnorrsig/batch_add_impl.h +++ b/src/modules/schnorrsig/batch_add_impl.h @@ -1,9 +1,9 @@ #ifndef SECP256K1_MODULE_SCHNORRSIG_BATCH_ADD_IMPL_H #define SECP256K1_MODULE_SCHNORRSIG_BATCH_ADD_IMPL_H -#include "include/secp256k1_schnorrsig.h" -#include "include/secp256k1_schnorrsig_batch.h" -#include "src/modules/batch/main_impl.h" +#include "../../../include/secp256k1_schnorrsig.h" +#include "../../../include/secp256k1_schnorrsig_batch.h" +#include "../batch/main_impl.h" /* The number of scalar-point pairs allocated on the scratch space * by `secp256k1_batch_add_schnorrsig` */