bulletproofs: add new empty module
This commit is contained in:
parent
6162d577fe
commit
048f9f8642
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,9 +1,12 @@
|
||||
bench
|
||||
bench_bulletproofs
|
||||
bench_ecmult
|
||||
bench_generator
|
||||
bench_rangeproof
|
||||
bench_internal
|
||||
bench_whitelist
|
||||
tests
|
||||
example_musig
|
||||
exhaustive_tests
|
||||
precompute_ecmult_gen
|
||||
precompute_ecmult
|
||||
|
@ -226,6 +226,10 @@ clean-precomp:
|
||||
|
||||
EXTRA_DIST = autogen.sh SECURITY.md
|
||||
|
||||
if ENABLE_MODULE_BULLETPROOFS
|
||||
include src/modules/bulletproofs/Makefile.am.include
|
||||
endif
|
||||
|
||||
if ENABLE_MODULE_ECDH
|
||||
include src/modules/ecdh/Makefile.am.include
|
||||
endif
|
||||
|
@ -19,6 +19,7 @@ valgrind --version || true
|
||||
--with-ecmult-gen-precision="$ECMULTGENPRECISION" \
|
||||
--enable-module-ecdh="$ECDH" --enable-module-recovery="$RECOVERY" \
|
||||
--enable-module-ecdsa-s2c="$ECDSA_S2C" \
|
||||
--enable-module-bulletproofs="$BULLETPROOFS" \
|
||||
--enable-module-rangeproof="$RANGEPROOF" --enable-module-whitelist="$WHITELIST" --enable-module-generator="$GENERATOR" \
|
||||
--enable-module-schnorrsig="$SCHNORRSIG" --enable-module-musig="$MUSIG" --enable-module-ecdsa-adaptor="$ECDSAADAPTOR" \
|
||||
--enable-module-schnorrsig="$SCHNORRSIG" \
|
||||
|
15
configure.ac
15
configure.ac
@ -140,6 +140,11 @@ AC_ARG_ENABLE(examples,
|
||||
AS_HELP_STRING([--enable-examples],[compile the examples [default=no]]), [],
|
||||
[SECP_SET_DEFAULT([enable_examples], [no], [yes])])
|
||||
|
||||
AC_ARG_ENABLE(module_bulletproofs,
|
||||
AS_HELP_STRING([--enable-module-bulletproofs],[enable Bulletproofs module (experimental)]),
|
||||
[],
|
||||
[SECP_SET_DEFAULT([enable_module_bulletproofs], [no], [yes])])
|
||||
|
||||
AC_ARG_ENABLE(module_ecdh,
|
||||
AS_HELP_STRING([--enable-module-ecdh],[enable ECDH module [default=no]]), [],
|
||||
[SECP_SET_DEFAULT([enable_module_ecdh], [no], [yes])])
|
||||
@ -417,6 +422,11 @@ if test x"$enable_module_rangeproof" = x"yes"; then
|
||||
AC_DEFINE(ENABLE_MODULE_RANGEPROOF, 1, [Define this symbol to enable the Pedersen / zero knowledge range proof module])
|
||||
fi
|
||||
|
||||
if test x"$enable_module_bulletproofs" = x"yes"; then
|
||||
enable_module_generator=yes
|
||||
AC_DEFINE(ENABLE_MODULE_BULLETPROOFS, 1, [Define this symbol to enable the Bulletproofs module])
|
||||
fi
|
||||
|
||||
if test x"$enable_module_generator" = x"yes"; then
|
||||
AC_DEFINE(ENABLE_MODULE_GENERATOR, 1, [Define this symbol to enable the NUMS generator module])
|
||||
fi
|
||||
@ -460,6 +470,9 @@ else
|
||||
# module (which automatically enables the module dependencies) we want to
|
||||
# print an error for the dependent module, not the module dependency. Hence,
|
||||
# we first test dependent modules.
|
||||
if test x"$enable_module_bulletproofs" = x"yes"; then
|
||||
AC_MSG_ERROR([Bulletproofs module is experimental. Use --enable-experimental to allow.])
|
||||
fi
|
||||
if test x"$enable_module_whitelist" = x"yes"; then
|
||||
AC_MSG_ERROR([Key whitelisting module is experimental. Use --enable-experimental to allow.])
|
||||
fi
|
||||
@ -502,6 +515,7 @@ AM_CONDITIONAL([USE_TESTS], [test x"$enable_tests" != x"no"])
|
||||
AM_CONDITIONAL([USE_EXHAUSTIVE_TESTS], [test x"$enable_exhaustive_tests" != x"no"])
|
||||
AM_CONDITIONAL([USE_EXAMPLES], [test x"$enable_examples" != x"no"])
|
||||
AM_CONDITIONAL([USE_BENCHMARK], [test x"$enable_benchmark" = x"yes"])
|
||||
AM_CONDITIONAL([ENABLE_MODULE_BULLETPROOFS], [test x"$enable_module_bulletproofs" = x"yes"])
|
||||
AM_CONDITIONAL([ENABLE_MODULE_ECDH], [test x"$enable_module_ecdh" = x"yes"])
|
||||
AM_CONDITIONAL([ENABLE_MODULE_MUSIG], [test x"$enable_module_musig" = x"yes"])
|
||||
AM_CONDITIONAL([ENABLE_MODULE_RECOVERY], [test x"$enable_module_recovery" = x"yes"])
|
||||
@ -541,6 +555,7 @@ echo " module whitelist = $enable_module_whitelist"
|
||||
echo " module musig = $enable_module_musig"
|
||||
echo " module ecdsa-s2c = $enable_module_ecdsa_s2c"
|
||||
echo " module ecdsa-adaptor = $enable_module_ecdsa_adaptor"
|
||||
echo " module bulletproofs = $enable_module_bulletproofs"
|
||||
echo
|
||||
echo " asm = $set_asm"
|
||||
echo " ecmult window size = $set_ecmult_window"
|
||||
|
18
include/secp256k1_bulletproofs.h
Normal file
18
include/secp256k1_bulletproofs.h
Normal file
@ -0,0 +1,18 @@
|
||||
#ifndef _SECP256K1_BULLETPROOFS_
|
||||
# define _SECP256K1_BULLETPROOFS_
|
||||
|
||||
# include "secp256k1.h"
|
||||
|
||||
# ifdef __cplusplus
|
||||
extern "C" {
|
||||
# endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* TODO */
|
||||
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
# endif
|
||||
|
||||
#endif
|
38
src/bench_bulletproofs.c
Normal file
38
src/bench_bulletproofs.c
Normal file
@ -0,0 +1,38 @@
|
||||
/**********************************************************************
|
||||
* Copyright (c) 2020 Andrew Poelstra *
|
||||
* Distributed under the MIT software license, see the accompanying *
|
||||
* file COPYING or http://www.opensource.org/licenses/mit-license.php.*
|
||||
**********************************************************************/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "include/secp256k1_bulletproofs.h"
|
||||
#include "util.h"
|
||||
#include "bench.h"
|
||||
|
||||
typedef struct {
|
||||
secp256k1_context* ctx;
|
||||
} bench_bulletproofs_data;
|
||||
|
||||
static void bench_bulletproofs_setup(void* arg) {
|
||||
(void) arg;
|
||||
}
|
||||
|
||||
static void bench_bulletproofs(void* arg, int iters) {
|
||||
bench_bulletproofs_data *data = (bench_bulletproofs_data*)arg;
|
||||
|
||||
(void) data;
|
||||
(void) iters;
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
bench_bulletproofs_data data;
|
||||
int iters = get_iters(32);
|
||||
|
||||
data.ctx = secp256k1_context_create(SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY);
|
||||
|
||||
run_benchmark("bulletproofs_verify_bit", bench_bulletproofs, bench_bulletproofs_setup, NULL, &data, 10, iters);
|
||||
|
||||
secp256k1_context_destroy(data.ctx);
|
||||
return 0;
|
||||
}
|
10
src/modules/bulletproofs/Makefile.am.include
Normal file
10
src/modules/bulletproofs/Makefile.am.include
Normal file
@ -0,0 +1,10 @@
|
||||
include_HEADERS += include/secp256k1_bulletproofs.h
|
||||
noinst_HEADERS += src/modules/bulletproofs/tests_impl.h
|
||||
noinst_HEADERS += src/modules/bulletproofs/main_impl.h
|
||||
|
||||
if USE_BENCHMARK
|
||||
noinst_PROGRAMS += bench_bulletproofs
|
||||
bench_bulletproofs_SOURCES = src/bench_bulletproofs.c
|
||||
bench_bulletproofs_LDADD = libsecp256k1.la $(SECP_LIBS)
|
||||
bench_bulletproofs_LDFLAGS = -static
|
||||
endif
|
12
src/modules/bulletproofs/main_impl.h
Normal file
12
src/modules/bulletproofs/main_impl.h
Normal file
@ -0,0 +1,12 @@
|
||||
/**********************************************************************
|
||||
* Copyright (c) 2020 Andrew Poelstra *
|
||||
* Distributed under the MIT software license, see the accompanying *
|
||||
* file COPYING or http://www.opensource.org/licenses/mit-license.php.*
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef _SECP256K1_MODULE_BULLETPROOFS_MAIN_
|
||||
#define _SECP256K1_MODULE_BULLETPROOFS_MAIN_
|
||||
|
||||
/* TODO */
|
||||
|
||||
#endif
|
14
src/modules/bulletproofs/tests_impl.h
Normal file
14
src/modules/bulletproofs/tests_impl.h
Normal file
@ -0,0 +1,14 @@
|
||||
/**********************************************************************
|
||||
* Copyright (c) 2020 Andrew Poelstra *
|
||||
* Distributed under the MIT software license, see the accompanying *
|
||||
* file COPYING or http://www.opensource.org/licenses/mit-license.php.*
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef _SECP256K1_MODULE_BULLETPROOFS_TEST_
|
||||
#define _SECP256K1_MODULE_BULLETPROOFS_TEST_
|
||||
|
||||
void run_bulletproofs_tests(void) {
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
#endif
|
@ -800,6 +800,10 @@ int secp256k1_tagged_sha256(const secp256k1_context* ctx, unsigned char *hash32,
|
||||
return 1;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_MODULE_BULLETPROOFS
|
||||
# include "modules/bulletproofs/main_impl.h"
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_MODULE_ECDH
|
||||
# include "modules/ecdh/main_impl.h"
|
||||
#endif
|
||||
|
@ -7132,6 +7132,10 @@ void run_ecdsa_edge_cases(void) {
|
||||
test_ecdsa_edge_cases();
|
||||
}
|
||||
|
||||
#ifdef ENABLE_MODULE_BULLETPROOFS
|
||||
# include "modules/bulletproofs/tests_impl.h"
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_MODULE_ECDH
|
||||
# include "modules/ecdh/tests_impl.h"
|
||||
#endif
|
||||
@ -7452,6 +7456,10 @@ int main(int argc, char **argv) {
|
||||
/* EC key arithmetic test */
|
||||
run_eckey_negate_test();
|
||||
|
||||
#ifdef ENABLE_MODULE_BULLETPROOFS
|
||||
run_bulletproofs_tests();
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_MODULE_ECDH
|
||||
/* ecdh tests */
|
||||
run_ecdh_tests();
|
||||
|
Loading…
x
Reference in New Issue
Block a user