Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/CMakeLists.txt
Show First 20 Lines • Show All 204 Lines • ▼ Show 20 Lines | |||||
# Endomorphism | # Endomorphism | ||||
option(SECP256K1_ENABLE_ENDOMORPHISM "Enable endomorphism" OFF) | option(SECP256K1_ENABLE_ENDOMORPHISM "Enable endomorphism" OFF) | ||||
if(SECP256K1_ENABLE_ENDOMORPHISM) | if(SECP256K1_ENABLE_ENDOMORPHISM) | ||||
set(USE_ENDOMORPHISM 1) | set(USE_ENDOMORPHISM 1) | ||||
endif() | endif() | ||||
# Make the emult window size customizable. | # Make the emult window size customizable. | ||||
set(SECP256K1_ECMULT_WINDOW_SIZE 15 CACHE STRING "Window size for ecmult precomputation for verification, specified as integer in range [2..24].") | set(SECP256K1_ECMULT_WINDOW_SIZE 15 CACHE STRING "Window size for ecmult precomputation for verification, specified as integer in range [2..24].") | ||||
if(${SECP256K1_ECMULT_WINDOW_SIZE} LESS 2 OR ${SECP256K1_ECMULT_WINDOW_SIZE} GREATER 24) | |||||
message(FATAL_ERROR "SECP256K1_ECMULT_WINDOW_SIZE must be an integer in range [2..24]") | |||||
endif() | |||||
set(SECP256K1_ECMULT_GEN_PRECISION 4 CACHE STRING "Precision bits to tune the precomputed table size for signing.") | |||||
set(VALID_PRECISIONS 2 4 8) | |||||
if(NOT ${SECP256K1_ECMULT_GEN_PRECISION} IN_LIST VALID_PRECISIONS) | |||||
message(FATAL_ERROR "SECP256K1_ECMULT_GEN_PRECISION not 2, 4, 8") | |||||
endif() | |||||
# Static precomputation for elliptic curve multiplication | # Static precomputation for elliptic curve multiplication | ||||
option(SECP256K1_ECMULT_STATIC_PRECOMPUTATION "Precompute libsecp256k1's elliptic curve multiplication tables" ON) | option(SECP256K1_ECMULT_STATIC_PRECOMPUTATION "Precompute libsecp256k1's elliptic curve multiplication tables" ON) | ||||
if(SECP256K1_ECMULT_STATIC_PRECOMPUTATION) | if(SECP256K1_ECMULT_STATIC_PRECOMPUTATION) | ||||
set(USE_ECMULT_STATIC_PRECOMPUTATION 1) | set(USE_ECMULT_STATIC_PRECOMPUTATION 1) | ||||
if(${SECP256K1_ECMULT_WINDOW_SIZE} LESS 2 OR ${SECP256K1_ECMULT_WINDOW_SIZE} GREATER 24) | |||||
message(FATAL_ERROR "SECP256K1_ECMULT_WINDOW_SIZE must be an integer in range [2..24]") | |||||
endif() | |||||
include(NativeExecutable) | include(NativeExecutable) | ||||
native_add_cmake_flags( | native_add_cmake_flags( | ||||
"-DSECP256K1_ECMULT_WINDOW_SIZE=${SECP256K1_ECMULT_WINDOW_SIZE}" | "-DSECP256K1_ECMULT_WINDOW_SIZE=${SECP256K1_ECMULT_WINDOW_SIZE}" | ||||
"-DSECP256K1_ECMULT_GEN_PRECISION=${SECP256K1_ECMULT_GEN_PRECISION}" | |||||
) | ) | ||||
add_native_executable(gen_context src/gen_context.c) | add_native_executable(gen_context src/gen_context.c) | ||||
add_custom_command( | add_custom_command( | ||||
OUTPUT src/ecmult_static_context.h | OUTPUT src/ecmult_static_context.h | ||||
COMMAND gen_context | COMMAND gen_context | ||||
) | ) | ||||
▲ Show 20 Lines • Show All 99 Lines • Show Last 20 Lines |