Skip to content

Commit c9558a2

Browse files
ZhePangsiv2r
ZhePang
authored andcommitted
Add an experimental schnorr signature adaptor module
add schnorr adaptor nonce function that follows BIP-340 and also accepts the adaptor point as input add presign, extract_t, adapt, and extract_adaptor APIs add tests for schnorr adaptor nonce functions and APIs updated the implementation and tests by accepting whole 33 bytes of adaptor point in the nonce function added new hash tags specifically for schnorr adaptor added new hash tags specifically for schnorr adaptor update the test to follow the new practice updated test vectors Bug fixed: all hash tags correct and passed all vector tests changed variable and function names for clarity and simplicity update naming and documentations and some debugs removed ret variable from extract, adapt, and extract_sec to be non-const time changed adaptor object from bytes to pubkey cleaned up doc, naming consistent, improved adapt fix presign & extract_adaptor fix all four api issues (didn't look at pr comments) fix ctime_tests for schnorr adaptor add instagibbs example (failing) There might be issues with `adaptor_extract` fix pre_sign. Now example passess test_vectors: impl helper funcs add adaptor test vectors fix nonce function tests fix test_schnorr_adaptor_api add edge cases tests (secadaptor remaining) add extract_sec edge case tests all tests complete improve the example file
1 parent 6152622 commit c9558a2

17 files changed

+2119
-16
lines changed

.github/workflows/ci.yml

+22-11
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ env:
4141
ECDSAADAPTOR: 'no'
4242
BPPP: 'no'
4343
SCHNORRSIG_HALFAGG: 'no'
44+
SCHNORRADAPTOR: 'no'
4445
### test options
4546
SECP256K1_TEST_ITERS:
4647
BENCH: 'yes'
@@ -79,14 +80,14 @@ jobs:
7980
matrix:
8081
configuration:
8182
- env_vars: { WIDEMUL: 'int64', RECOVERY: 'yes' }
82-
- env_vars: { WIDEMUL: 'int64', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes'}
83+
- env_vars: { WIDEMUL: 'int64', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', SCHNORRADAPTOR: 'yes'}
8384
- env_vars: { WIDEMUL: 'int128' }
8485
- env_vars: { WIDEMUL: 'int128_struct', ELLSWIFT: 'yes' }
8586
- env_vars: { WIDEMUL: 'int128', RECOVERY: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
86-
- env_vars: { WIDEMUL: 'int128', ECDH: 'yes', SCHNORRSIG: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes'}
87+
- env_vars: { WIDEMUL: 'int128', ECDH: 'yes', SCHNORRSIG: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', SCHNORRADAPTOR: 'yes'}
8788
- env_vars: { WIDEMUL: 'int128', ASM: 'x86_64', ELLSWIFT: 'yes' }
88-
- env_vars: { RECOVERY: 'yes', SCHNORRSIG: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes'}
89-
- env_vars: { CTIMETESTS: 'no', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', CPPFLAGS: '-DVERIFY' }
89+
- env_vars: { RECOVERY: 'yes', SCHNORRSIG: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', SCHNORRADAPTOR: 'yes'}
90+
- env_vars: { CTIMETESTS: 'no', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', SCHNORRADAPTOR: 'yes', CPPFLAGS: '-DVERIFY' }
9091
- env_vars: { BUILD: 'distcheck', WITH_VALGRIND: 'no', CTIMETESTS: 'no', BENCH: 'no' }
9192
- env_vars: { CPPFLAGS: '-DDETERMINISTIC' }
9293
- env_vars: { CFLAGS: '-O0', CTIMETESTS: 'no' }
@@ -158,6 +159,7 @@ jobs:
158159
ECDSAADAPTOR: 'yes'
159160
BPPP: 'yes'
160161
SCHNORRSIG_HALFAGG: 'yes'
162+
SCHNORRADAPTOR: 'yes'
161163
CC: ${{ matrix.cc }}
162164

163165
steps:
@@ -211,6 +213,7 @@ jobs:
211213
ECDSAADAPTOR: 'yes'
212214
BPPP: 'yes'
213215
SCHNORRSIG_HALFAGG: 'yes'
216+
SCHNORRADAPTOR: 'yes'
214217
CTIMETESTS: 'no'
215218

216219
steps:
@@ -271,6 +274,7 @@ jobs:
271274
ECDSAADAPTOR: 'yes'
272275
BPPP: 'yes'
273276
SCHNORRSIG_HALFAGG: 'yes'
277+
SCHNORRADAPTOR: 'yes'
274278
CTIMETESTS: 'no'
275279

276280
steps:
@@ -325,6 +329,7 @@ jobs:
325329
ECDSAADAPTOR: 'yes'
326330
BPPP: 'yes'
327331
SCHNORRSIG_HALFAGG: 'yes'
332+
SCHNORRADAPTOR: 'yes'
328333
CTIMETESTS: 'no'
329334

330335
strategy:
@@ -389,6 +394,7 @@ jobs:
389394
ECDSAADAPTOR: 'yes'
390395
BPPP: 'yes'
391396
SCHNORRSIG_HALFAGG: 'yes'
397+
SCHNORRADAPTOR: 'yes'
392398
CTIMETESTS: 'no'
393399

394400
steps:
@@ -450,6 +456,7 @@ jobs:
450456
ECDSAADAPTOR: 'yes'
451457
BPPP: 'yes'
452458
SCHNORRSIG_HALFAGG: 'yes'
459+
SCHNORRADAPTOR: 'yes'
453460
CTIMETESTS: 'no'
454461
SECP256K1_TEST_ITERS: 2
455462

@@ -510,6 +517,7 @@ jobs:
510517
ECDSAADAPTOR: 'yes'
511518
BPPP: 'yes'
512519
SCHNORRSIG_HALFAGG: 'yes'
520+
SCHNORRADAPTOR: 'yes'
513521
CTIMETESTS: 'no'
514522
CFLAGS: '-fsanitize=undefined,address -g'
515523
UBSAN_OPTIONS: 'print_stacktrace=1:halt_on_error=1'
@@ -576,6 +584,7 @@ jobs:
576584
ECDSAADAPTOR: 'yes'
577585
BPPP: 'yes'
578586
SCHNORRSIG_HALFAGG: 'yes'
587+
SCHNORRADAPTOR: 'yes'
579588
CTIMETESTS: 'yes'
580589
CC: 'clang'
581590
SECP256K1_TEST_ITERS: 32
@@ -632,6 +641,7 @@ jobs:
632641
ECDSAADAPTOR: 'yes'
633642
BPPP: 'yes'
634643
SCHNORRSIG_HALFAGG: 'yes'
644+
SCHNORRADAPTOR: 'yes'
635645
CTIMETESTS: 'no'
636646

637647
strategy:
@@ -688,15 +698,15 @@ jobs:
688698
fail-fast: false
689699
matrix:
690700
env_vars:
691-
- { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes' }
701+
- { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', SCHNORRADAPTOR: 'yes' }
692702
- { WIDEMUL: 'int128_struct', ECMULTGENPRECISION: 2, ECMULTWINDOW: 4 }
693-
- { WIDEMUL: 'int128', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes' }
703+
- { WIDEMUL: 'int128', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', SCHNORRADAPTOR: 'yes' }
694704
- { WIDEMUL: 'int128', RECOVERY: 'yes' }
695-
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes' }
696-
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', CC: 'gcc' }
697-
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
698-
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', CC: 'gcc', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
699-
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', CPPFLAGS: '-DVERIFY', CTIMETESTS: 'no' }
705+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', SCHNORRADAPTOR: 'yes' }
706+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', SCHNORRADAPTOR: 'yes', CC: 'gcc' }
707+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', SCHNORRADAPTOR: 'yes', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
708+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', SCHNORRADAPTOR: 'yes', CC: 'gcc', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
709+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', EXPERIMENTAL: 'yes', ECDSA_S2C: 'yes', RANGEPROOF: 'yes', WHITELIST: 'yes', GENERATOR: 'yes', MUSIG: 'yes', ECDSAADAPTOR: 'yes', BPPP: 'yes', SCHNORRSIG_HALFAGG: 'yes', SCHNORRADAPTOR: 'yes', CPPFLAGS: '-DVERIFY', CTIMETESTS: 'no' }
700710
- BUILD: 'distcheck'
701711

702712
steps:
@@ -816,6 +826,7 @@ jobs:
816826
ECDSAADAPTOR: 'yes'
817827
BPPP: 'yes'
818828
SCHNORRSIG_HALFAGG: 'yes'
829+
SCHNORRADAPTOR: 'yes'
819830

820831
steps:
821832
- name: Checkout

Makefile.am

+15
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,17 @@ musig_example_LDFLAGS += -lbcrypt
195195
endif
196196
TESTS += musig_example
197197
endif
198+
if ENABLE_MODULE_SCHNORR_ADAPTOR
199+
noinst_PROGRAMS += schnorr_adaptor_example
200+
schnorr_adaptor_example_SOURCES = examples/schnorr_adaptor.c
201+
schnorr_adaptor_example_CPPFLAGS = -I$(top_srcdir)/include -DSECP256K1_STATIC
202+
schnorr_adaptor_example_LDADD = libsecp256k1.la
203+
schnorr_adaptor_example_LDFLAGS = -static
204+
if BUILD_WINDOWS
205+
schnorr_adaptor_example_LDFLAGS += -lbcrypt
206+
endif
207+
TESTS += schnorr_adaptor_example
208+
endif
198209
endif
199210

200211
### Precomputed tables
@@ -320,3 +331,7 @@ endif
320331
if ENABLE_MODULE_ECDSA_ADAPTOR
321332
include src/modules/ecdsa_adaptor/Makefile.am.include
322333
endif
334+
335+
if ENABLE_MODULE_SCHNORR_ADAPTOR
336+
include src/modules/schnorr_adaptor/Makefile.am.include
337+
endif

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ libsecp256k1-zkp
33

44
![Dependencies: None](https://img.shields.io/badge/dependencies-none-success)
55

6-
A fork of [libsecp256k1](https://github.com/bitcoin-core/secp256k1) with support for advanced and experimental features such as Confidential Assets and MuSig2
6+
A fork of [libsecp256k1](https://github.com/bitcoin-core/secp256k1) with support for advanced and experimental features such as Confidential Assets and MuSig2
77

88
Added features:
99
* Experimental module for ECDSA adaptor signatures.
@@ -72,6 +72,7 @@ Usage examples
7272
Usage examples can be found in the [examples](examples) directory. To compile them you need to configure with `--enable-examples`.
7373
* [ECDSA example](examples/ecdsa.c)
7474
* [Schnorr signatures example](examples/schnorr.c)
75+
* [Schnorr adaptor signatures example](examples/schnorr_adaptor.c)
7576
* [Deriving a shared secret (ECDH) example](examples/ecdh.c)
7677
* [MuSig example](examples/musig.c)
7778

ci/ci.sh

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ esac
8383
--enable-module-schnorrsig="$SCHNORRSIG" --enable-module-musig="$MUSIG" --enable-module-ecdsa-adaptor="$ECDSAADAPTOR" \
8484
--enable-module-schnorrsig="$SCHNORRSIG" \
8585
--enable-module-schnorrsig-halfagg="$SCHNORRSIG_HALFAGG" \
86+
--enable-module-schnorr-adaptor="$SCHNORRADAPTOR" \
8687
--enable-examples="$EXAMPLES" \
8788
--enable-ctime-tests="$CTIMETESTS" \
8889
--with-valgrind="$WITH_VALGRIND" \

configure.ac

+14
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,10 @@ AC_ARG_ENABLE(module_schnorrsig_halfagg,
188188
AS_HELP_STRING([--enable-module-schnorrsig-halfagg],[enable schnorrsig half-aggregation module (experimental) [default=no]]), [],
189189
[SECP_SET_DEFAULT([enable_module_schnorrsig_halfagg], [no], [yes])])
190190

191+
AC_ARG_ENABLE(module_schnorr_adaptor,
192+
AS_HELP_STRING([--enable-module-schnorr-adaptor],[enable Schnorr adaptor module [default=no]]), [],
193+
[SECP_SET_DEFAULT([enable_module_schnorr_adaptor], [no], [yes])])
194+
191195
AC_ARG_ENABLE(module_ellswift,
192196
AS_HELP_STRING([--enable-module-ellswift],[enable ElligatorSwift module [default=yes]]), [],
193197
[SECP_SET_DEFAULT([enable_module_ellswift], [yes], [yes])])
@@ -454,6 +458,11 @@ if test x"$enable_module_schnorrsig_halfagg" = x"yes"; then
454458
enable_module_schnorrsig=yes
455459
fi
456460

461+
if test x"$enable_module_schnorr_adaptor" = x"yes"; then
462+
SECP_CONFIG_DEFINES="$SECP_CONFIG_DEFINES -DENABLE_MODULE_SCHNORR_ADAPTOR=1"
463+
enable_module_schnorrsig=yes
464+
fi
465+
457466
if test x"$enable_module_bppp" = x"yes"; then
458467
if test x"$enable_module_generator" = x"no"; then
459468
AC_MSG_ERROR([Module dependency error: You have disabled the generator module explicitly, but it is required by the bppp module.])
@@ -555,6 +564,9 @@ else
555564
if test x"$enable_module_schnorrsig_halfagg" = x"yes"; then
556565
AC_MSG_ERROR([Schnorrsig Half-Aggregation module is experimental. Use --enable-experimental to allow.])
557566
fi
567+
if test x"$enable_module_schnorr_adaptor" = x"yes"; then
568+
AC_MSG_ERROR([Schnorr adaptor signatures module is experimental. Use --enable-experimental to allow.])
569+
fi
558570
if test x"$enable_module_bppp" = x"yes"; then
559571
AC_MSG_ERROR([Bulletproofs++ module is experimental. Use --enable-experimental to allow.])
560572
fi
@@ -611,6 +623,7 @@ AM_CONDITIONAL([ENABLE_MODULE_ECDSA_S2C], [test x"$enable_module_ecdsa_s2c" = x"
611623
AM_CONDITIONAL([ENABLE_MODULE_ECDSA_ADAPTOR], [test x"$enable_module_ecdsa_adaptor" = x"yes"])
612624
AM_CONDITIONAL([ENABLE_MODULE_BPPP], [test x"$enable_module_bppp" = x"yes"])
613625
AM_CONDITIONAL([ENABLE_MODULE_SCHNORRSIG_HALFAGG], [test x"$enable_module_schnorrsig_halfagg" = x"yes"])
626+
AM_CONDITIONAL([ENABLE_MODULE_SCHNORR_ADAPTOR], [test x"$enable_module_schnorr_adaptor" = x"yes"])
614627
AM_CONDITIONAL([USE_REDUCED_SURJECTION_PROOF_SIZE], [test x"$use_reduced_surjection_proof_size" = x"yes"])
615628
AM_CONDITIONAL([USE_EXTERNAL_ASM], [test x"$enable_external_asm" = x"yes"])
616629
AM_CONDITIONAL([USE_ASM_ARM], [test x"$set_asm" = x"arm32"])
@@ -651,6 +664,7 @@ echo " module ecdsa-s2c = $enable_module_ecdsa_s2c"
651664
echo " module ecdsa-adaptor = $enable_module_ecdsa_adaptor"
652665
echo " module bppp = $enable_module_bppp"
653666
echo " module schnorrsig-halfagg = $enable_module_schnorrsig_halfagg"
667+
echo " module schnorr-adaptor = $enable_module_schnorr_adaptor"
654668
echo
655669
echo " asm = $set_asm"
656670
echo " ecmult window size = $set_ecmult_window"

examples/CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,7 @@ endif()
2828
if(SECP256K1_ENABLE_MODULE_SCHNORRSIG)
2929
add_example(schnorr)
3030
endif()
31+
32+
if(SECP256K1_ENABLE_MODULE_SCHNORR_ADAPTOR)
33+
add_example(schnorr_adaptor)
34+
endif()

0 commit comments

Comments
 (0)