From 55a2f7a8409b37d502d8b6d1928721a7b01fe6fd Mon Sep 17 00:00:00 2001 From: Eunovo Date: Tue, 12 Nov 2024 11:40:11 +0000 Subject: [PATCH] Squashed 'src/secp256k1/' changes from 2f2ccc4695..9827fbfd41 9827fbfd41 Setup batch experimental module on cmake 89a54e23de Clear warnings fb52de16b9 WIP: Silent merge conflicts f1a167edff batch: Generate graphs for batch verification speed up 63823d9423 batch, extrakeys: Add benchmark for batch verify and `tweak_add_check` b2f217c0ec batch: Add tests for `batch_add_*` APIs ac564e9a23 batch,ecmult: Add tests for core batch APIs and `strauss_batch` refactor f0c9b8801d batch: Add API usage example 3ab4a4c81e batch: Add `batch_add_*` APIs ee9c242a80 batch, ecmult: Add `batch_verify` API and refactor `strauss_batch` a00fbe43aa batch: Add `create` and `destroy` APIs e7e627fa52 batch: Initialize an experimental batch module 0cdc758a56 Merge bitcoin-core/secp256k1#1631: release: prepare for 0.6.0 39d5dfd542 release: prepare for 0.6.0 df2eceb279 build: add ellswift.md and musig.md to release tarball a306bb7e90 tools: fix check-abi.sh after cmake out locations were changed 145868a84d Do not export `secp256k1_musig_nonce_gen_internal` b161bffb8b Merge bitcoin-core/secp256k1#1579: Clear sensitive memory without getting optimized out (revival of #636) a38d879a1a Merge bitcoin-core/secp256k1#1628: Name public API structs 7d48f5ed02 Merge bitcoin-core/secp256k1#1581: test, ci: Lower default iteration count to 16 694342fdb7 Name public API structs 0f73caf7c6 test, ci: Lower default iteration count to 16 9a8db52f4e Merge bitcoin-core/secp256k1#1582: cmake, test: Add `secp256k1_` prefix to test names 765ef53335 Clear _gej instances after point multiplication to avoid potential leaks 349e6ab916 Introduce separate _clear functions for hash module 99cc9fd6d0 Don't rely on memset to set signed integers to 0 97c57f42ba Implement various _clear() functions with secp256k1_memclear() 9bb368d146 Use secp256k1_memclear() to clear stack memory instead of memset() e3497bbf00 Separate between clearing memory and setting to zero in tests d79a6ccd43 Separate secp256k1_fe_set_int( . , 0 ) from secp256k1_fe_clear() 1c08126222 Add secp256k1_memclear() for clearing secret data 1464f15c81 Merge bitcoin-core/secp256k1#1625: util: Remove unused (u)int64_t formatting macros 980c08df80 util: Remove unused (u)int64_t formatting macros 9b7c59cbb9 Merge bitcoin-core/secp256k1#1624: ci: Update macOS image 096e3e23f6 ci: Update macOS image e7d384488e Don't clear secrets in pippenger implementation 68b55209f1 Merge bitcoin-core/secp256k1#1619: musig: ctimetests: fix _declassify range for generated nonce points f0868a9b3d Merge bitcoin-core/secp256k1#1595: build: 45839th attempt to fix symbol visibility on Windows 1fae76f50c Merge bitcoin-core/secp256k1#1620: Remove unused scratch space from API 8be3839fb2 Remove unused scratch space from API 57eda3ba30 musig: ctimetests: fix _declassify range for generated nonce points 87384f5c0f cmake, test: Add `secp256k1_` prefix to test names e59158b6eb Merge bitcoin-core/secp256k1#1553: cmake: Set top-level target output locations 18f9b967c2 Merge bitcoin-core/secp256k1#1616: examples: do not retry generating seckey randomness in musig 5bab8f6d3c examples: make key generation doc consistent e8908221a4 examples: do not retry generating seckey randomness in musig 70b6be1834 extrakeys: improve doc of keypair_create (don't suggest retry) 01b5893389 Merge bitcoin-core/secp256k1#1599: #1570 improve examples: remove key generation loop cd4f84f3ba Improve examples/documentation: remove key generation loops a88aa93506 Merge bitcoin-core/secp256k1#1603: f can never equal -m 3660fe5e2a Merge bitcoin-core/secp256k1#1479: Add module "musig" that implements MuSig2 multi-signatures (BIP 327) 168c92011f build: allow enabling the musig module in cmake f411841a46 Add module "musig" that implements MuSig2 multi-signatures (BIP 327) 0be79660f3 util: add constant-time is_zero_array function c8fbdb1b97 group: add ge_to_bytes_ext and ge_from_bytes_ext ef7ff03407 f can never equal -m c232486d84 Revert "cmake: Set `ENVIRONMENT` property for examples on Windows" 26e4a7c214 cmake: Set top-level target output locations 4c57c7a5a9 Merge bitcoin-core/secp256k1#1554: cmake: Clean up testing code 447334cb06 include: Avoid visibility("default") on Windows 472faaa8ee Merge bitcoin-core/secp256k1#1604: doc: fix typos in `secp256k1_ecdsa_{recoverable_,}signature` API description 292310fbb2 doc: fix typos in `secp256k1_ecdsa_{recoverable_,}signature` API description 85e224dd97 group: add ge_to_bytes and ge_from_bytes 7c987ec89e cmake: Call `enable_testing()` unconditionally 6aa576515e cmake: Delete `CTest` module git-subtree-dir: src/secp256k1 git-subtree-split: 9827fbfd4164080b3de5e1238bc75fb4f07dd5e1 --- .cirrus.yml | 5 +- .github/workflows/ci.yml | 51 +- .gitignore | 2 + CHANGELOG.md | 23 +- CMakeLists.txt | 59 +- Makefile.am | 31 + README.md | 2 + batch_example | Bin 0 -> 1501904 bytes ci/ci.sh | 3 +- ci/cirrus.sh | 82 ++ configure.ac | 47 +- doc/musig.md | 54 + doc/speedup-batch.md | 15 + doc/speedup-batch/.gitignore | 1 + doc/speedup-batch/Makefile | 23 + doc/speedup-batch/bench.sh | 13 + doc/speedup-batch/bench_output.txt | 137 ++ doc/speedup-batch/bench_output.txt.log | 127 ++ doc/speedup-batch/plot.gp | 41 + .../schnorrsig-speedup-batch.png | Bin 0 -> 8192 bytes .../tweakcheck-speedup-batch.png | Bin 0 -> 8639 bytes examples/CMakeLists.txt | 17 +- examples/batch.c | 181 +++ examples/ecdh.c | 22 +- examples/ecdsa.c | 22 +- examples/ellswift.c | 22 +- examples/musig.c | 260 ++++ examples/schnorr.c | 25 +- include/secp256k1.h | 62 +- include/secp256k1_batch.h | 110 ++ include/secp256k1_extrakeys.h | 13 +- include/secp256k1_musig.h | 588 +++++++++ include/secp256k1_recovery.h | 4 +- include/secp256k1_schnorrsig.h | 2 +- include/secp256k1_schnorrsig_batch.h | 42 + include/secp256k1_tweak_check_batch.h | 50 + src/CMakeLists.txt | 12 +- src/bench.c | 40 +- src/bench.h | 4 +- src/bench_ecmult.c | 2 +- src/ctime_tests.c | 57 + src/ecmult_gen_impl.h | 9 +- src/ecmult_impl.h | 91 +- src/field.h | 7 +- src/field_10x26_impl.h | 7 - src/field_5x52_impl.h | 7 - src/field_impl.h | 13 +- src/group.h | 16 + src/group_impl.h | 62 +- src/hash.h | 3 + src/hash_impl.h | 19 +- src/libsecp256k1-config.h | 117 ++ src/libsecp256k1-config.h.in | 116 ++ src/modinv32_impl.h | 10 +- src/modinv64_impl.h | 10 +- src/modules/batch/Makefile.am.include | 3 + src/modules/batch/main_impl.h | 206 +++ src/modules/batch/tests_impl.h | 214 +++ src/modules/ecdh/main_impl.h | 7 +- src/modules/ellswift/main_impl.h | 4 +- src/modules/extrakeys/Makefile.am.include | 7 + src/modules/extrakeys/batch_add_impl.h | 151 +++ src/modules/extrakeys/batch_add_tests_impl.h | 165 +++ src/modules/extrakeys/bench_impl.h | 139 ++ src/modules/musig/Makefile.am.include | 8 + src/modules/musig/keyagg.h | 32 + src/modules/musig/keyagg_impl.h | 291 +++++ src/modules/musig/main_impl.h | 12 + src/modules/musig/session.h | 24 + src/modules/musig/session_impl.h | 816 ++++++++++++ src/modules/musig/tests_impl.h | 1143 +++++++++++++++++ src/modules/musig/vectors.h | 346 +++++ src/modules/schnorrsig/Makefile.am.include | 7 + src/modules/schnorrsig/batch_add_impl.h | 158 +++ src/modules/schnorrsig/batch_add_tests_impl.h | 313 +++++ src/modules/schnorrsig/bench_impl.h | 49 +- src/modules/schnorrsig/main_impl.h | 4 +- src/modules/schnorrsig/tests_impl.h | 89 +- src/scalar_4x64_impl.h | 7 - src/scalar_8x32_impl.h | 11 - src/scalar_impl.h | 4 + src/scalar_low_impl.h | 2 - src/scratch.h | 2 + src/secp256k1.c | 42 +- src/stamp-h1 | 1 + src/tests.c | 244 +++- src/testutil.h | 2 +- src/util.h | 58 +- tools/check-abi.sh | 9 +- tools/test_vectors_musig2_generate.py | 656 ++++++++++ 90 files changed, 7597 insertions(+), 367 deletions(-) create mode 100755 batch_example create mode 100755 ci/cirrus.sh create mode 100644 doc/musig.md create mode 100644 doc/speedup-batch.md create mode 100644 doc/speedup-batch/.gitignore create mode 100644 doc/speedup-batch/Makefile create mode 100755 doc/speedup-batch/bench.sh create mode 100644 doc/speedup-batch/bench_output.txt create mode 100644 doc/speedup-batch/bench_output.txt.log create mode 100644 doc/speedup-batch/plot.gp create mode 100644 doc/speedup-batch/schnorrsig-speedup-batch.png create mode 100644 doc/speedup-batch/tweakcheck-speedup-batch.png create mode 100644 examples/batch.c create mode 100644 examples/musig.c create mode 100644 include/secp256k1_batch.h create mode 100644 include/secp256k1_musig.h create mode 100644 include/secp256k1_schnorrsig_batch.h create mode 100644 include/secp256k1_tweak_check_batch.h create mode 100644 src/libsecp256k1-config.h create mode 100644 src/libsecp256k1-config.h.in create mode 100644 src/modules/batch/Makefile.am.include create mode 100644 src/modules/batch/main_impl.h create mode 100644 src/modules/batch/tests_impl.h create mode 100644 src/modules/extrakeys/batch_add_impl.h create mode 100644 src/modules/extrakeys/batch_add_tests_impl.h create mode 100644 src/modules/extrakeys/bench_impl.h create mode 100644 src/modules/musig/Makefile.am.include create mode 100644 src/modules/musig/keyagg.h create mode 100644 src/modules/musig/keyagg_impl.h create mode 100644 src/modules/musig/main_impl.h create mode 100644 src/modules/musig/session.h create mode 100644 src/modules/musig/session_impl.h create mode 100644 src/modules/musig/tests_impl.h create mode 100644 src/modules/musig/vectors.h create mode 100644 src/modules/schnorrsig/batch_add_impl.h create mode 100644 src/modules/schnorrsig/batch_add_tests_impl.h create mode 100644 src/stamp-h1 create mode 100755 tools/test_vectors_musig2_generate.py diff --git a/.cirrus.yml b/.cirrus.yml index 0c1e01dc95b775..81a4f043285352 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -22,9 +22,10 @@ env: RECOVERY: no EXTRAKEYS: no SCHNORRSIG: no + MUSIG: no ELLSWIFT: no ### test options - SECP256K1_TEST_ITERS: + SECP256K1_TEST_ITERS: 64 BENCH: yes SECP256K1_BENCH_ITERS: 2 CTIMETESTS: yes @@ -69,6 +70,7 @@ task: RECOVERY: yes EXTRAKEYS: yes SCHNORRSIG: yes + MUSIG: yes ELLSWIFT: yes matrix: # Currently only gcc-snapshot, the other compilers are tested on GHA with QEMU @@ -86,6 +88,7 @@ task: RECOVERY: yes EXTRAKEYS: yes SCHNORRSIG: yes + MUSIG: yes ELLSWIFT: yes WRAPPER_CMD: 'valgrind --error-exitcode=42' SECP256K1_TEST_ITERS: 2 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0fc104d29b6a84..54b2fab1c4693c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,9 +33,10 @@ env: RECOVERY: 'no' EXTRAKEYS: 'no' SCHNORRSIG: 'no' + MUSIG: 'no' ELLSWIFT: 'no' ### test options - SECP256K1_TEST_ITERS: + SECP256K1_TEST_ITERS: 64 BENCH: 'yes' SECP256K1_BENCH_ITERS: 2 CTIMETESTS: 'yes' @@ -72,18 +73,18 @@ jobs: matrix: configuration: - env_vars: { WIDEMUL: 'int64', RECOVERY: 'yes' } - - env_vars: { WIDEMUL: 'int64', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' } + - env_vars: { WIDEMUL: 'int64', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' } - env_vars: { WIDEMUL: 'int128' } - env_vars: { WIDEMUL: 'int128_struct', ELLSWIFT: 'yes' } - - env_vars: { WIDEMUL: 'int128', RECOVERY: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' } - - env_vars: { WIDEMUL: 'int128', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes' } + - env_vars: { WIDEMUL: 'int128', RECOVERY: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' } + - env_vars: { WIDEMUL: 'int128', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes' } - env_vars: { WIDEMUL: 'int128', ASM: 'x86_64', ELLSWIFT: 'yes' } - - env_vars: { RECOVERY: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes' } - - env_vars: { CTIMETESTS: 'no', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', CPPFLAGS: '-DVERIFY' } + - env_vars: { RECOVERY: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes' } + - env_vars: { CTIMETESTS: 'no', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', CPPFLAGS: '-DVERIFY' } - env_vars: { BUILD: 'distcheck', WITH_VALGRIND: 'no', CTIMETESTS: 'no', BENCH: 'no' } - env_vars: { CPPFLAGS: '-DDETERMINISTIC' } - env_vars: { CFLAGS: '-O0', CTIMETESTS: 'no' } - - env_vars: { CFLAGS: '-O1', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' } + - env_vars: { CFLAGS: '-O1', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' } - env_vars: { ECMULTGENKB: 2, ECMULTWINDOW: 2 } - env_vars: { ECMULTGENKB: 86, ECMULTWINDOW: 4 } cc: @@ -142,6 +143,7 @@ jobs: RECOVERY: 'yes' EXTRAKEYS: 'yes' SCHNORRSIG: 'yes' + MUSIG: 'yes' ELLSWIFT: 'yes' CC: ${{ matrix.cc }} @@ -187,6 +189,7 @@ jobs: RECOVERY: 'yes' EXTRAKEYS: 'yes' SCHNORRSIG: 'yes' + MUSIG: 'yes' ELLSWIFT: 'yes' CTIMETESTS: 'no' @@ -239,6 +242,7 @@ jobs: RECOVERY: 'yes' EXTRAKEYS: 'yes' SCHNORRSIG: 'yes' + MUSIG: 'yes' ELLSWIFT: 'yes' CTIMETESTS: 'no' @@ -285,6 +289,7 @@ jobs: RECOVERY: 'yes' EXTRAKEYS: 'yes' SCHNORRSIG: 'yes' + MUSIG: 'yes' ELLSWIFT: 'yes' CTIMETESTS: 'no' @@ -341,6 +346,7 @@ jobs: RECOVERY: 'yes' EXTRAKEYS: 'yes' SCHNORRSIG: 'yes' + MUSIG: 'yes' ELLSWIFT: 'yes' CTIMETESTS: 'no' @@ -394,6 +400,7 @@ jobs: RECOVERY: 'yes' EXTRAKEYS: 'yes' SCHNORRSIG: 'yes' + MUSIG: 'yes' ELLSWIFT: 'yes' CTIMETESTS: 'no' SECP256K1_TEST_ITERS: 2 @@ -446,6 +453,7 @@ jobs: RECOVERY: 'yes' EXTRAKEYS: 'yes' SCHNORRSIG: 'yes' + MUSIG: 'yes' ELLSWIFT: 'yes' CTIMETESTS: 'no' CFLAGS: '-fsanitize=undefined,address -g' @@ -511,6 +519,7 @@ jobs: RECOVERY: 'yes' EXTRAKEYS: 'yes' SCHNORRSIG: 'yes' + MUSIG: 'yes' ELLSWIFT: 'yes' CC: 'clang' SECP256K1_TEST_ITERS: 32 @@ -558,6 +567,7 @@ jobs: RECOVERY: 'yes' EXTRAKEYS: 'yes' SCHNORRSIG: 'yes' + MUSIG: 'yes' ELLSWIFT: 'yes' CTIMETESTS: 'no' @@ -602,9 +612,9 @@ jobs: if: ${{ always() }} x86_64-macos-native: - name: "x86_64: macOS Monterey, Valgrind" + name: "x86_64: macOS Ventura, Valgrind" # See: https://github.com/actions/runner-images#available-images. - runs-on: macos-12 + runs-on: macos-13 env: CC: 'clang' @@ -615,15 +625,15 @@ jobs: fail-fast: false matrix: env_vars: - - { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' } + - { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' } - { WIDEMUL: 'int128_struct', ECMULTGENKB: 2, ECMULTWINDOW: 4 } - - { WIDEMUL: 'int128', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' } + - { WIDEMUL: 'int128', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' } - { WIDEMUL: 'int128', RECOVERY: 'yes' } - - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' } - - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc' } - - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 } - - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 } - - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CPPFLAGS: '-DVERIFY', CTIMETESTS: 'no' } + - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' } + - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc' } + - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 } + - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 } + - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes', CPPFLAGS: '-DVERIFY', CTIMETESTS: 'no' } - BUILD: 'distcheck' steps: @@ -751,14 +761,14 @@ jobs: # Use the bash shell included with Git for Windows. shell: bash run: | - cd build/src/RelWithDebInfo && file *tests.exe bench*.exe libsecp256k1-*.dll || true + cd build/bin/RelWithDebInfo && file *tests.exe bench*.exe libsecp256k1-*.dll || true - name: Check run: | ctest -C RelWithDebInfo --test-dir build -j ([int]$env:NUMBER_OF_PROCESSORS + 1) - build\src\RelWithDebInfo\bench_ecmult.exe - build\src\RelWithDebInfo\bench_internal.exe - build\src\RelWithDebInfo\bench.exe + build\bin\RelWithDebInfo\bench_ecmult.exe + build\bin\RelWithDebInfo\bench_internal.exe + build\bin\RelWithDebInfo\bench.exe win64-native-headers: name: "x64 (MSVC): C++ (public headers)" @@ -790,6 +800,7 @@ jobs: RECOVERY: 'yes' EXTRAKEYS: 'yes' SCHNORRSIG: 'yes' + MUSIG: 'yes' ELLSWIFT: 'yes' steps: diff --git a/.gitignore b/.gitignore index 18e3259f59f37b..c26de35157bfc4 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,8 @@ ecdh_example ecdsa_example schnorr_example ellswift_example +musig_example +batch_example *.exe *.so *.a diff --git a/CHANGELOG.md b/CHANGELOG.md index fb829406278daf..ee447c0c1c7412 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,26 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [0.6.0] - 2024-11-04 + +#### Added + - New module `musig` implements the MuSig2 multisignature scheme according to the [BIP 327 specification](https://github.com/bitcoin/bips/blob/master/bip-0327.mediawiki). See: + - Header file `include/secp256k1_musig.h` which defines the new API. + - Document `doc/musig.md` for further notes on API usage. + - Usage example `examples/musig.c`. + - New CMake variable `SECP256K1_APPEND_LDFLAGS` for appending linker flags to the build command. + +#### Changed + - API functions now use a significantly more robust method to clear secrets from the stack before returning. However, secret clearing remains a best-effort security measure and cannot guarantee complete removal. + - Any type `secp256k1_foo` can now be forward-declared using `typedef struct secp256k1_foo secp256k1_foo;` (or also `struct secp256k1_foo;` in C++). + - Organized CMake build artifacts into dedicated directories (`bin/` for executables, `lib/` for libraries) to improve build output structure and Windows shared library compatibility. + +#### Removed + - Removed the `secp256k1_scratch_space` struct and its associated functions `secp256k1_scratch_space_create` and `secp256k1_scratch_space_destroy` because the scratch space was unused in the API. + +#### ABI Compatibility +The symbols `secp256k1_scratch_space_create` and `secp256k1_scratch_space_destroy` were removed. +Otherwise, the library maintains backward compatibility with versions 0.3.x through 0.5.x. ## [0.5.1] - 2024-08-01 @@ -143,7 +162,7 @@ This version was in fact never released. The number was given by the build system since the introduction of autotools in Jan 2014 (ea0fe5a5bf0c04f9cc955b2966b614f5f378c6f6). Therefore, this version number does not uniquely identify a set of source files. -[unreleased]: https://github.com/bitcoin-core/secp256k1/compare/v0.5.1...HEAD +[0.6.0]: https://github.com/bitcoin-core/secp256k1/compare/v0.5.1...v0.6.0 [0.5.1]: https://github.com/bitcoin-core/secp256k1/compare/v0.5.0...v0.5.1 [0.5.0]: https://github.com/bitcoin-core/secp256k1/compare/v0.4.1...v0.5.0 [0.4.1]: https://github.com/bitcoin-core/secp256k1/compare/v0.4.0...v0.4.1 diff --git a/CMakeLists.txt b/CMakeLists.txt index d5a7a2de39effc..a7637e14034e66 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,14 +1,19 @@ cmake_minimum_required(VERSION 3.16) +#============================= +# Project / Package metadata +#============================= project(libsecp256k1 # The package (a.k.a. release) version is based on semantic versioning 2.0.0 of # the API. All changes in experimental modules are treated as # backwards-compatible and therefore at most increase the minor version. - VERSION 0.5.2 + VERSION 0.6.0 DESCRIPTION "Optimized C library for ECDSA signatures and secret/public key operations on curve secp256k1." HOMEPAGE_URL "https://github.com/bitcoin-core/secp256k1" LANGUAGES C ) +enable_testing() +list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) if(CMAKE_VERSION VERSION_LESS 3.21) # Emulates CMake 3.21+ behavior. @@ -26,15 +31,19 @@ endif() # https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html # All changes in experimental modules are treated as if they don't affect the # interface and therefore only increase the revision. -set(${PROJECT_NAME}_LIB_VERSION_CURRENT 4) -set(${PROJECT_NAME}_LIB_VERSION_REVISION 2) -set(${PROJECT_NAME}_LIB_VERSION_AGE 2) +set(${PROJECT_NAME}_LIB_VERSION_CURRENT 5) +set(${PROJECT_NAME}_LIB_VERSION_REVISION 0) +set(${PROJECT_NAME}_LIB_VERSION_AGE 0) +#============================= +# Language setup +#============================= set(CMAKE_C_STANDARD 90) set(CMAKE_C_EXTENSIONS OFF) -list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) - +#============================= +# Configurable options +#============================= option(BUILD_SHARED_LIBS "Build shared libraries." ON) option(SECP256K1_DISABLE_SHARED "Disable shared library. Overrides BUILD_SHARED_LIBS." OFF) if(SECP256K1_DISABLE_SHARED) @@ -51,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_MUSIG "Enable musig module." ON) option(SECP256K1_ENABLE_MODULE_ELLSWIFT "Enable ElligatorSwift module." ON) # Processing must be done in a topological sorting of the dependency graph @@ -59,6 +69,14 @@ if(SECP256K1_ENABLE_MODULE_ELLSWIFT) add_compile_definitions(ENABLE_MODULE_ELLSWIFT=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.") + endif() + set(SECP256K1_ENABLE_MODULE_SCHNORRSIG ON) + add_compile_definitions(ENABLE_MODULE_MUSIG=1) +endif() + if(SECP256K1_ENABLE_MODULE_SCHNORRSIG) if(DEFINED SECP256K1_ENABLE_MODULE_EXTRAKEYS AND NOT SECP256K1_ENABLE_MODULE_EXTRAKEYS) message(FATAL_ERROR "Module dependency error: You have disabled the extrakeys module explicitly, but it is required by the schnorrsig module.") @@ -138,13 +156,22 @@ elseif(SECP256K1_ASM) endif() endif() -option(SECP256K1_EXPERIMENTAL "Allow experimental configuration options." OFF) +option(SECP256K1_EXPERIMENTAL "Allow experimental configuration options." ON) if(NOT SECP256K1_EXPERIMENTAL) if(SECP256K1_ASM STREQUAL "arm32") message(FATAL_ERROR "ARM32 assembly is experimental. Use -DSECP256K1_EXPERIMENTAL=ON to allow.") endif() endif() +option(SECP256K1_ENABLE_MODULE_BATCH "Enable batch verification module." ON) +if(SECP256K1_ENABLE_MODULE_BATCH) + if(DEFINED SECP256K1_EXPERIMENTAL AND NOT SECP256K1_EXPERIMENTAL) + message(FATAL_ERROR "Batch verification module is experimental") + endif() + set(SECP256K1_ENABLE_MODULE_BATCH ON) + add_compile_definitions(ENABLE_MODULE_BATCH=1) +endif() + set(SECP256K1_VALGRIND "AUTO" CACHE STRING "Build with extra checks for running inside Valgrind. [default=AUTO]") set_property(CACHE SECP256K1_VALGRIND PROPERTY STRINGS "AUTO" "OFF" "ON") check_string_option_value(SECP256K1_VALGRIND) @@ -262,13 +289,6 @@ if(SECP256K1_BUILD_CTIME_TESTS) unset(msan_enabled) endif() -include(CTest) -# We do not use CTest's BUILD_TESTING because a single toggle for all tests is too coarse for our needs. -mark_as_advanced(BUILD_TESTING) -if(SECP256K1_BUILD_BENCHMARK OR SECP256K1_BUILD_TESTS OR SECP256K1_BUILD_EXHAUSTIVE_TESTS OR SECP256K1_BUILD_CTIME_TESTS OR SECP256K1_BUILD_EXAMPLES) - enable_testing() -endif() - set(SECP256K1_APPEND_CFLAGS "" CACHE STRING "Compiler flags that are appended to the command line after all other flags added by the build system. This variable is intended for debugging and special builds.") if(SECP256K1_APPEND_CFLAGS) # Appending to this low-level rule variable is the only way to @@ -284,6 +304,15 @@ if(SECP256K1_APPEND_LDFLAGS) string(APPEND CMAKE_C_LINK_EXECUTABLE " ${SECP256K1_APPEND_LDFLAGS}") endif() +if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) +endif() +if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) +endif() +if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) +endif() add_subdirectory(src) if(SECP256K1_BUILD_EXAMPLES) add_subdirectory(examples) @@ -305,7 +334,9 @@ 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(" musig ............................... ${SECP256K1_ENABLE_MODULE_MUSIG}") message(" ElligatorSwift ...................... ${SECP256K1_ENABLE_MODULE_ELLSWIFT}") +message(" Batch ............................... ${SECP256K1_ENABLE_MODULE_BATCH}") message("Parameters:") message(" ecmult window size .................. ${SECP256K1_ECMULT_WINDOW_SIZE}") message(" ecmult gen table size ............... ${SECP256K1_ECMULT_GEN_KB} KiB") diff --git a/Makefile.am b/Makefile.am index 8723b53b2ca1e8..4cb81a21b60d16 100644 --- a/Makefile.am +++ b/Makefile.am @@ -183,6 +183,17 @@ if BUILD_WINDOWS schnorr_example_LDFLAGS += -lbcrypt endif TESTS += schnorr_example +if ENABLE_MODULE_BATCH +noinst_PROGRAMS += batch_example +batch_example_SOURCES = examples/batch.c +batch_example_CPPFLAGS = -I$(top_srcdir)/include +batch_example_LDADD = libsecp256k1.la +batch_example_LDFLAGS = -static +if BUILD_WINDOWS +batch_example_LDFLAGS += -lbcrypt +endif +TESTS += batch_example +endif endif if ENABLE_MODULE_ELLSWIFT noinst_PROGRAMS += ellswift_example @@ -195,6 +206,17 @@ ellswift_example_LDFLAGS += -lbcrypt endif TESTS += ellswift_example endif +if ENABLE_MODULE_MUSIG +noinst_PROGRAMS += musig_example +musig_example_SOURCES = examples/musig.c +musig_example_CPPFLAGS = -I$(top_srcdir)/include -DSECP256K1_STATIC +musig_example_LDADD = libsecp256k1.la +musig_example_LDFLAGS = -static +if BUILD_WINDOWS +musig_example_LDFLAGS += -lbcrypt +endif +TESTS += musig_example +endif endif ### Precomputed tables @@ -254,6 +276,7 @@ maintainer-clean-local: clean-testvectors ### Additional files to distribute EXTRA_DIST = autogen.sh CHANGELOG.md SECURITY.md EXTRA_DIST += doc/release-process.md doc/safegcd_implementation.md +EXTRA_DIST += doc/ellswift.md doc/musig.md EXTRA_DIST += examples/EXAMPLES_COPYING EXTRA_DIST += sage/gen_exhaustive_groups.sage EXTRA_DIST += sage/gen_split_lambda_constants.sage @@ -281,6 +304,14 @@ if ENABLE_MODULE_SCHNORRSIG include src/modules/schnorrsig/Makefile.am.include endif +if ENABLE_MODULE_MUSIG +include src/modules/musig/Makefile.am.include +endif + if ENABLE_MODULE_ELLSWIFT include src/modules/ellswift/Makefile.am.include endif + +if ENABLE_MODULE_BATCH +include src/modules/batch/Makefile.am.include +endif diff --git a/README.md b/README.md index ed93e0519ea4aa..4f3361b127c96d 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,8 @@ Features: * Optional module for ECDH key exchange. * Optional module for Schnorr signatures according to [BIP-340](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki). * Optional module for ElligatorSwift key exchange according to [BIP-324](https://github.com/bitcoin/bips/blob/master/bip-0324.mediawiki). +* Optional module for MuSig2 Schnorr multi-signatures according to [BIP-327](https://github.com/bitcoin/bips/blob/master/bip-0327.mediawiki). +* Optional module for Batch Verification (experimental). Implementation details ---------------------- diff --git a/batch_example b/batch_example new file mode 100755 index 0000000000000000000000000000000000000000..ebe74a623e3c7b72bb06a9f9669aa72c6aebcf38 GIT binary patch literal 1501904 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

Dod}9j7K9 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

gnA_kQc9u~8(r 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

6_kPlj=(Qu4>H}z}F&?K| z0eVDJ-r6akZ7Y ziEax7gTr9}zo(y5Mu*=&PMr~~a>|CE3NKErQb<`rA4AW1yi4+rta(g{LCQ==B3JY{ zTQ^E;?io6`)`RAxn|0y^w<5>9L1=!O0s*RzWq>|_XI3`SICx{-Q3PhGN6{ID7F;2K z#M+-n5rr!t@F2yBA&^0u2x*^!Gmx_#FHsk0V4+@Ze%9%3{kauaHKetckuI3Fp*E6C z-=8WKM}#{0ByvZmw44U*4urxu)r$TTDi+^DF0kN@ql=abJ>a=_#8aTBvtiCcVath1 zv9wtFNE_HJWLJ~FsoA~#n2ml#8Tue~z?8b=WysGi0@Z5B6FNL2eptt{SaZ523rpSi z016Im(#vOVD<41FK8wx6-dQ3Ba8rrMn^iTCr+ZuVPuR&a=ulRE#`#0s<-ajrdTd#a z*B(nbX&a6K?8TjOJq>>KrWc$3y*5;8#+E}>us+^VXZGROICZjJ+6(4JKEm5<@iZ}S z@R+%JFTl9y(9Y!sVBO9@+McA@`48a}`jaiTt`5_hahk*z*@_rvashR3792src0`bf z9IynEv$SPXB7TQ-oTD)?NtxzS;+xKBjomyg_~#c|U{!HlUBkASnb2XdfTtK->#=GkfASV?MX!X zs%EBz4M*zD5u{%Pz}2Me#*_{>A1Si(3$%<}--Tv$gJh#di;6bqBwKg9?*BMmD`Px% zs=32LfvDoEN~`5ss>V4$3TzUWR@vPM?H-CROkcVWZ9lNot<$yg%Uxs&rw}FChRQVn zWW;_{fYCld6wVk6eTG$?y`g?$ z4wJD^Ku2T!q)JhoCv%p@Ow0fVdu+GAvWoRx+=FR`qSV$I3plFm3R3^aEepXH3TaI} zr3ZV{&qvb}8*yS4Bj5|%|6oS_`+3TV+2UBJ*uAS!IEkGQ*e8&Ez^0+ndQLv&?-U~3 z{rLs8rmQMs3V>lUKTO72Uc6Qa2%tP5#uBQFuHLK0Ad*a?!Qg`?B)_-n?mP{6i(0Sk zt#8EzAkXEra!fQMsaM!pfy5-Z&TSB_p)f*k186+aP#Q{c4ZlOk?^?7!Pt-88Fp8lEIc*R*b)0u z0@ZslebsITc%MGxL5CL{d4oU`)wPc3Z;oHvk|E!e<}I3TX{sGAKczp@=uD4QAXC3> zyuMUlk**=Ng_%L|N6=ca>q)tLSZP52BcQ%N&21-m6FnIP%Zu2i#6vt7FBs9hYLa7P zKMMU01KK*zY=@USUX8~V2V8DDN%2U09!L|0OFWJwQ6kePPr*Ph8JFp|!t(y@EbZ4& zf9`qRtG=Ce2{*hcw}&(!!DRu8_T6Ha)CN2~Xdng-tP@?ib(?VShv2^7n$@1xK=dFS z*=TOPhtz7Ska0=r75PL>)9xXkLLcj_*4zD3z=Dlu_ppLc_VS=&?`xA=Pl=c7Hb5<1 z<4nX3!pB6}-;h-zK&$0VlDd%B7e4(ye&J&gQL2l*8s}wjw8{?h;zR9w#L_icuEP<> zy?JG+dn<};<40g#EWhAod*fI3A8S)MT9~jxbF7FN`i>tZC-S+A8L2J~AaJMUB4^BZ z@h6#TO?LN5@MNXH_?=}?ZD7$VMP$n?1_4^zLpP;oXQxL2&fLJ7z;yu_fK_ag48)O_ zk-_@Mu31j?T+t2U9BXcnC`x$dDwCXk`@#Vt5No4p@FOMPiHi^=ePZ%<3dt+>5L71z zrX-ki(mShL7T+|d#_L8ZUDa^^wI>N--}w?2Y&s55_0&yrCIEEr?n|U$Vbc|{A6Qlp zIC{@iq)okSfUSM7s)2L>3qk?j6gx=3OQ4}0KWmS7hcD=dy%q}>DU>BUz!FW>1cQ|? zWQVlB(F|S4m}s|0V2E7{r4#4c2r1J@`r<|cqV^6gOhQ+6h<7Khb|C1q{|Gkk!Qa`;t}m^XZ5Su=@i7ieah@;!6<%nj zTSjoprnox9o@xk(Q;n0w-kx)Ql5PYyNMcr=l2>Xbz~r_5q)q-Sb?%ZPJz=zSscm%M zE-*f#h$9E}l0CWs7B{5c_C2w%0c+I$Rf;jWO`JyOz9 zLt_Gt|CM~Cj}QnM{9GkiiIDM!u>DK{msfFK;tr>nb%|U1xMhz!qtiL*8>W^s8n2!g z_}tK-_IvWo^vNgB{X{0QdxaXOr1G44Yx*KW0i(C!i2(3;a%DQ)nYngjm09?As2$fL zlq$Grm}O$DvgVzAa$IJ7x#m(LsMs=jKLK_sK$4O6m-_*1%bx54W>SFh;O<^wwdnTB z>4qTBkFv)AU)MUmd(vieW)eSxN*&vTFglD$&!A75D1?FPztxZd$szGui87oItlQhS zKr*8oLT*3gmk2nIESBKsw2qo00>zjZMqt7^uXM|VOqJlw?j(Sgs~LL?M_y46;Xx&@ z$=lqkBz(d?@NzOoqtlc%Wnu?kT~E-+Ia>78fzIa!mfA&EjMyXlt_gAl3v7(nZp%wC zL&}#Jt|^&xwXdjE( zqm#fyxdaO^zb?)^-Y|h#5+xNYU6`U%5dKpyeg4o;Tn?sY?ZuF6tMa}WQbTgk3GNVm znbSsN1+UWjwHx@BR)SIFTTm)mmpC&JCYY0{kmn zB9H7mA;bRI!DwP(Va7^&mpfW^d3fxP1L2f#g&|k}%4E1Rpz%_+fx2PuBZennjG%}& zsE7r`kLG|m7tW`~Ob)rYl9iVLAFrW`3-qg%0&99i`q-lD%0`+lA^}6KSaA7#mQxpy zFxCB103&Xv_nG{-aVj4{g-O$<6`GnU_0D!|=;-6>gII2n<;F^#UX>oa22#nUZ;TnE zt8Iw=!waI*cO+L*Pwc#j2l8@mPT6iJ0yKKdfy;>3ejbJ5aL#nm-MYuk*(7khrq@yu zy}I`pKw}!hdnlex^iotrf+AkPgS6YK^WgxIK7|nZ)JVTLBU?gaXE?CUd^)oPts|Yy z*9G`S4TKZF_M;T!tAnVIHhf>QeORP)PiHdO*bdM8NEn2F~xU|!HC&dvnj!ALN!!m6GI1;F>}@uWb((-T_HPF zv`6mDFCApXxaTI(CHT@NL^{}o*@HJ0-<90B>a6yWH^E0C<&#r%56-?o{P2YrF~5U9 z@*{lu=JVKnE0MS9##&>xGuQ| z;$be9IcaH_oxwKx)KG}QE2IkGsZpK&kyJuYN5^%jLLbA;H1=gb3jxwWsgkGXQgcBE zRocjDnt831(~U6Qsh=n=(Ku>SH+{($(i+5zVcIOl1Z`^e-5WWxGpvY~?KC7C{CrqT zn8@Y}-mD)*(~U~eSFDdi{#kn_0tOot_&c2EifCnyR41ZW@n&?HhTV4bARqx3_ckyp zjuiuA&KcKYkB{6gBV?oB31P~WEFK+A(*R*U0|wx0!TNYh>@#!|(ycXJJwr!Ht`V|S zdM_+TTd&K#(L%e9q`Sy&&<4VU#H*5Z*jPB={^AACj4DBJ ztHeM}8M&rJ+0r$(_7^y&l27^wn^*7>fy^;CM3P*yqoY;4A>-2NFQG6(FCfs?n0kd` z?5H}L1@JqP1c{hTpv5&HP=$Bu@N?7YjaM5E(7F%d8p{F6WlCA#qtY^uiRs$la?)7| zq50WS?^ho{E+~5g1IRfREL(O`V#dA^!%Es3#jT)KZKh-qM(IPfxNCGm?AJ;hQY$2# z8+x1;V(5ZQgV|)7iUAy~tUdUmSyEdTA1Of4>C&ei^ou|`)S0?4p)9!Q`aK+dj73tc zZyAALkk5qS2}39>@_4|Rr0pHN={RvA+gW>X(Vp7<#LMXGq4;4Y^Nd`5EOkZQpqyqz z29IH==ygI(2P6yMDJl5Qxn!9g)An`qlRS1Txro?WDm(-W@gWvTjqRtDvX+*Llx5+w zdSN+&TQ)S*4x^2kQdjZ@&v(cc6b~~lQ1v)aPtw)(8UXMMU9>t8C*AOtjsMhQGbi@Q z5Tyzqekc^4d(ALt-ZQXSB`O$yGv6utO26LgCm$n3oNOK3T}!`3rID)U;OaJj+?6JK zjm1X~AxXE?U{MtAbu=U6(C&>llUCsqAZUg_XCNb3PYuOKq9D_ zau*H7NWrA0g0ROA*ypB(POD985wWr|$#RFx7ZflKwbyZCaAhmGn6@wuuyiYu7=k-69MAFxU2L^a1r#gn)xV6QAs!TSl@7p|RE z1%XwO>O*anGm;(>S2AtOd#Q6N>J4zEPx{zj2DKQD%-WESjDwHPyI zco=5{%RlCrmA*n7?oj@+#&C^GMrb&p{79aBr97W+0aXwREcH!s9{a_wPmiBwrB&I; z(WWbb)TReU!qoGndmzF| zmQ-mBE86~g97^G%C)Sm|T+!W!$Z(QHi@?YgJH)(vV?~FaHq-WUBn?CGU=Ody0D6h7 zRM6q$+heI~$6l@pK$JCZ)YjWP)@q+JtMc0)b+WLbP=lLS?8G`aZMKv=;X)#ZIT8q1 zZ?r(^c(o=oSIT(7dU}ezSvl+75YRXNaSa#7IzS-+6rw%F2d67?JCLy0eqo>dfTQBn zLnEXOt$j&a(wc~(q=a{PHCZN^YXLkRld2sb z7laXWMMWXBbDT**F$rfyAP!sb#9!dW{hAjnvGk~Yep#&$H=&DtWNlaZsBWdT@PfX; zdnl2R#dIeGpZ5G#;v&!leV7$hiv*=l2ZeTbiKdcns2lhveg8R2BD;FjYaW!|8AZT2f{PK>m1&Un5wknD z9A%Wdt;1l4Rmk1gS6aNZ15DH zx>7tCt{TB>vjMTGF%ii67HW3*q*rTc8@a^qyJDY=8JdI5(58iMsNlOh9eSNoXg+uj zQV9453`PkHfhSpjq;*{<)QQ6~2_e+@lg29PvUn&DMULxD_aO>GDPU<% zdKISBFh5%TMwRlpo)BEJ*+fWMRx?+1sXG%H`3QB{eAwNrya|1Vjv)4p3qay<51E?l{xNnjK-gk+anZ+oV2$e;lk4~2#%DSNnjPk6T49` z=yLxmL9V+2n1={~hh>vK4wC+j;#gL4`hXuHJWsKdj(Dr5&14k6T&_oYYV>ph+`URI^%M_QLbjD>K96EF?A-S1Zw z`1iDfQ`~|#M!+wPUpb&SGSmNT9AKFOS*oRgn5p|9ah*0+d!t1nquVYks2$-cicK;b z%L%+$aFj!v>pg=KsuEEpME@VFiPcukbt~$PpXzW3cwXVPx2Wp6==MMIb&ek%)*oHH zQk+>>l=uRysObj~tI9OkY*oG)aoT)&FDufg7QrB<(B^~F54h?;yNpQ(V9dS{UfkCD zT0w)w^MwkL=p+w{!XA8(|D@Dw4=EGcWZhv`x!s+9Ex4TcJQ}yCYP^E17RJUiXc~4L z;S2@jP%r#7iicH}(+hMGOqn|(O%qT2&QDY-ToiC^#l;}~lX+Jx$WA<=7wp=B7ppJ! zN%}S*#!w)BWyNQF}*Ix8B#_CgRCt^zBJ zaqjLQW}Dj}4QgAUu7zQfFRlLT+Vw#$O)~_g@L#H)9DDf_z!Fc-5j=wSV0R=Gsu4ye zFe5aa+{d3z?#I>I2l%QGS75gJ&HKn8maw-!rQN_ig0m#PE2UT?(i5Dy2wT=?e6Y4I zQJ^e~#T80VjF5E3pV)UQ76)K^?jl*q)m^4vq#yw)v(&MTa9+uTCmLK7-rdG^ zi7boG6R&;yblIu_-!5bUV`VhMlF>_0udilk2TbA7PsuAJA zA4@W`{qNG|Pvwe2o4|oa=VIVOdrcYi;1dxYGRexs8(F2{^dp zBT|APv2`UvU?0lE>SW}1Fy+p44(+Y{ zVLZ+aYUvMmKOOh|eYRI8UEFDng}wB4Bew7(@Sd!bP!tWDf=)vtAjUwFjwzUr^G`2> zY1Z&sjl~DwEp;aMu>do86vEaA#sn$I#J^1FzzVCT0bl}gDWhdvEr8J=8d-XwPdrpq z)Y1EMQNdTXqwZKJP&Mfw$g(*T2!!l+qqL;Ytad$z`G&^j$=*tB1x86Yca#+3wgZ;m zug3j+Qk>#ON+r>L=HDg@6l!3tgM85(J>Yq)=+|TdBJ&h zBHmox`pQwIC16k_1Z*X_H^k?++=OPKuNB%>B7RVdD|~gcpjRL`e(O#6ttPh;gCPoB zDW^AJoEF^hAvjF5G>=G<;Gt(ERB(pmUK?6y#)6KHnZ(+>bkD9`GSs8+4kYv7pIth_@J3v z5&@v&*O8zt68KhMVlor=~SEipe`Kon2a;`@I#T+N{|<2G8$*=z-PW` z{K~B#v4K87VBF>Y*j&4a#WI>rS9x!gbj3XP;+A2HYGzyC&72l-TJ=2$n~>Srcci`K zXoVV#S<*wXJy`w-L=ppg-!o}+#IPj$aR|&V>XEU2IZeB~YnG3jcp@u3yTjhKqI108JbP;D3s=<%ko_30VpcVfhHcJH59(2*qaIH7t=4s#TyKYxZ zBoD zZ#V=xzy3<*LBZqWbw=k)Hd9!Wc_ai_B;Q&$+&Q}VBPFLP!1)_w8576tJ7;G@CG2TD zBi15Tx=^nTKESFfU*On}35>q)H-zW&q1FEb$PMl7GTYhOueDtNoS)hr&}BvYj&!hp zfx91^{x83Kx*|2|&M=7tJO01WLPWlE=yWx$0_NZ?Su+652!z<2`^7bRx#xdl zm;PHKi9w7@=@2l)bBcfdSMSd}BZcdx1g2wwc@Y7(D44tSEDxiI@Vy0@!td)-pF+MS z+;J?EbbJ2^DaQ~acLOLKk}sLLEQyGH3vrG0B1$f(D8@4(ec%}=3$PP}mXBYvWc?M& ziQg74igQp1PJFo|6^ZSTL~7ArzV$x^JmMCmBq(mZO1q&gl7NtN(_=A zKgaA{9?G+gvpwt;ABlyB(q_l0KXGoW6S83n<~a8X?+SZPQutyHM7*j%*YpxMJ0%c! zgf2aU)6#pT;%y9XnCD?h{ulzQt*;OkTk zF!HZ={^EU%9_Q;Cu4R_IZKXC-I%+obky82#37$*j;8_|RmD`M<_tKPQ85kKI^W7Mc z!9Otr)R#?tO~!?+G)?sP$oJ((`IdoZpQed}+65J&{xBaQyi1ytq2_^Q8&w1>KhRE4 z^wEEvm@f`7@C5)5^PoisPwr;xh^17gG3I87Bxi2~iyoJm&@y#P;j04n-6mdA-6#3z+8zz4@H82mbzM z9CBDC;hN;&U&wJ1Nmc{T%(eRpUQdtNe0pAbDdcp-viCe+OZyKT*nTNp-(9_2?gqQTcf-b?jlPZ#4T9=JKE)SOg|z zr~VEQa)emJ_-JP&4RYiUvw~+>qqTY>F&OdR8rG{fKg%L;yfC5DWw9;xb5pBoE!a-x zVbg195X;gTFkzXn@qX4)q*nLFpRr}%t3*$tU@X+QJ)C{hY1z%w#`|zgbp?$^7WjOG zhA!|@BbEfw7R(|f1Qk^{kZ$_fQZ0vyG49;kAU?!4=3+#JE$r}*ac^J2w}4oX#0(Ow zCRGnX4g8>kTATkv2IXLaTo^W{P49CH_c+Qx3M>_?Hc=1+wJFu*yXCj2+ljOOYI^Tz z*JM}EGK`Yi9zW2q3J(!tBuT~8dZ@*!0N3hOFzxe~U=uN{_XI$as2!Wsdnk@$Z2&hs z-M4yK7squN{+gxhOzlolqim`h58}&qPh+#2EaE&Hd5pzAYw?pEE|YG2vQG3&E*Hf9 z6H#Cnk*2Qh>`3Xd1+Y(ul(eaa)Vu*4`0G0YP_(X_5_`#WL&9ZU4ES>4yfI(kXQI$O zLt|atBmNpX^}n|^(x{r=J$EB^!K+F`NpwTOq`-D?4IhR{<3)lYiMG`Y%!A_OR4!T%k_bnnOXp-|07-fCJ z%O*gCqnIBQ|3Li22Qy*DI%Fo%i95E0h_R}C48o+3iU}=aw7`1Ms}yRWTlU0ve$2CeOsGS+d;bh#CkC%dvPn$TeSw^xT|7aUtNV8X zciSNg!`}QFK;qPQqg$gwT|*%c{eb>cndc~`t!yff6^;!8c1ezQ8JpA?)KE_kHKSTE zFHp1ZnAAICPN+TIO0`j$(cWd_O)=xTPK4m~IyO zNoDQ{W;A{6*$Vo-^p%(-P-|Psr2SZQ%;`w=Z@j>NtW7dQC=Kmw06nQvOJtqe@|05P zzkWNNy1WI03O7^X_s#!Z-Dz^e6tU%j&k$Q(fLLAMIjd^;X5&lArqq?8XMkzS7_@J|g?kd%tW;VQNS5`V)MnXc6FRof}jz`6?dE{h66q11NW*bE9uZw8y60x+3EJb9n&i%^2{{!_Zt7cl1p-)hmR z$M7NCI^34Wq?6<@D^|Mf&l!v;xIvgBr2gC(Ai^MF$#ly0bJm*j+}T%cm9un#LvQRm z={n?6VAxrmIK*3EAGz~`0WD}3)Eq7`>!W(OJZ&*;X;vX?3}p@qprgwKA^=J!r|iTr z)PbJB5-1MomE=LdmR`P&meVlI#cJQzN9K^!z zfZChCnaJzY)6+ZZpVd9)W}-ls!KKZC1F!;R!?TG^3);6p1p;^Az*w&#;yC2smB>n1N9{8fVFM;R<1Da2wv)&LRJSk#0woQHd1QwgK zA3;kmxDLMaEs^;sG}2owq7&P(-)&f-5!$>=IA;lWLa2c4gnkRxM-Tuhk;ZqMp_y0f zsv@!17^KsL7x^fM>4|HA?o5jU8v@O(y;3o90p4XEcVxWd8#t+TG=3)42pVY={?h57 z*!K)d{}s=vzbf8+`CK?vF%NrP>WJdk!9FX{|9va<@hEP~wK@qaP#A^6K$ zJ~HmdtpKVVyMD~2X9=~^8{-~*>2WWbZEqy4Jh9_k!mos5^$maAEaJs(r%4p40X}S4$HF=OaJVNwy#gKdno4_J~`5r#zBZ^MkS5>!F2i_1Mn-w z%i?2T)0+^@!gC~a(G5A9CkDEN98iq{)Y zO0e=TjZ&SV95_bS(8&ehpG4x8@(?6>yvJXyeeL5xDS|4q?>Pe}@N! zjg|^D5YSM{VUk{;#&;9&wXk=6RV`oyAcx2G+tiD7X@F$=W%mrS(=X)eG zKSVG>Ob@t=O>5J|?+;QG;7+U$Phf3*Dw9f}i@pzv$H4Ra z>}nNBDVX|&FtL8=kuAy@y?*&o(jBrDtoV&i>cdABAG0;5!5Cr>x2m@#B1h1~6UA?f z(xbcZ$UD$$D5smG1-2~8Pk!uJ|Bn^xSO2sOu2c7pG1|FSFpCzZE_UI_Qk3#y4DgiA z)-#j3DABpS)P=cP8~+1#s+=BnT^VXBaU~!}k%4QBdtud}!vltu%?pxczTme2<@9rh+Q>I2%+Lyn7qd>ajD&j*@PAPe6kUG>NRC+Pb z7aJY3*6;z)m}hK&i@VcJ9fZp|VlkO)P?P=JaW{7hc?$ zfgOZMW}}UID>U$BKjXLWFOE)U?r?TcR7|8%Y1<}=Z-AmU%p^@42_LAF2eA0rZ-)=UF($Af)yB|Q+{k(+1Wx+z{`NN{ z`TMHbR^&(Q>-Gm1H#!%gMK7BVw8FqMWF@r8{MSnZ^!QBmfW}-Ts*L&fI8-K^TR4wX zYQz$S$+KL!dfC2RiOn;bxP7K;@I`%(F8yJC25F03+1Km>1p{QypmOk&&rCWyY#}EZ?QHoZj4<6;vWmFd6sKbI{2zuXoBZpk{E*Ly7n;7(|^=p@nvc@)f*aRPutknEyAfGvk2Xn(5W zz4irhE&Lu4Wx;e_I*q$}k$$qjnd{)-)~=OZ4l7G-2r{3y2=v~B5yu1qhVLMLKR%!M zqE`dwPycxgdo_ks=Kx+c%x7at6cUky3zU<8G6VvaT6*z1)!z}iNh`7aImjFrRSxC_ zyYeV_+HVaJ&!t0cN~*`k>HXdY_;5Z0h&d%k6TPV4c`-zj$@veuB$Vn+TNSIaULx4&elh! zOK_a~4ZBlSiji6~+&4OcR>M7BBg}UNJpm5Z-hI#h4zw!`r-jg?p4Yzk>!1u=ao9gA z8V68>Wx*7_ky)M{LAUXKqD)Z}%jp(Yr&dZ0uaPDWSORJJlUQ8isU#c~{iyF?%0@H2 zH|=A3Wp=1V$o2rfY@&cqdYI}QH8-cnLCeMFW^x#W{&#yG?vpmIGHTmoU+pCcGB*Py zaY~skV(7b_OkJY8A~j1sNch>7amlm07O8$zb5-SY4h}<&wh_h zC+HiLNL_u+nN9bZGwh$Jm^vf<*Fx**m{JBfBJ`6bf#A9Ov3FGUZJophJ#!!}U);&zrwzfp$~SA=`vi?)AYp=V1TZ0$)^hwW1v zvnCE3ps>GVJ%~>u+@seX^G?-jE1?7Mprp*5Y?vo+;Y)FSX)troCJ~}{mzz0aOv{b- zX@-rYb9uBT3fa;VIZ`Yom|a#+m<~JS!#P&*Vh%;>nRPL_bl%Oh&#o%gslmqKe9@Lc z#3O-duySZv`I|N1zmCC08jf!}jk>eq?p1-fLwpT^tzH0CT^fzTTAQf(6(ey?d}_1L3lA%V zR=7Z!I~=$T35Qv6Ae1$uexOd($#s5|F56MmVicN{rGl3WjV5py*j>p$iC5r7UjeP? zY)(bZdX{ieF&g(b?XK0liYL0E2k(X~MYB$IHs#8~18%YXu;7I41hUh%WCk$WE(VKv zg|gr3aWfycS*9)?wWL#9LylT!GlRZ`UF_z&WSZ7~D-;xHt3Xj%kOTYy6tKbwgx1b{ z(E2=um2d|&lTg19 z!**k@At|G94~C8Ue2|DJ0oR-l{-|ASmXHXX`8+@Lr0Nc!j-ShTK+&i~@Dt~x^ z&5}P&yCUu*pnJ%RTD-F#b3#|(pP|U;t)NFCNcs7RhiQ@=U>}7KRSWA%U7Pj{=~z1u z9>fN^-MR!m$gPvaU6&-ZD5JiM4K?CK?^PlS76XiiJCz zMPC{Bfg#-zs3exp&sU0_{13o-_*K6Lj z(QOhTpuOc)RNmI1@87M8gj9|_%-zoe5ogv(90Hs)2<80bkh{gi|1< z4@*rB2aBOL7taDfQWrLUSE2ggiJxUs@)L1-ztnYVX0tkhebISg34c*jo-XsTRFX%D z?xB0wZK4&bQ7C%#u@OvY$LO*USR zGC2vD5|Jn^3LQV`sq3$}OiV{~Iew9xy&gm)Sy6QNKt>?If)xBKp9ZagE5v9zbm(nW zZ^*nW(cZk^l*0dHmtLywHW>nG1MP-L1~3-90@i*7 ziw#w!q|%~n(|%nIcPTwLHPuJ-wSFI8@>3VhQlh%WU}%%8eL<>w4^~M-U70&hfLhvg z6E#}4-?HefvwNzrwQ;qRWLMhWdvYW_wWMV1U=_12C&ApZIWYM^hdN+XID0rj4~840 z+nfp^^Ax6S4(7e*2!2+5e%yyEvqZB%JcRn28O#Gi01_z8SH}ZNK@?D*Ax=N@gMvDy zOH7^% z>Hc(N^2XW_-k>M7250MYCOvg$3_gtxR!LRYo-)aL@bFqyX#5*Lvq@e(-3S!Mr#OGd zgZS&!bS0h%SG`N&U6)$6AFP5_Y$tUcYa`2~_6WXBOnxz?5@|l`qXGJC`Rgu`G;?9UE*})Qe zrg<1!+7}D73jG&Tv4k=r{v1WR0>% zU7i=4v7MlBY%v9zc%7B(HqcmEV6IeVROWWiCdrR@Uj0{aswxTx$I6xQQ7iuHH-25d z&E_THYqse>mn7ClGbttB>-_=bF12~C4$o@6rfbV0ENfS=+d^=`gP#z2dVc7K43QE) z#c3-cXz7=~zXQyNO%b5^sRKfwdBUXXDZ=OLgIpePd(Wd_zB^-Ooyg9lGn|Igx?F8r z!vt8vtorEDXttknZuIq+sU8O8S7m@segWukKuYwjI{gcaKZGol4d2j> z(M~B$8=~w!$kzmo3B|9v$(m#*I?U34)X*OYwxIpP!wuPu!oN z4d(NN5NgZ4q7?5Ps_Yu|e8W7T{E**KRkBsvA0ynGC-ujQKAy9%z0dwr+(E(N*7OiH z=NDXF(F*hM*G$2b4(mm>cu84Kxp5?t!R# z-2(#lH3~|kF*@>R)K9a@zih6%B>ZaljIufx3zq)`s5+FUAH$!* zZ?}4;Bb+LsnqtnXIl%smje;w1YDUoz<8=ZHeg7_U)loI;VJ$5l)H8vU*Xcere;$7! zDv%h_AC1J$Y?>b)_lmWu!PI;I50JRXtW2B@eul#hCMeXN%^{D=ZwdD6%;@H*6HoTk zn;lc{wRlU5@vCjv3rX?H<(+&_=7kSvAhFTUX7zZarWfI{n~mL0Q;>%dtuIMR$g>q` zcW%@oO4nQn?$z#81rJAk{PJP%`3xIc+b96Fq?YVYKzR8nBzrlAiyoN(*KfX$7c<1S zZ56Jkk?#+#q5S=z#~&3|w(hHpiXfk0uxA2*Kbn@b@>T1C(Q~y~^i+Zl-HSRF0-@qq z`O@oZ`NkM4y%Ey6*YufO4fF`i5|pgeYqk!V4W z7Kn}xuyyE%p|Jme1oqOOvYUyfr?<>E<8R9A#y>P4@=N>d!F3yEZCd4u*=o-~v0#@h2^nmA7h}j9*Az3No#ML7+!na4YAloh!g(mm8 zi^(NikZS#)qxHcI7GnwXkpf8qdkA${oGT`QTQ0J}4_Yvcf*TK$Aqz^E>X2+-8ddJ3 zcg(Z~?BvI>=P_$7yc2qH@-KqUyaM);y*-I`YnPJ-s{N!}>Xghf2}Z~DjX;~9ugNwY zkmeDQ0K@Y_%)$jP`7aNx0UXF?0BbX2PRcPIHW?dTxi|IV>n=MUM{`@3QA124yBe~d zJxp8Ot9>Fc15bY`oJ2|O^q#lJ8*b^HF6MJK+5+3$@jajspY|5Vs2K`MRlEw&R`$l%~6~>fi!AYZUr}4$Y6PZCGIL z`NpYzNFD~+q3j?4g5)=Xo|u-Jf-3|RKsF!EpYv)g--YabyxZD&t;ymeqF4Sik?<8yE1`DCjERJEzV{OPE)Zn6 zY&ZWdO|r)?ypXZ11~OK?^_YX_4PLa+nXq+Q_SB4E^kU`9ur4t^z+ys&V??+OWR#nx zs+fZN=!;qBmI%5<>YxXio1&wF0{VH+3Uk_(`w^A6Mr>~A3NjxbS0CbwaQrDY^Vw4J zGEDCPY?5lasp(xORji_6>#do6k`s}t$*qp)qJ&B|`nfL1;0BRo&?N~9n=^;i&{h=$ zTFNj@#^9ai06mZYJ;0tJylnlBUa0f#cxq*I98MQNt`+=0MI0dpHi#+fezc_R=qz+} zLT0QXvxJSpQ|z|9VLQY@^VI;41L0^GVi94t@z-x%W1R{`KYnZ8Sa&)pTE-w#jqfJp z0)$(VlzNnFC4u(EDv+7MaoyB-d8Ty37RCf^%E4GUxIgz$g+U(wER4d1QYhn|f<5bO8ma96Jbf*Ea=&v5b(A|1>{(>7ied75MvzkaYlbi)%D=&9Z%q zk41^SLT3;lKIg(fIX4qK_pNAzPcHG}OODa=2`_G6^qPBA$PwQ3z(xwv|<*B%|vq83TI<>6O~`7ix-Nku`&^ z-nHH#tUl)m$^d{jlRM6kW({I)q1^S(0GatoR7 zxTg6zMx-g*D{~8!f&;9Anwo&)9k>ax+IlZCfyPCmP~ADjQ{%?9YR{ebQ)HZITE;7yU_y0WO+*TA;=B67mi%}JF=(1$6V#1)hTra?yG zQrPoWACyWd2125?^QS3~N#G9T_*{rCn*;ouCo#@9yxB2-53MMR**7=ki=k9apSb4x`m?+YNQ z&DHuSI;^Ga3-NxnI?F~*zL~Qj1x8?mrh7OCgQWG(PC{=@E4S-=dtN+04l zOi5{q({qqn9TJ2lo%yG@h{c2e6*i(?k6ffc`D0krQfP*}qB9F{7)Yf~#wXf5!u08w z3^|xGyP`ojEJE94T9={Ejg)X(FbqFcjEW;lW zX%JyUQtQwgB(q6~6uq@6i9serXrjeSN@kug*d_o?1m4mUtT(TjH4GAC&H*H}V^6v) zb_GPDy4f~`{R>7jI*hG=gT-_QsJ-b}9h5RnzZrvC+CwpJq2iiLh7MI_#OQQ=aX+N! zl)d2*A@c~4Mlu0c^pr^I0p15^2_Q?Er~UpChgm@8Yw{BJWo)y>{RwZ5fr*^V!+y&b zXk8$Tj%TPdvxmwkMT03H#O+lY-0uXPyb5Ax_z;0_g_BMKrZq8-D6eF}J^(({iw@mq z9g&`y%p~=DD#qyHk#8cVg}W(k7jzPvbV3a#a`%_09Oj?<0GQVKIIeIPfK#`r&{}qMfT8_;l020a^9W$^y_{E}@5V zZF3(NxxCv-zEm0f1=jgBg8At_t^!@s^r{!UhGhdJW{114a%_~5@G!a?GZ6#bPv5^>4X>a>j`^7*3#-n&`ZqW&&=^r2U431$67ZV9h20oic@GeVAZh!`#8wxZ z3w{-Za?}m^^i!xysYnu6`0RT@OUVk7T=!zx{JDUcU6Bwodh+@Z6m3{|Iw$cn$gU>NQ-IQc*1*T^Fg`}WHp6cH7sX(|1uCOGG-q^7FCNF$51=)1b8097uyT-EEI<$#>L2Mm zFU0h|=il{CdxJa@vRrE%J0ML;WTiM$3nclZf*Gqb1{#7t(}$NM?Hf+#G518b{&;N) zEQo5f{EI;F))(ccKl1|@C_~eMq7w*8Px5O%G%5KZyvlX zonKIZ_w*j+66nTSh9od5~eOCYNFUryD1;wO3+ z$2!8AE7oJG9CAt^xRkOxjgxuI2Ww3(ogV>0$U+`Ox?|hF!71u+jDfQ%T>y*;@Mjt3 z)Oi=fWr^Fjb^1hkzghvf7=)=2$Fc#iLk(Btkbd4>0p;L*b1tfFd|=lu_J@8)it*lC zwNyA;cq00uR(AO%UBj4K)pVUUYBy;*twBi6Xe?EE-eo8=|C8v;-O?+`6g>el!pov>I+h~zz_HBR9W zcql#Y=egP1Mo;EI5gu_Pnp^MlZZ!rYzPWtl<3H3I9dlffv=hT- zVIsv??vfnbyg}8fx}>;>H1HLGmU0onO5D<8D^bH2q!_aoSdUQ$$8U;RO|@L%5HA zndDy5Pn9_V0K|V1j6Xpum%71(0z}r02+^N}yV3}iDM=sZ{8PY|X*?w5QM6M>j*({x zL{fT$a(h-D4tO_@kh-bNbb^4Cl`0r_?%%P1$J%+>9(c|Ec2A^!n#rF)`6Nlv;eGU)GbLcSa*5;Lx zX+l%=ULs(UB(q`43?Z>-`{NrG>!dB8WTj+p^^zUBtBY%)MTj>1#TiEhad?%5N*#fG zy^jDc!BdRePk@Y=LOhcri^A%p;+5u|d)!V5ze zNuZFjn9op6MsDf;_2*XUs6$m~lb##PfNKlT20k+A61pExSI=sW*7X4UvfF*_*L3Kf z-wvar){N4w<#dqr!YUS>);JeYpjYs!aE6G;G4b6$vkM>TUOf z+$AhmB4I<*cd@TE6rNmIY@uQV9wxMUJ3#Eakez$?>fd{S8qZ=f30sb+hBt?5C$t2# zb9YLb&SckHb93QGx$|udqLGGyo?SNYN*x+MrbxjRl8yS_0}QD8iYVkim_%j_%5({b z{*?mTu-N1p1duk_G*8Hd6eRE4&y@?15sXrbQFe14;HeBdt;^?$MATMt^!oX`=hF%{ zb{XotzFa+_Z`J(m6Hz{DNnV_IGNCFA(Y$q- zcQ?&hx+ilausEts%Z>Q%VJ)LaEipc0Os(C=Yi8NYUN}$Ul{(Xa6uAeZ*ixGLm2RF8 zmr96gjh+$_mBC?J=^Iv1RY{@+VKf2$b{vr|e5c*7ENMM=cM#>(akv z|F9W-`bpC{j~sXGV3+xp*~uU93IA&2t|G1L!U$CbNoNVW`_jGfe{-o&R~pwZj&+_F z{CHhHE>+?awJInn;3lGqU8G&yZh-j`i_LGBtq!FW zw@{ms)ii_qcI(V#HtGOt(D-_!vn_1ja-{j!OL#Cg1|5cbzh~bh2GXd{^ivZhw9eP; zy$xbVJ_kS4kV}5JRX$OUMLFrS{A9m`NQTuWQ%plNEBH{A0DQ($D1p&n=&?&>bMfOj zku^WAA1zvVm7v;-$>+LJf2kq|*s16!jBBp;x(A;FA!H=DzhQEWQbed1>O}y4HN8SH z>k;EG=1;8nbHE(46!nqB|HPc`HmNY!A)t`YQ)8>4HXsy8ng#DAF)&i_=llmGa-U*# z?94i#0ZYD2X>Ky_z=L#mpp=uOH?a1zO|yu?Zd`FUuv5M{9Dvir>%G){>Qq2XL*yk{ zCXx>aLgf_7_wu#&+mzFGOp#j_!Md^rPd3fJOpNPRWtMc`0)nVH$YL3746a)+>&SKY zXU>K;-bC~#>$!!x|M!kH|74~6F&Wm(H$t11cy|~$cTZUWew8q-^3e+ltc)gnvTH6xiWi8X9BJoX^_20vj}|C4%W1En7WkJ%amf(W8>3~%G>F|Ju4?q(ec1W6z9tSJQYsT9WsLyBMbgSphkHO^GNY;ywE;MAYet&>n|NDuD+%jDYHKbE!k-ot(W%F8G*Dk8>7JQP zF){(BjtCe9m*Ng@8Ip~P*fb7o?7_VxIIP|)GFjNJws1Hn)c21rPFFbA$Ge}2K0h$| zV5%8lSQzxuRH?gRJy7NT4|h!)X{Mk~rct03Dt+>qr~}uVoxtL~Q>SmshYwTx)$pzJ zTvc9*cHtzHq)5R33Xn?}ah_E@y;Bgrh|Z9h9&N`sp}RrJ3AL4oUQd=|3}*c92>IpP zf+gTAi}J8SVz83!7==zs860^wJ9L| zj7;DXFwOQ%nqg@O;;(lXGZ2R79f;h%a(z&yotfFkhh%U>G-N45*xDj*gmC)LmxSJi zd_R_Y#4a!P2H#j2IQkgU{C(fE&}T%mj>w@X5f4EdZ=5Onm2${=#5mk10%CX63>jZ` z&^km}Yu#KJ9C`0U482+tt9L2yF&C5Pnz24Xz?CgnunQ%b#D9 zadZlBVfc@+aR=!cD;nVk-v9U0oMDGH>=CKbo;p(JbPxGgLi|=jDMeCa3WZt^eG+x< zbdeh}cyYP%GuT3?y`A%D-%@E%kZh6JJE-*2d#LHtnha01OC#;DnX>$7f47;hjW~f) znWrE>~cE^3u+mMJvQ1vm4}p7tz5 z7Y34&#iS)(SDk(tz4vhygbK+SKC1|4+tgjb*@)UPEEY+zvJ!Nv+lx7{5tJa^B#OFW z@TlEG$GuMhj?YfD@Q*IC$YL>B&ug!J=aLiIrpN;jCvJTYHs?e}K@WIgYzslJo_$k| zuRWkY3t4pZ*@EG?z00=a@e~GV?!{ueh1^sDf|0bYXlEZfwGY%pMYXM^<1x*C&S+of z`nD|O?yuvWk<1znj}&L(6RXm$Ze!k zqb>e^D<+hZ&Ji^VJ1t?ty2dT#78zaRkVx+@UmdMz<%6ysG2Or^rtnUss{CpBiI1CS z8jH%8@pw1>hyQ8?ccIBCh_5D9TJIxi6N4IHWSkF))M!bRSY?)5G-h&GAa zT5er3**i@T?l1a&CFDNSnD^vD%wG&-3+AVe!{omXc zrrhOmkgfo-T}|tpzLo1icZR9H;$}VR3fl$Hb(UmB>IK-uCKphb+foi|ER@lBDH~7QO<0qyG$Vay}N5 zR`_BsTmq`&*H0K~6UB_Z)C~$BwsF4U_s;RJVZsHC0m&KmF)PRYC=0L=%s_c*b6SVM z=zl`9uSLyi9`hQ4NcH~V^t1v%0(K&cP8uXahH;a73~a5|7gqFHFeSnNnw|XyF|{Oy zaE;fHCMWg$M4%_6Z1Y1{J}SN>~48rpzXz58QPF$Rqh$!2m0{k zrHp-nfRwmgTN(Kr9O)6?U|M}0aDQqROUyfO%k$B&c?=xuvhQFe98()K;Zm$m`wN6Iz&dTgtL@%N0avjVRLhI&riluxCocC)C6dnx*~_9#<`K z@=5J_#WBK+InHp7Cw-8CdC*}s6WZExhwa4s8b?-p&L&_&!cMz1Fu=%o-=?*cFzt0I zalxlg{8V#p@Nia4*7FhXb{iTnl!70ff;QO056;q}P@TFW?jf-uy|{L$ZjKmXdJJI2 zo5lcOSBPSZ?6a-<$T7gBWjg`poInr2Nu4d9)N&K$PszZU6=ETCX@ z%(?o}ceJ~+d^?M)%4zeu@W+5Vf)ZF@Fl!F&Y&(u2fGrb8ejH|MCG$NChojFkT*Z9qL6 zFmu=G^zq`Nsh{eVWKRDp%&_-8Mz1eQb<|)s8Obl|A)JZGp|gEI@0nFd#vV~V+K4ri z``v3LV$nm`M7l*rt=U|%T$budq=I}D;vBI}O|M$<4x|tcVNf_fzA*e;QRWhA1)YuwTV3wwVVWI`q_>XnOm9|I(Lt;?AJj1eB|v3n)0po~Yvqw{><2>+6o5 z@jsn@7O59~)#a|qG%a3%fD>NZabWKr9FJNiVG5L3*w(5|WRdyg6i*dUIZ3?_fK)Mi z1#I))rN{y={vpYTt9B!(Se#}0Vl$5jM5fB<&<2TiY4?1mpITDIxTlN9^93Qo%)viA z&xl{6hcWVacU&s0#yq;;5j_Oh1h<*r5Tnp~h#!P`c#FUZCUZvtInPMBg&mL_|P zI!?(wFwH35VL0<=u`Mk#pF^&2Q78uz!Rlo-?e67c z68@w{($9EG%>Ml^k+*w}WN8fkIvf`(gt9ViPK6eF{E8>m_ONq1N7dh2Y6t@2oV#`O z#I{$v9+nF)NuA?@{TjhX(*`&fr#Ln=dF(OH1&?#~ue48D8+RzBqP(-ANw_9D4WBR& zDOc!3b4920#We_vtZ@aO&$OGw6Z}E8kaZa6oZxC&0Q7Rt zMqxo6>o}#>^;@Fy>P&r6X%xSJc#7jeAxu-^18Xq-|9cz^PV#R7#mW2ic5BXLgXzP_ zZ3P=hW!zcuHu?Ggq0=k`cJHTVGr{ErivN!vJ$)6EK_WVaA9i}_?4S?+7F)eH{Uqtx z{n6;C##Vr()-&{kx07DfYv>>>_Ec)c)YA`w({9L76E*R!ovJcCf&NP}JvX^}eo4Xj z%q~biTL?0Ss!m{L?h^Pt38>ZtFe5A{qahZ#8$b!X!1L{I(HrC}@(?-Uk$V)ob;hj? zSDN%UavtM{H`pz0)Ye=t>z2NgGWf|3eCrwy=?>QRMCg8dXoF};gA@=!u+O$QNvf>*O ze>`Jb&S%1fgLLQGMfLMp{-3+#>xmTJ2(#$;Fyr~P!&C`(N*ES1i;qT7phsGRD1@&X zSYI2u;04?N;%~h~jMbJxuelzw@eBP*x*wT(N=X9<%Qd3*R4iH-K~YWxKIN4t5sLU? zkmDYAJ2E1^^x|a7!dt^%P){$W{Hhh~qrP^PD>S#Z_R<|&^o{dHBTF5pHOSr+|byje^*NM zOXU->pGhA=FY&o4Y`*0{9d`&jhfyD_-!z`bcRs-L&zRF{$>_$M-5YYu?p1f%e~c#u zoKd;UG1m;-3+cLO?Y>)W-h@Jcx0dooyfgVgH>(H5Mkd#3x`|FzPC8WGXVu|>iwa{p z#iaU#1njncP%qtLsp2#zy;?r{e0ip)vSlx8mzA}`+!E~of40}1?-ve6n~C{&BC$cNQam&kszr{W3eUq4 zDnwxrbr0Do5 z-8U$yr=*lvrFEa+VHXp|Rv3@`mA2y5VN=>oqr3bk3XGMFV-8JneW54cfm2*fazFy) zqJXtyfKjek1;}emGYFfOrb0#A)@Smm6ZjS4nYC>c3TD9OZcjIajpSGSjNbecdKC`Q zsMklAFYHuGckXLO6Od}PtlBwV;CA;}dvQVQ5ha8dv3NZ&jvwEr9|$sgI|WJ%niQVos3En%Zs3W{8CVPp8Ugak$Q{pHa8 zugghvg}!RrJ8)z-g8`y8zO|lb>FUMu$?ShVShuxZBLB98VUwRWJnFHZM- zNQQj8$R>@;G*C-{en2hkzztT~gJk|Z|Onm`N)Ke3dLi@Ml>yJx63teg;FPDcZIUMBrXzw_cKvsC6T4KprsE)YW0 zG~yVa^PZ_{U0y$;6pp!>M01H4!$aioO+z3cSy(l(gW~~vrT=pI4uXzB3#Mmv!H`NR;5(RZS8tT>b4GF)q)QM??>-*ZU6U!oR`OK&Qitzl^J; zNwjKAi!@9pD&CAa(VV! zc%aX*k4DA1!ngK28fKgvKr|<1_0^-ZVrng*E^8kZzf(8jvL(Z9ma*BJxnzodS&TQTc`7W) zu$wG4uz($Fo>*)t=_q)?6g2KpKDiwYS_dRZG%KETrcIVIJD0b-pwxK6%i&>;O-7wL@NsocVeF>GxoO&J(mK)AwKZ&Yd#f&&ZxIYiK*D{I_nr68^-@whgJ5G79Ve_=ZgWrWrgv(e< z3tV8Jj$A6o6Qlsb1Ls~ALzw7Iwun*7+sr5K0@NJO!esdp4~SabtP2ko7pz=~Z~bXb zetGa&WOD-ZeHe91hQG%ig1HVQGNLjy#du(@>Xj?{W(Jr|5`BEJD9Kbe%**YJ=`F0a zBm8%1E)caM8E&eeA<`K^sAf-2iaYG4Q{{>W#q0S&5AAv;ZwWA$MKzaBi(!vZhZbfF^UB7wvl?rTVYUbgz9lYWPf!I~?|M zNUBAUEoTd~`Ty+Gsdbaok@mv~ZAdp+mw3%=%sTLWr(4#zE2MYZk>vCfy~jbv;9H;4 ztLxp0PbGN}u{=XeYC>BQyV!wL#b_H&Rk^Fwb`D)o5Ub&miZ-Tbfl6EMx6VORlL#`6 zmF^o1Xl;}|hs)~{!eeA1AP^Bf<@dDeSNKhr5MCZJg|jzNs_0fS7CVgq!`hb&cNtEs z1Lv!A+A0Z%_UEs1R_=a*86LIuD3}dL-H2Ik6Dre0c>v`o>mpD5j0r0%mHtLuX*dqsDAgSQHM~4%912|FnY_z~F&NRDd^%OgG2y4Q-_$n6@#BuOM4hoWpLR zQZL-lG53OsovY87HDQ^j9hp@!%e%#)xJiCh*RJfzIq#G0aQ`b<_HYqO7!%zP?6<5=F$$5rPiDnH ze1Ok^n95c3bRuAh&_&XkS3MTwwr0wEw}L3BwW)9BAzcc+@Dv{}I~>aF&(x2Xoq_C$ zE3+#Bdi%yc03AlU83CNcH?{O&6HzQ#fP)plkQKqs=CxsjUSRQ5njX&j#X$=^+S9Hj zO^1zOgunQM)OS5S*Cn-4{`uE`d)Wn9GU`@XFg!;tbu+Huk1v@=TA}duJ96P^W3KUv zC&?^8N_G#;3Pw=Y>^rOa0V>krHWvp)gsMg+Q>Nf6b*3-O<54KLWG&Wva?S`3vKY%L z`1yf(CnO-GFh|ZHd;`TIA3OcsY(|{mYX&_^VqpF3kJ_*o|0Je&(aR4+g7Izr z?*h!iWa!pi)WN$pt~q^oc`a|d*E-@*#hY>&Mk+PmH}G<6r~K#))?&xCob(GoAaL5r z!Z%rPa0Gs%yId;a&A-H9nt94g`0#2|eE)V>)!5L9Cxgn5RUqT<$R1!Nn|kp#C_wSJ z>Y*_Sq-m0&mf;7EJ$&Rrj13ECHHIq2g9XWkT)%?=-J(hiIhG63vKQShzPSN$YND{a zA0VDd-=FI7O*_+Et$V?~7aln0KTy~-a**pow+yR;D!a&3CNgAi-cTJGZ_2ba$`~H8 zh-YQ0B8#iJLjQd}ZmJ{-Z(WUkCEznwi7p!u0=row8C))t=0)j8(9x$}4S?yjq6yW3 z`{7WOuKW*^qK<%yQvH3FEhPwm$*Axw(xHS-%h09CrBr8%t2<=aJhT6hj+dhgx`q-H?%nQU z#J%aFZxx*ed9WAlZ?!~;6ecB+Fj#%g>|=gQf#mQZmx!m;Sl}4(Gxpx$xmX^$XQ&}r ze<}2-H}OLejVY*z!=egVcvY~Eg%|OGZMI+QBcU~(HJ_u6xzWNFr7rmHzbHh5NP>;z zEBAC5()Zfu@VpEPYhnPz-BgV*m*70&okA`LI~RBB%STd>WusFUjL0WfsiER+8jWZ!n#oKkCM$6ux#NX%w zVRo_o#2XX_d3|q51D3xeQaHd~qgm-ffuL;cFuz3iZc~ebNy9{MYk48`Bw@{=j$ro6 zI^MpiwzzG^7c}T$9!aj~>AM*f=$0s-+sv0d;9#!*u@xB5niB#qj&Qxk8IlDRDA2gj zgT1iXvKT2dqT+V)a^q+Eu81&C_!H7*$aOHLkyB=smFCUQp+fY(Fqc>ejD0UKAob zo;@dQ4I_nROHX<7*_wT5Bl`XS8#AJ0EAA#7*7=w@F?TGIVIZqvuD0sxx#G@>XVlJz!Kye_5oAb$NJe1A{%?4F_r^OK zyNF_@d#I-i!Z=_$h@|mOZznV{zm>pF9A_J zT~V0j)UN9++nj~+y;xzcHe*fMAOS4TJ-*!T*tdNYCLe+(8iU6(eCuBg zW$MBhlakIQN5^y7BM4`>vx*`^1S2=5X$GFBRQHeKW5Y9WoBf9xqcz1DBi=NXnEefl zduD+v3%NDSYPrs@Qme?YI3i}9N^j2+TgEZXN;WI2g1B{h$|`rn`|ztlUMy5H^bc|= zXJVz^EBo-cYb%p{7%j93SM|~%=F%lUC&gJ=fLkw~3{rHU+)fenh+j+^>c9C_Tcvwu zd)nJ~P;&DTEM|D`LI!DH6_+zN(KrU|mT^Yf z>TccnR!XuyMjhlP#jCfBg^A=nl+Tv`L0Uz(_TKDRGF{!a*Y8O%e3h7Nh;5pnyC|w-wbVm3x)TDF(NTk)x|x))=8ECYW&aGoPYzaW^#9qv z->Vp2{ENcj$FrS@ovDiNn_5=j@|tUyj4Eo-CWcYP>(q=h-{zWdNiWRha8rVgFBcCdi-?+FRn?%i+5o8b)rZAckkQqrq15AChK zdUzVPHJ*4M>BJRk1qAl?!Ln|EW6?qU4mN(v&hlaQsr7(KRq#aYZB+U&czc(U4nJim zamB;qEY(Qt*cEpws$Q$A(3)?0O|?MNuD1?)pSoDitTzQc>xh$OM$Rj^{2nD-P1J*F z3nyf@=G-m*K~%tHeOSq2)}~b|#=ub0fl=xD$)OR*tp1n=n*=(&w}Q-k3g3F4CCN$9 zm+nG2zqT=YIuEhX)lDhAp9l)Zn^t<|Q`-~+4F8*A_LqDKYgu0OYKeHnZzv#-dm#3D z(U~KZ=V~2SIsimKyT8R6p3-ySiiehc5my2bv!Mw6h|UyFH+oDQ{sa*{ixH|%Wk0o7aIc%781hd2 z&Qv4mdY>t{w}ut0mjs%m5MQfs7r)3n*~b247U$BjK`K?}dM3ar~G<7SYOwu}wCMUhbtd3d9OHd7t9FZ`4F16#KIF!FcF?wTiOAN%J1;GqjI_jYd zRh0Emm(dl}5I?HxGX5zH7yCUp~OJFsICj!~A7bYB2qzMyCebrz& ze$s+W4a7lD7tv^FSJV-TE4{sj#IspsmZ-9F-zY|y$yrHdf)j>5J5e;k->s*sJUUA7 z8t7q_o9p?cUv4ax4LfP%{pZO5I858WV}k76l^9U>f67@+)9dn#g|G93R?epgn8o&w z#F_R)Ks%}u+g3TCkz<95_siZT0P13PW+7ZsDk4H^Ta!XOKYlrOm=FfXs#7|#n94f~ zhFYtk28N_VPmM`}54mb?9hr;ebsfnl1KqF`HX0n`P2=(viH@Le5%JL1@H~=Aok!{0c zR$gRK+5i7tz2||`PI096;J}hrq^vhmXwCz<#Ph8857Gx-=F+B#jPVldYS`}SghSM( zRE-EE-Q{AxHe4e1&jI@lMR)n;t6*r-LFs{q%rPg2w1VC@UbHrDO6IJ^d>CntZ+!EX zZEMhvn4TV!jw$oP|Hy$mW3XudI8<8Wn@%l-o>@RUR5IM>L9(_R2oDawKWG_|fhV++ ztdcZwV`sKM3-O~&6xm49j4=ho8PJKMzLZbkYWis;4-KO6!~LJpntq1y70ROLKnJf* zzocWabI@H!A`^XRM>ztCAWo(<@J)yn+)yF9l#D-;E^cn91S}rdPVl`>Uv@9>#$5?C zq@W<9W~Gv^7G||bIX%u8%MAJUr$P9pck?qb36tY7Lugtehx8Krn=AQD74b5=+ru?M zr8Xhvx}}L~GYY)cw*_fHsaP`(L)n zMn0}mrsJ;zDs$pgu$6s*Vo`qO?Iov_XCG%Lm^8=kx{RCBc$Qz@q(QfIZ}ipdxOuwx zG-h9bq_dft<{n%=iM!d)+~ySJJ%as14rvR1}4VL$7D^9G4-XOyO$k->0gSQWq9 znBkK*u|_WC8=SRxUw)uTrz~6B^9P%5)<*eOsE*o+vo>mEsd4V3H%iC;LvvJ4(F8Sn z(#lh2hCKn&0-lH^{5FU>e15H@I}1E`a_?+?#Tapqxu+~dq3FYEuG?VJYs`M(Uz)tz6T z?2ym8h+dv*@;`ETo|hOzBi+3t41AL!DJr3-h9@9G!QbA3m!lI~O!#5ittIjL_+Cp< zsrs^|>>a67?;={6`XlTCT|<}4N6VWprUCxV=0kApdqUJLQykQ{ENOMm9II#*8w*AB zX~!+EQLxS3ylHQ_J1Q5RS?7k`TNMZE;6cty zqDtY(vg7_5Pj=YLipbKuo_}iCU^x>n8(^#AsF74vhTSHyAqc`JFbr6=EiwtIyncgl zciWCZE-bIQIRwW0pXVylktZQx>^GrwjWa70taKJsCtaVrZ{{jM(%Gk_9W5ZHXzJ3`ewBwX6 zhb|;OFnzlV^)sE-xFaPcJ$i-N)rDvYoDW+%IED`t{?R}R5VE!MM`YrOg|--Xz4#9f zEHllEzOOCiy{er4D$yIJ455%dQmH1kzAaXJuDS(^MgbL2HwDJm`76bISJlVQvF(n_|4x4<|>F9=emhYeB{KJ_1SJ;Wq z>eGZsk{>DP5ldw8tsPuQ+sUYt-B!B3Up-Jt{ys?=={gW>tEUS6(G*83AQJQzLu^o8 z$0`}ofhtrm1s3%Qz_x^RKg{n(JiBELc2S|x4Lgoq;;g?w<+quEJgY$I5n+_V=lm2q z`q%%-rPbK#L~jOy_1RMd5gxOL$bqPlT^_ff(3?}FDDyx&p2JrrIb$o?bDIXIo*`cC z-5ca?d^la?z#&3w=dc;zX!B$9z91XD>B0jK#wc?KTCZA_T1ODiigd^XxREA#oswu` zP6kxXcdro2yjgjkriUnh9Zfm*-&Wk{AAaCb>s;Fyzt6_m&?3fdAA)+hQJA^#mETKO zbL2N@)`pwF405YVd$;k3kuOedpr^ah%$Q|dxzi;^2x*&|X`I2u3@F&ea3(bNbV~H27)6 z;`XRqZ{dkI+*vTb2JhDN$F+(hCfDvrXLUoXcn9qo3eXgfb6-Zl-n5d-0RZ55yf{CRE4iQ6_%)!1Ye^z1Ig&s|FAKzSww3iG7^e=pYYd^cD5}# zi*(Gae#+1!Yw|LDy-};gepNgV;ChR(V7v=2#-cul13+F zQ)OynLexjBQa*0&=#N=9-WFpm2cfgg1Cv7_OD%8aM`WvS22i)xf*q!GGCK`_Ku-n^ zD+!`sxRnv@$$RSqrrjybT4HAP6mE7JS_t!Vj%SIC^$@}C1#~T;`$BgWxF~I=yeV=O znozR1K$aW{jxDqj5o@bBDDCFR#j^b=mKAdr@d(1J@OJ9?OhV=jD7oGZwmDcbSwuj} z1!=d~|LO^Ma%hoZYxAyjZScXGV^%q_?l`+_y7k2FWv)uC8c~Nz{aCpf+oZzK(QCvt zM2=oaYEiz>wzANbz%3)wxHC7YCwz!D(zPw$^=)l)*wG>8Zy;eCsCCo7M!ok&j5iQs zJA2NA`0c-6mr@xohEg9N*NKE)O&mZ6IA4$R>CR!_) zhKd$RaUsU9Wa#Jxb7uTtW_|#ea-O9+k5T%vfylAWbpGp5?V0aCY{a0|m-|^HD>W^3 z%=^S<0_|S^GeL>?DNp{}N$(BHWT7(I9&PX1@lSkl zJ>ze#m8AyV7PL33aFkv6eD63Iatlm0oSRH>?|%Zb{X@E8{Rb}?3KuO`ZjRkX z>ujv9+63<&^fNNlfYYE-35m_I@<000AjMKw`SznE=FE_%aBn(n0Cxo#zv`*DWDe>+ zRLJv%4FBB%qm<_lP}o!ZvBF2FkH$O_s-nK2Ofqg`>LOHp$Kn*wZ#AeC@Dhd zEAz3`Y5oF+(CQ;kPJSQrg6z?q$EV=-olHL{DxN@Qz79z>pj?^-OxD@g!gLEe6$~~# zTBoyWwRQY@aItCw7F8ha^|?C*zl<@ZT95ksRM$^sW_w=?$X6Fe)Iep7!#$0-1QATO80A|w#k-M-U&7vISM zy=2S}Q5j%mllA53ZR?IB%rmhPQ(sAK3qduxf~4#8G(*4aE2DG@eDs>PrNW&-Th= zpW!=MCam@!&b)3~TR?3Ez{{S>mZ;Qs2t9TgE_+%18`tNI$Bl9Wh?;C`lWTt3L0pYblrMPU`-wqr%ZDxmFRO`Z9n_L zo*0PkdN{-D=%dl_hE_dk8KK?Y43>ju(c#~sxt&?tM_n^GSO-rlQE$lv;ok%jzH1`k z#Yw5JXKO;{ap;;M6-?Eeh;oT$VgiIty)OV6w0oH%%P=E9kP-V?OVQlPYr10zbBIL% zF3JOofmep>2nCT(VfBTAgdawFFlpkd{vVhp*h#*|72hc<4NvCy;q6@~X&Z^~VuJ}d zI7m{$7itDMznvm7(t9EFmfe_erupL{89t7aH&FkXK7hi80B9tM3`l>K3N?Xs_-lkh z87FF_IK?oU(`bZ=807HV%5x?YV_gZ=vvhJK5l^ThTqt;{Hsd62q^j5Irtu!8(0yq6FQI?2T2BJC$|F zV)ApAmm=PNg@V7=!4%MfBhjsIH(Q4F~6M%edwl zvH~1{8eCx>FQGswn>?@KzMNqB_kt=(J$Gv_k39iqC^g|aMamZ=QLRl6I)3YspB^)t z_orQ}+UfrqE2+pytV;uYopoNuXz?!J3VIwFy#Anbmyi?Fs?r80F@iI^)tTY%&l6k{ zt@7Q&fwdZ{oF57TnX%2#(rs1~jPmx>Qr_swUd8_shnzW=y{OLwid*_FYxI2v1gitI zZezpSHWL9J+~_{qghdB~nfeNOnb^RwAeWY!X|7)rVEpMS%|6A_&*PE9+K^_+dlW)a z=KIi$Bb3K2hzlmPi3Ga?5VE9k&%8sWA0hrfGzf%!O5QS5pkzaImtC*{nrdN%m~3mz zhuf~GA2S=S8L3WvHVn$7fg~GeA)Or7O{hj&GEs!DU-?)}qYut8u=B{nAKd&LnV(z$uFf8l|1T{A}zT-D8YsdvjB*^k_OZB@<4batTt89lQEO zSB!S;!Cxb|k_QhXy4#PQ$0bG+)nNaxfx+l`@YvaYVAs- zYx|zd-wAAr3+p>jsEfuOnRKYO(b8?V=MeeH9mkeYTfzt+tXi~Z)wO3jL=7EucRn4p zAx!SwEr6Ou`4s}KuQVwv-_N&n;vx-|e^*b>qkbGiL71SJWwqB5DsYYrxxVFwQ+Cvo zU6a^llq#IX|Dpp3>-!EVei-Rf(H8!s0LcQ$$$ceScKfF(ZqJNe%q-y5b%1kQs_6mU6!q>zC3nFh{k)CIi6GTAFJaRJNJhp24%Ho-GQJtbCPa;B z97BJmhC2n)l`~cV#mJGyHt>;Au&-N%G{kZLsZgt0s{Uu~sPIF?g?G$zoNIM0Gq>jXC$v;X$W?%SjH@R+xp1}v;#$o38z$>= zTwI~Z)k4SYb3wQ=YK<>wv#J*L@}k3gmdSkpG80){+Lmq$b9~*r*Z(Fn3I3zY(4!Bc z0OLmbp^=D#>W_-luyuX6uCX^dhN*s3`;umMsL{-g=K4Ja=04!0@ zQOlQLMP2=mY-KiWL(l*Of9uMU;zuqPKWdl2t(-#R3!o}1nM<-M@0!ac%81b41H6_X zw2AB7@TLoI@68b&qgKwZ_?I?lsnpycd}vEoZ6f9Z_xz8#vE3UKmPhi89Xpn>-Mhoq zFbNOyi(jgzr`N>UeeU#iaVXTEu%?rxv!yS9PXg7Sdho%x-Zt46^s}lnoXYJ`lF*HZ z#*F|IFjW{kP$kG{%(O0(uip`KmE03d#9tn1M}McSge-{ZLu!do1kHW6LZV{*Q`$$V zf~a)u*f0=R2)<+Uj`)0^Ap#jS?sYgJ3qf<{jcxp>kD*iqy*_d|Bx0p!IG5kOWy*WL z2l%QiC`XHZ3X|Jbgz(d~N*W%v2ElhA7%8ENGMY26qwlB1*Rl5aRQ#GXL<0j z!tGAu$_MPjA(@5i?-@BLhT;9y2;c!44Cz2#0D0%HvcW6}f?y~GNZ+!8jm9zbgfQ-K zlsxMu^lrZ7FqrbiE$6 z-ZB+SDAIyZP$0|4lIz)yRuo!>Q4@a_pQ%q0k~ymR@b_g7Zq;=KG}sF!Uhvbt-9`oH z<(ek2$C=O5eGT=E$_6Gn+mgW7nA!u3??4g^9K8nf?>{A8y2OM$zXeo-?sE}D%WJ0> zf@~1-TU7nD0$T)9twAV-3m&}bd}pu~7(aKD+$ z@;`n$!c@4p2zH0Jo;-AvCb@4Fi? zqwBtL3W;vU|BV70VADI)tAohhDJfGC0>!B`b_u7%lk`TMxC~MAWoFT9?~C`LC5iox zoJaMtNM65Kly@0{fOE7Y%?&>}blwTSjFRQ>PaAJ5=+7r*DNIB?EoQXw4}?$RfY_Lr z+d6866Trg8CcCL+N^f$g{ANRkcNk#t{I?-bO?%Di9#p^)BK&2-NHB`Yw+-2*Bj`_rOZD(Z~+ z2gtCn2_u1eE|Uj3%2ZY9)NyZ*Q}}&MPOVY1aEw*h=$(>DuXL|R^TVSWN7N+7$p-#@ zME}&Y9TcToV?xwN9$t3i=)zMcVI0ZZT%#oW;t#mxP~UT|z?(~ikbA|%TmN_I?z{Iu z(TlT$NIi&$xQQ*K2s%tb47l!qxfRoldUq9F(Me{tH%m!9He)TT_)hIOkrcs?_D)Oo zrB?dNd2+Hm)~M<|I#-E$yP1{wmfPa+wxNaeDJKxsdGOu5h!`m7&MGC z7VqWoayt?rEAfAxH63Jb6z-OSQ^N;`m!PXoVdOuFdNiPXV~Q;7*I5c#v)3~CJ|hwY zE`f)3RU}iR8xZI4g$(niv|?Z~HU1<p4&O;iJB37QN^WG>D2UL+-g>KV*ICDFjZGdhy{sldT=**^>eltOCWYqU6zSyk_2-;;h3&R=Av;S7n2l;g)j(DuY2Jn)@`r zRWZ89^pZi+gnfuAiuz`F@GA(GkU>lCZ=_!|p&vRV6v)i46_HuQu_X(TU^rf-hom-u zT^}%edygG)*Ol%&B?WrVganEjHCoyZASPI;FQIXI3pGiCxlPMmn)#f2zNw_>9HE6M z`;Q2ki-1o^J8z9nv+H>bGE6*T(VCfSNMbXj7LBv{NacGVR+8&3`C*|2e_11AC>oh6 zuI1Bo`R@4b$lRx~5Ig$xCpo6ns6&!u5K1;thb2ThtjO<-n7z%@#Mk%LWVHW4&oLkv zdNsS)8@T9EjFeB>8KU$N$R-Z)@9JER2_u@2?|xP_{$V`+X+kvG{C8;rlhBO(Rcmq>FXe zmX}6$i;EMVoHgbZfY0fNS$BY66=<#g2t5t83usjm`F*`WicSbaAP^+;n)E5NoKb8$9X-SFz0;q&d6>_Jw01L|)V$HOBQ~O<*yD%H@7bLhu z@i{+XXuq!lS|x;M>B0sN8@lL5xQ?~f--Gl#09hILl?gl;Xr(KkyimRB$;PL4-KFX{ zHm3O-YS@w^Gr+|9~o>T_y>1 z%X$l2Li!fw+n9H%`<9dpest%s;gJM0lP&a#0Tc&FRd!N^GqJ?zvA;aHWNRqUUSaw& zBo<(x+HazE;b7?hQe*oi;s~mp!9lm1%foFi^glLP*Iv_t%Pg8ix%kA-<96UIQ8;w(UF?1hMZVYU*1PM|!Q2V0PtYNR{FFLU z0oYv<=2|`dS^+ILWC|um*!%b4I_AA5lEPe)bh`{DA>qgHTyiSWGxgstqmgx@!8L>i znNg1tkm1+$bB%nA&5E|VsC_3>j@{$|y)6}z6VUNO_eF`_F{#+mV>iq}Sj^GOpdbG> zFdnWKJ=huLtd4FOXAz7Mvg5Kv;W>s+qwFlmMYFzBOJKKtw8Gfcb9?kujWp^G`#Zh| z=biv3@!%4+I$^0RQ{)3txANhGvF(Ivx=ZeXM@T=3&j9V71S}jKtA7UHiKM6CIUuxi zn*~zQ2!iDRFHi8TgM5J91po#AS=^oP?V*M>Xwx?gpI)(wT84~ZH8;(2p;j?GF@ALk-=|?H*E&jalER1D8Yf9N z^`nX(MOW$?FLuq=kkthA@Tx}O@3fdX2~Vr4!J+@I^}#(>7D666dAv<2pseOSvHGYU zul7F7yWbr$A%{E=&nM{U6G$#Ls+@!9PKm-6fLIZzXtFOxY*|^fEy|q!`SN&s_6rn} z=Ial!IjU=A?O-bQ`$MJ>J3#+xRmQ*F7lbN>=2z+jTs@gZvwO_*-vch-rnOhziN%V{ zo)**`D7%daS^ZV@D!Bc?m%{K`D3w#C^FfyE&JoPJ+2(MO;*WW)KjdIhiPw_4IOunw zG8N}xoLMAxqe(pQqdm;HO47*5VckW3phy7~0y$G5xNz!fzl@$h^aE6c?Zz#WD1!Hk zupF;ZXLQenqKiSQ>YZskM;jiBgT(Wz#!HhRKv!V2y#gI(p3}K=jNUyS5&!R&h`CjkuthmuyEM4jI2^g|zE*5S(J46CHLJZBhWa+o+!16t zt%B;}Lp%5+LD-oHNADFg1gwS8S>fPB-Io|D{NA%*X$b{ybu$8tX%99=prqhujQeq7 z1;Afd$%xDl?sK{$Ss+bl@J51y)20IKt#$Zj+Vt->zW6EjCcMgINfx)|b{^j7APhkZ z%*^E$6#l?hkc+>`SO3#}kX(oRZw>Kq;1a{SoSg>_j^qufFUYKg`y1qey@;_d9$HLa zNuLP42K=5v*jw(%Fj6rLn^||HNvCI*tX#rNJ1S1 zIm4tP{BC3Bi}nJTJ-7hg`%m1mPSw(KNLNnH00v5!j+vW-=6}GeoCIwf>X5mjd?xMuFzK+J{kj}#!Hwj zAZL=G{uQ(SRFn$xy@9%1i`sNbhwUJP0xy#ZPs3@k_O%UOJ-?qU=S6OGS%z+Z$Chx% z@n-3Cbw6kK+Pxa~f0K~j-nZJ%Bu*={Ww`O5_>PB>EFnU&deQBMZ`~IcJ1kY@r*D++ zc0t{?&zVKZ2I;A2?d+EjO5wb}aafP0@&&6_*^R80D^aj8?H8wF<0P7MupT1~E~xs3 z2ztQF;>&zSqXnnSS10SBognxI(9WVZ1!0h2hUfDdc2EOSoZzhZPxx>-cqnoN-xWhBapy!;OgoV07_5+>1m8;9|5-68`Z-Y3u=&gy0N06o$v-u^XGpo z>N&NSq{hF+C53fqEh$BU9{-8AisD$v4d_jBnPZ>lj{(aZa$5Fl{g z4z*e2CFX_A3+66$cfoo7wEFe(mmt4pEA43);Iu18KpwEMSom3+(xh=i)^RdNCcFp# ziVMakFR+=l)!%L>x0+K#GY;6rxO=?{n&2u)V0OAb1!jKIpGMl}P~pL;&i2Gz-yuws zM%Y=2%bM7eYF~X4QN^dY@Z={$gtYaM~HQ2vb zEc~4>gPCatra!sVkEx?JEgZBNJ}BP-(@uZ}iEN5;K(BpgIlvYmI_jdvk%jeYn6jDV zl%>kO8~xfhau`-RSHAxmkTzPIvCSRrLFOOcenG_)pnCk-%5>XkcN=!p^sfaG@Nbk9 z-EDQ!S0paDarzphME}b4W27ER+G>z?s z3unF-GteP21Gvn{pA$S(nI-iTx*79Wyk zwap!a?L#mC@~o$7zWjr&d;<`y1p=bk#CN~)Gvq{bvLmu7q{IP}Es0l-eAMCVsOm7) zQ$Cuq9W$WshZ)#PJk$MU>ID$)NnJgWR~7*E3uo%Hyz%3W(BKHSu)|ag@7j}NUr;t> zk&YDn<8?ycwvBadh>c98*^Jm2*(BkZ&m$80J5h{I^?XZ`c=lkw*kUIH?JjHYGaB6H zRQ%NU1tli~tq?!qEmEUogxuQjp+dfvZmy|A8qcxB5S28D{SK)L-W#^JfoPX!HmoQmXrM>Eg~_Dj8l4Rv%X6j(9SuIjo+DKgh_bh8=qQkz~v=@`+*!kU=V?` z(Ukr_2N_BHCNF?F_e-0((vwku$+Qk~YS6s`{=*a7h5dm9>$eh6PR&Mq7=`K4%N=1F zVPOa&QiCWwWCfBTSQyOW*HwkvvBx~u^Ip!)MN0dQA86!-bIp?@PGw+Ga1sZRy5;$J zAa2-}YXQuaj#m>7H-XDGg@s19B>tq+$pI0OFHyuKCiuB))bA2T5tNglThD*^&8QxU zc?F?_{=ni*C)uZwKx_^HVuaKrF{%xG>xb^psNZSq5n|+tYeR(#5#^=TX$v(qAN<-k z-auIZzifQNboeJvYPpg{ZTKce>9jyOIg7?D>F=;KytlnxX$_hh?EZRb3l{LpaX;Tf zY!}Ati(Scudq(~v(z|_H$8Y0&l=sB)8=2}6z`9U35o+LUu4zQCLusS@75pZs6y`v{%MjJfgu@P#?l@l zJKqQ#hNcC2l`fh`Ve|>^!9RBai9<6ke$u(bZ2Yp!n~W2-OsWxsf|@5s3!#~2vCAGQ zNbkTv9)eFLTD*aP&o(RI(~E9N1*m`|{9;vEKxb140W?Pof3;0H^nwXrLuQvm2L2`? z__PDLVG~|qJ8B%a|7u$Hk#blL&b}l&WA4vk{gJM}a&^h*r3D*sq?o_M=4J6+D91}7 zdHWheXtRnookrj4>*Ki=1F(+NNV!l8UdDs>>ljJEeKU29PY6Bi>0Qrc@K5I^slV$S z9SH-FB&>nD1%*B}$|RF@E~Pv>!IFEyEBz-)taB~)&6V_z@C}~fahrs)!cf4eOsj(^ zATPzlZNa9Ms{9}IWmAQXun4VrI%k`g2?S%Yi!3G(M?MJvJx~k>|A`Cd#Y#R_Ydz*& z@MQwg`+k71@bkKrL{Z>hst3|4Zk}4=3IwT}YgFwxZu!tlU8!2!&Jxe2dM}qULWWt- zCm=I0KuxRH?WWO|xap=?;BB27<%8|YQk(GgI{5Nu@Nu$ufT2Re2TvTHEKVZaQSKZl zV5)|(M2riKTAq7h0Mc@l__)C<;*(j~^XIqQhGi0_%Y(U)zXvJ2UyV(+GzG<3qoTUf z2JxdjJ}T{M*m=6!r=Em7PT8EskPI%>_f+JkbosQlGNIZ0d}h6W&|eMS* z@D2}4IP_!@UUrG9&Uus2a2@r&U2k2YW$VV05Ht<}Zoy47mY*k8&@TVfcz8q?$@PCRx2)y4i#kW12Q=&P>!}|T zHh}~4_lHGy4pCneNX@_~#)C}RB#7%030DA^2p?No*5oWsJe7V^fh6gN7 zX)vOu0pgg~i5dLa5+Qx+JA&7g_UIZO#Yp)Rw=8jJV74M!a zNq{mw|COz4!KHRE0(L{hXe*W|OeLyMkLo<_C@El(={vprZRf|8k`^GNv@H<;=qmwY z_x`tu!Q+iBR@4!7VcI*{MW-8OQ&f$+KJgt5N9URvBSHeTz)F$@vN=;90KBtB+* zimhFP5vgA@0H(=-k9^ZsOJN|?vQekk%Wr5LcBN_u5(isq*h^t32ao-^&A(fwnlh8P zIkusGuI}PbT--6fJWP7nXzkmV!$m;|zEm>+OSFLWR+=2c<=1Jm%k!-%Et+%;Vpqwv z=%{|dQqgwEA+Wkxa}?7TkOqKIogT|!r4kG*A8x!;kF?GEtxfGzy0wm)I{%f55*ggk1Mc6ZiMoUa5)|0s2<}mJogNZ4<7H>|< z5J{C@3cvHCEyetG1h>f@B-|*nO9yMmW+LM3`XYuvbPY0x!d@M3yQew1+Cpq<%QqfO zdw|SO{nG-A#cRv(5tj@Bz}x9&%Og)N=quJv!u-)z*3dRQ7HcB>bn@DH)wPXK%H zBjr;Co8;#iGn226wtQ0($8Cfe>Jte4mH`o@E`eL8;*gV4a_o;ZVOCbmfDIww5)Lz{ zxw~9N+EeRCaQhMHUp)*k@f{o=Q~dR#D_*!l&rNd$hoP;Jk4laRCKTG0y%Cb+M%uTV zqNm>87)dyI9)ZWC5GVUW1BnXjR;(9T_YLw_47=lg2woE42+%8_&i>PUh zZICpRNhK>t6}_`y z;>ONvG+CcoqW!w({9$4$g5$Rj1@63ZEQtqSq|^xSi(g`91mSWQJsjw|cLOKD@0ian zzS(3uKS^MONsuc=WXz^C1B>!>Px0kUVQH9j23$Mg*d%5OQ;aSn#3BLMJT_WYbPv5o zn_E|ZfS{^Ld+DJ)@FLe{*zE62JFnk-8z)l7)6_4O)&Icl^OF)mu2EPy7hXD&aIbgWVI6!(l?6CSh-8p2oIP`2*f_;g-u;CuUilO8l z>5+$wMg|9^$&jvO3u%4X#50SGd1btu-_Ib!OUL^9Oc|ha1AXXwScaN`1PVCg&e&T! zT#P&_TPYfk#E*Kw(gpnZpDJ5YW4L#&v~~q9?K~#F!p`dQw4rGMeCG)RMhV>k7Zj+j zgK>9whN*tJhkt3i%A%LqXZQnmU+TBkXEVaMw`Nw3oN3J?kvsa`Ue<$;4;;L7<<+Wrq98=JGyoQd*_ zWHmMhtk5peIOM{|L2qQiV@c$C98JIELL@$>-3}Bxs8Bt)2>%KFg z%w@7>SWFpN+!yJO3st_1HEvyCnBw~+}hWoYyl z^6W%v{s?n-bHOpI20Pq&zF%U!XYDBBDAS*GTyuA?IXv?)1eQHq#^DB%1~~R49DDtL zAVhgYUXx9HhvrwXwt>CHUS1+W zn3U6gDmQ_xXY63ahNyiWT1R~7o>^jrG81cBs|X3KuF1Nx{dM}ci+@zPzRtBq@%p?C zfEtsXY3I-%IB2QN@JOujzS4YM>OXAxT=M<0N(K08zNyVo|>#2Fc#^IkW3XeF}tsq3T@bTC-0au=^973LqoD)8LF02sC@%Pkf( zKssg$4}Qqizp1^#tNN@mb9*PWVIaAIzIFj^Cn5)`)vxS9-DuQrUDS(O)xt5q*7=g2 zEyK%deu`-WXGcxh_$a<=PuBx^UyX`~O81TOZRJ#ZcvL1s@Kz!>2G=fX3RKfp}#@r#H7Rsmjd>m`ZJZ^05;5UCqfZN6;#j^>oyFzTP zi7d3PjnskgUZS3TIl_`9a>f?B+q80KP8wTFy3@S1jFr5!J#}$Ufnj8SkvmTII<7h5 zQi6A*&~`0A^kHr_Dv!PV<1s6-KRP)Y6zF{)9R8HJq45e14x9TS=Oo#KmRant?uzb? zCFq}UmG|@`Et=l6b2*VW|3Jvlvqi!X7#A?zd0JXC6|h_>dcM8Np>sV9(_J-`byS3c zwoC_kCAr+ckbsS1FoRwWJ{@RQGhm@2zG~?)HZE;hEGZil=v-2qqu~eWMYJy*&EIeo zNhm%ZjSMvWWE7KnS0d7UYH1_@M?_=`(wqjH?S5Nfvkq7X6LOAo!;r7>1d?u9l6vZU zDnXYP#wGP1Du)3={3F?615OMKvcxYqwIMh|W85}eKeK9c%CfMf`UGG9_dZ$H#=^uU zTsBePsgsZ5UWb;6Eqf3WV?%Apq^!can46OWdm8ymUW4Gv*+s^jE2q3@t0jlIsvd6y zw~9d*wt|zpS7LBMCK1#9Ii*zEBOWxf=uCPM11u@AF+i5wjbRcxZSy>mwA!{?>?bO| z*LMK5fLFN^k#xUoyCMRQ`^LmDPSt&HWFuU+?bvJn%#;vEkXR-$cGA2GNulzM&~<{O z@a$6Z)VI<>D)eQt&T7Jlt)L7op*vI@BvY2-%A7x?yo=7THbX*Mk1l`qriZ~c75XAq zRAzV>rF}+39el8?h4RX`!xbbA&2qf##EZ}-Q;bi#)TYEiOkqoEcC{&c!gOEHT9~Jm zOx`6VXNEs07^+`r-Qk5l){@v3vu9FD2ct z2?jQEdtxMjYIs;(;Gne9UOL!4xUf|blWz(z8S_^S2uQ~a5)1m#@4_FF#E>GjO5oYqF$0Y;i_m2(IYaeBNc>0&G#YO?S~+LNW8I+ZfVSMIr{^%cM$f@wh2vzQ%2)Wh+DCR7M8UU7 zX~h(S3|F5T^X6tJ%tzG$39m@UB5WKrr7{Tt4}X>)PaQPVQ7KSGH6#@o>|pRAntZr2 z5-yAN22yu`J$@H-gZq@0p9ccv5lYPQr%7%sZfj6tp9q`?-lg-k!L81X7q^xbNnHqx zSV*HtfpZ2i>hrKs$V0)M;GF=E&62t*ICT}5LG1UH{7krI&b-2nM~D}6j4fb1P+R7s z8a~Dsy9zw#`0vvUL0N(bPS-JWUcrBET>IW1HH#qU|gW zV=kFDrGs>@unKK&{ky9VDI$P1u0C;n8%5i(piV!YWsAP%{rXT<48X}2OHvsW)Q3*B zLot(hJsdC)nK1&XK>x$u&Zlwt4`VMN$FR-syQJ_#W;%wjJ^XJC+Kh}4U)g6+kFP-Y z>A1=CW-V-TI1oKcD!cX-y&t-dxwLwO5a*X}PynkZRoVbUK)k* z=JV8rd}@j%1txy#;(j;Yf1+6-x^5Ni|36N-n#ZFmPac%WF%(*0<@3Xx0+o-;LI zZKn-MpgsXUf~8JQRmZJb<-`eP*T0GsLr&0O0T1;x!D+4valZ8Ua>(t3WTfdm37OD_ z1Rbf>r-c-1vZj}%`Dj9t0|Oedo1@UF5zF;im)+~rI2bV;nGYiaxv1q!NMfX0F>%(MKF-r~2O{XI-%UB{J&nH;?cQQbV znJ!jmuWzk$`uijR!^?WQ&niC~cV;?o(*dI1YIwo2$)5OI-4XOURR(?+JeezC!&NfR z^Hs^vioTMKlL#nZN6pra0~A8k2(?N@WzVm}Ya3`yFp0mI_`6~QXb;SS4FcV~8r7x` z*{~**XNTK+^oq7HHD)*UNF4*9EwlNtJ*)6H?w11$Vb;VUu=z~7pWF$1P9g7tc)nZ$ zFUHAl6W9{lY>ufgCcSTt2918ux-q}nM?=vz${Qf53l*Qi{N02GX9nktH7!5>&p6~R zZzI8-rXQWsf=^8_0XLUvssAXwcUhCCR9r8qX7(^>*_xv+fl2@=y9hQ;21R26ct`Y9 z7U|2A$`*nAA$s)0gINR9%TSknU?I@bHlY21KVli#5uv}3|Esae=#cc1k52M&06qtDxDS-m1sHzXGqqU2*(ktG5}}OMWk(P{`dBSeT0 zH~Tl}XJy6PR-xZ78!z~6nBeQ@yUzY-wlm+2!TT?IV&S&)n&27kt|p;HKD>nZxUwv~ zwF@h#1#3*M9w}xoh%Q#?RZ3gbr9vhFh@bf%UZknoUm80Peq7)n!xjFy(_Wqa?7K)^ z+l?aSD=5!aiB$(HU#$ny;c>=3^-*yV;Lsn;vph)ka2F!KJY5dx+Xyk8{rOR;^K1;G z-*`m!ZYCp0Ze9stWlk^eLAJuH(w!I7(_)n{fZ7rwH#iq-keT(Pm&SmjU{nqlJA3=k zN}~Y}IXbDj@Vev~RLnWa_DPZGJ&}Y4yX7WW%qG~Th5Kepha} zv>7_JAQqsVjZl@Bpq?w-MeEYn_{BW?B=MO@vNUu|Kj}%zRwv)sR~ZznlHQxSP}l#$ zr-`Dl_|*bbW_`w0&TV~|k=)~R)j$+|1XI}Bs@^JRq3Q0<84rj`D|N`>H|P9TQr_lb zX3VUyrU5v{wIyFaM&%Qa9}joAKhOx{Wx@kOA4c0xQA*yY@ux`ZIcQ3bg}4H?J3V*^ zsNMQs8hyL;;Q8BN@=P(3%qKhtS2(|!OpjLI#xGm*!85G7ovFOMmTFR^B25P9_Pe`% ztRi#}svw0}`2D{=1J#4+_lWz8jZ=h1;!9e3s%eEoWHnHN_7%@j$esjf0dq@ubOSsA z=8gWMCGZQ8{f(1(o#rh6g#33Ew{w-u05t3Sibn7az?3vbHad|n04U|M7RmzZVzc>? z{`(-_BdDEQqK~c1oZ{L4n5`Q8;LqrTEWMb%HiRi^HD-y*yvu;8Vjv>N0?_8>4N>E# z&{rH;2MS;`>dHFF8&Y4b?YK1z2y){mv|y=v1x3Z=U{Ws-rccZ4B`0uZY!=a2j+o9< zr@pu08l~*=l141Emv`}aE_uv$TV4yMJ}HDn2MwcjAxvX##Pa{?KR!toG@Bcqc_q35 zE_(20yJB{G!nX}cwnSk32GBYoC>2xANF*j!*o-ZuVs=y8*hr(Y`{gc4tlXcgR96wR z^JV5yD|}q0s;c1i=)pmzyt!2$soDR*ZtnXn|Jf4-Us~Xi&?#OOUMiV(qDU^Xt%@ti ztD63u9Zb}*#s>3!wi-Z(}D)ipU}Cv zkztZ0MLHF5n_wI(ohfK+&2F>i{`!3e;koEw zufPH2@7t_&*P+-z{dY>A$T_MQ-*W0KL z1xHKxU`gSk{E$%hDQb9BA@aMm_;)KfRe>BB`ifKmVx}E!t9k-bSX%i%9B+4yS~v^u zG=Oq7o8qO+Gi}>R`Ol56=Avv>>$KC{7~pE| z*Y9=h+(L{;{y*AG4z+nfpE}l7Q?62}G33kZINiTcN_+rmut5)sVLj;-!)2l*Ek=h) z-3wo?ZO5!t?37__=E&8MyZMnoMlHC)7V*>|#R4r@;f0RUvA|2efrs>MV}YS^hu0gc=~0QN zl25ZBWcn&rp&Y&JNFt}%X1VBbg*q*13J*R|S~NE`n+DJYap*Nf&X>*exh7fI^^4|E z%*zOh>gC4~-wSvvv0&i(v{>6_^rU%DXlLi4LM-10@>V3~%8Yt9*6|;Mnk-sTMN>g* z$aaAzH+U!IZO=XLG|?))CxL8-AvNzE-0 z^1?mB;+jFN@y@u6`A_Vit*t%QsnrzmJw3NPQ_OGW7LP$@mXraXG~ZKzNG~}_{(qB! zMePcjI*V1yKxW7sD6>({l@%*o)!jQ}dg)6WCE9joEsz@9$&f)BaiV%S7}c<@T*og6 zv6eQzH1n&GFbGG8C`uq&v-nu!P5J)HB){wgtkvk*<-8(nH;#Tt07WAsc*s%tWm-@y z3e4ei|6h>#9mVFwXtk-PvOChES&@eH5$tdOfk__BN{gW#8mhGMZbTDLWpp&+GcIEV z{26s+4a}6c$Bu0=ys6(Gq!5oIyJuk$L%P0FIs45orlG9rf8nW!HHk+p5HwQdqv}RP zOL{aww7Eh@-*);$mkXNhSQ<>StiX{U=(Pib%$kgxQm;vR)fJ11N$lFq=Onj?mE1qE ze*N5H+^^+2RtgpjuA`&~ETo4T_C6^~4t*arI6tiRi3;F$JY?6T3?VM?g#gUMuf%7r zpr8;ZhMh%Yv+u@eFV}2g7#^})BBvwGeQPC_IK;H?wAoDEC6~Z4!~{(q4jPE(*k|uwhkfCVzGUb^IO^5F z0Ch;wk#6C=UB3&D6U>n+4keAjGLDX$p*JO&(F{Oiu3W2e8 zsD2VHwET}Ht+btPCwKzNkTkMTWvd(huInSemg7iQqR$k&zn!i1tT_y7`=wpL;bU6w z8hNa!pb5_@uTEA?U|OCPIBna%qM6y+QC06Zsb&hwF~_K4tB;929u!%?bPjy(r(9g5 z2R%hkS=m|kHk%(4QCBmc4wJtgYJxiRyi?5~?~=EBd^JWk=d$>xe+~!h;_x&CZlzpo zb~o|b>B^Bk7cR4yyo_&w2N!bi(jPnE5za7Y@<=-o13!8LOr9JJ+zbGsKniJ#h?WE_ zk_I63i#%}QC-?41dzMO8&RHmog%pSloug` zJjoaa?tQn49(sxWB(xJSa^9}#cTtje$E@*n$_k&;G97nfR|M={Lc<)-|sA-Sv) z{ROECqTp~qkD$bFH>G`)%Ba6(F}Q@HL#4ME8-$gn_8ywCl%6q0VdsUed}#4r9Ahut zs%)zZp8d2sae@CvmXXgvqh<`&)O>*kRfsRiCe&d*ogDQ5M+%wcWf^#LKC4bud$c_@ z)Z(Y67f-EVaXQ8Y6gAPD_88c`E(|5Hpqs+mvE%N?+FBJVAGJelQ1nr#l7G{9>tPlX z>okLM+*S=lu@1l92$eIk>ZqDddD5bIKa3^PM;P?-MFVno7CEqXRWZpYf1a#Nu_(RJ z><$Rt*74T23Ye-2^19!|d1u{xrNPxDc7z__4w=I{RDA${G}%JQgj2^2O-GQHmPsiq zfzn;BV2R_5;y-_-J9@sTb@t>NOdb$ zHL+XQleO0@{K|i5vO9)%g!)yq`*n=gFE>Yt*N=hal{xR0M()++*o4O>#KtWgCmqvnnvUxsQvw{5`&JAMg!#7T? z7kh#(uJ4~S<92?@huwI9pkiJk)N}L21^%o<^7`0Qi(2>B>M$R*pdCiyuG^pJ>2GrQT${%;n zfF0MBC6_?b4@hD{SN-`^#u$1v80?(Dx8F-w+Bfbjn^3=&!Yy!?KNL;r$t04Fi985( zEoo{WnE);UfeS$6KWwh-h1yAbFNq?6$?_^kH`)S^edPJ7tj2p%Xx5Xca|Y#bC;s2M9Cs4Pk}}F z*9aQ8Cvbndce2HbL_{SSGp!%4-Um%f&a%-9Aq>=#2tey7+>C@3<+qhh&^#n-+FMF= zESo74AQs__8JI6|WtPtG9|fwR^Z4tOoJ)Y=cxH$wZLv+5H(AcnRcLG~N;`v0+N&AM zwzE+qZ3(P8{9j7Zj%Hb+Ak8{8x9yeoD|%wDoR2csN-yhs_#Bg*EPG-uu+JO73R0qO z7lPl1<4RITXT~!&yF2N1Fsbej{zxOqcl4}IzJsbS8rWb0hT1PUbMb*4zcn+Y4vS&s z?=QE38iTLa)sJaKiC6mA{LT8ZAqPDnqwZ%++X)wT`fL2~Pwx3;2%O{9Jfy<86AbNX zUX3cEl0Zx9j={*K{{c9L2Af?l3#G+)SJ^=~IySM$!my1bWV%@Ai4Fv-&ccQYLWb4TFcK(*WRR z)XE0WVdx)kQMp*sLwFxykOfc$O8|$eO%ROSwHEHRNJ=PaA+GFoenp?Q83=YJ9n*ep zuY6)Nq2_$)*MccykD1AF(t$n6F^7$XAGhM$HW~+9`zrBXb;ns?)1HvEUmz5%ka2{t zQY%`)xtx56Gfa%g%;&*X(tt2Q%U?>eZNs-L)Rs9{`8-)5ERmBDOX!B9nabhggN$1k z>Q^xPWpJhP9p&5RcP|FGaUyi~N&|SIo}0#|tVc%m&^9C&tl1P6v$=m6^^BjT*Z3l9 zflNW~t?~)WKqOx_@*0EKsR=_s!rPCd88Xl#sy|wQg?=(Fb^zr|0g8y8J~5xL;LBFEMD5!P0EnjjTo{G|>QxDi&Di*DurJ zehEbVt4RF*Gb+{**`u1L%bv^G2FV~*O}?(mS$;*?j@HC)k)KT0s$UOv;nrogp>xl$Mdv^jQ;HAQU25_%Mv1MOWo7voN1 z=34l~(^<@;U0Uy(E*-w4UH){)^B6`MODrk}Ti$D}y9ruM<=zr$EH6F7BQ2CI@CtphkRK$ zB*nfSRf;Kx>wuL@olwC;-`Q;6^wY0`5v;(WdRnXow}Bb7=s^*$HK#qsh=emgvE>d}#_E>O#*gM? zaRY=6pdJeor^cjMvs5@8zGc~fF43z;R%9hchU-!}Eo6RgDtf_1Myn;eI|Xm8!GbS8 z)5|pGu4*_9O>HqkE2b1N&@Nb3#Ks4R{g(I?0I(EO^02C7^Sp?Z7@`b(LmYCAAJ$h~ z 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�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%0D9RAIr7x5V2Ax~m-*Kh!RpAUuUgo~)BI_oiU#WP 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�)uhTEm3TnrX4wqueLdQlRUA&C%oWG5a zMIe~+R-p_I=Vb-Z2#uf;O}589ZWl$8248EV6pu^?SEAL!5LtpDcDT||4JTdbAEYDo z^p6(xOx|2Jkq}Jh)RD$CsNEQs%2RNC)L(@LcV+3;Wzz-2O<| z7IAEGObOr#f~RkdCpE&r(R(2)_}#<4<|8mfP7k|mVchR}Fh$1Ks2CEO66giL73{6k zvpFQ!@MqT0P0p1XlA4+x8}&L;Ix{~|{C^$TRy6h-q3IL+lVT!SsvJAw`Eu6>h)L;) zy+a$DzcpN}?^6F3nS~|bQLJ7^#V7kF%tgh)iR#M?NF4o?*@o>q(Rvfa=rw{FRqsNo zEr)7aWVmuHrl_N4d}$qhQT(G`z}rXe;zTT+Zy!>PSOitquPVa$iT14dI~0j#96#Q&LfGzm0gX z^LkTy!_Fcd9QhOt(9o%kE-o!04mmUzO=C`&)Soq6N*IIa6)P)Z$*+%6RtqB)zSQd% zoAD0-V^&iv$3KDlxMdt_c~Rae!6m+qXFcJO z*lTl#PFM=X+CYsIoi@bCyB}~AUz}ZQoCXFMVrxyCn!**rM~60RHAGy`z7@pVAk<+k zn-fDBzOrS^D;V&>wx0Jek_$eT4W3}$X+rYt$GE10xh>dGV50H4`ibbew}<6bFV^X> z#cU@62J{VqQ+MK&Zi>+wC%*#U#t-K^g$xB|{(cVlGUA|(;NemxWGXYh|X2V8X66wZY zGRd#KjOZBQREoT|x8O3LgcB`zDS#j4PI|k&c3~R5f~~8VOekOeEzQGarK4f$V>v`4 zL}uDLfAXo}fr?ODOBW2RCJkUT|0-9`S*vlf#woqu4JuKm@H4S|aVk3{f^Xiv*7<`g zJ-SZ22+>X-hD+v>To^8xS?OyPvTW*y&VAJh+9w(@6tBFX@W?ZhQEt|8%WsIyw^fhJ zZy8z4jx$OQ=CG0Xppw6ni;BA~^iX}BF(kCWOTiH_Tp{Z;SamQy%Enz^lm=qrcS)Tl zqe3AqdMSYcDWF`v*U4PXxdji->1E`x>a-fExO}FXBNs^n7o(DYN)~GG(mZRmfjGW& z;Y`Qdlyko7HM-(78NNSdVNY#M%2&_U>idj;%+9}TwVLzDn+4(XCbN?%0t&7+vR8_F z?S^!%-^(->y5U`tk}(&gb8jjW!70`Yl4L>|m5oHcq8N?J7(wxXF!GV;zB8_~PB23wMoY zkIlrq*x=)un;@N!e&(;TyVrs4x)3%xXgN1iSHbSdtXec+9iV4+Y3HbXF`a0EBJEkJ zCZ4t3&@#b#@VcBBc*}2QtNfTrr8j!o3Ov=O!IuBTwjlnO`2z>8&tpj7K|a0UVGfk< z*Se2o%IVkp{wG0EBjR2<>8*sQz|QNJ1c^O~RYxO&?8GB53Btz?X2>vHF$g;T@HEb) zQs{T=mfw-9RWM`D=oJ;Y%ltln5fcf@Q%_Ab+IqqVArmua<&c{)quOdmOTQ5f_hdk} zQK?&ws0B|aS6cN_`N?U|JMn5c&qP_8)t9`ZXFH5zy)mjA0M*R1zNk4q|Hh^Fq4hA17)tdbMeUBNFtCyx=kxDa#gB5A&+t z&F+IHpopq?JYm3mzg*5?6E8xwvsQ65lzMIhjevouS>-#&hAIC_#C++(#|m~V%uvga z7eD9MY3EV_H@cD^Oz7$jio3vHg>UFWUJ(w(JZ^jlr_<5)QNH@G0w0LeDX~E;yg6kl zwNcj{&nuGZ#bgquhNqj%j)q&cLAR5$;2$#a-ZoG+Ra(wlnZ#k&6WbZ@Qw8i00IqYE z7=f6>%qAri-SS4nneN0Oc7YS$KX{;pnAsefNEL11Lu6bBPo`-4t7fH!{; zv~GNg3g}?k)DMUd`mC`HoFrOYd%ob9-1NW;;mkM-&u1I(Z5Rq@9(5N9fKEHNRXEI$ zm@nSUxMoOu-)BX6WDkiOc@?eg1hw)<4@c`Xmm=X?ultxlw?H{mS1Okdkt#C3_6idE zoz>p#eCK!4oBdv%sq6}ES&`tXG6QK(?iHs0!Vf>P8q$EYm6GeMIJd;(sH4*j>D1zm zP6CTs24@T3ZknGY#Xh&9Oi&O!is-Np7a`j*e3=aN!+fK3e49U48Jo15?DC*k2KE=l z3uQdL`|rUYJj1Fi7axMB>C!w6pgz?qkYV8A7`E5iu-kL6xRv>2owO}T=mcfsNk0|G zFVe5QL+5dzUcKZdXR9+6`K}^JS=Y^*62o{RLx=h zS@5&c6;ZX$YpGA?OH)CHIyj$EIT^i*B!y)nN3J?=X@789K2`h8T_qn0WiBQB&RhH9~L{JD#W?y~9##hxgTDp2DAT^?Hr z(=ye%QxCuc4JKip**+Xf=XsVP+Um*QpU3kOREPsoe}V!h_oWgf?B2(k zrF*(5bhcxGAGnYJ_h{{^`HMUv1bhDxm%jabL^NtcqGWpkRsoNoX=iUDMs-h7s{^VG z!8+3cE;e`|364qX@nd&-KEM(yi00ub&o{}aVDIu_ETMP3^$t2#tR^J+h-(;YEk>(A zmIu3O2=iXp2npQWv>+#|ehkONpxWF^ZJ?&mefC{zc4=c=#bwSnf!>YemX}kZsNzkg zCDVDdYhD9Va~krzY;@#m3*W}Xk!TXN?oyAb<_>Nb4;CAzVF9UZOpxsM1`%==asLJ{ z=N9`!;b^wUVNO|c)!JRsJ@-^ei>yb>Eh+RuA_=d3)1a}E2Ww?El4;Xh-dEjqm40%i5jlrnqBU7~nH7PN;#I zw9vqN=d8{-bad4*VM^}XAPxa$!%%b&cl%egY8?_Zt88t8p$)I%%V{6r2EOdg3o(14ZUqG@GMTbezTayh-<~g{dhY|r!M(iH61LseIR(Kb#GlR zvDOmcV`sV$_t<2olFUio%7D#BHke98=3ZJ^h^a!ek>QX;fP&#*c*d^7LYrQ7k9vv3 zKC4$flvF_7wu6Tj#@pjEmQ6|Mmyr0;7=tSg+?T!Ii=|?HpQh|^+(R*D0Sgsdhj*Zb zc{V-*Ih5^Qivvy*%v^NSC0++_2HziCAPnphQS_S-91sj!{tQc`nt}gK(#Z-9qMNg@0fk+V za`tbMYx3>i*KV658LKp>Io1)mWsn(Pr-0Je{s07+aOVi9l85UtE?o3x!>RCfm0vS6Wbtw>&rwJf9~l#&_&<~z(Upd>^{G^AS;wphLzCTlh$a4*YIOJVj&gAAa&Wphg>GNOQ&e~8$O7hjrn5CM zuMr@y$0Ie?W#|0Md0pfXV53`xjBf5*+E1kZf-jedf0(`wOcM>iP1kT%2;6&}X~V2Q zewrg)3M3->AbfDQxW<^_srxpA4?YEZifZ);aa_&vcuZ(ry5Ftse43^J4Y^;Y4o4ftDx zluBGQibimo?s|(gl-u$?_cg|422j_d3ABYeO=23KNb*dygI~?-OkGfWPVDN5?+6za-V7-hH&)-|K*~Hn9zHTNdAJ@7B3IY zCg!|8mh6R{;H_Tpg}qZ4r8WkPXalG9CKZ@XIV+HX%8z{|VTgBc9$)OE_(j8kS4^)V zoDz6AyM>I<1EDz*%SOvJ>9w{Dp%?re9>2sOlUFsO&-q-WsbV%gOl3(pSxxfUL`yj* z?4lBSQAla>0Y5hPpKQC&vV9-yw`I1tiE|Oei8GOo(h%Etikkn6O^%EUBi4d{tOi{2 zA|~AIq=jEFUjBk~;?dVe!>oph=H?pTVj~vqDR7r>2k4L=8$8-Bu*1qG_pM4+momiSc3c|C!pVGf*ac?B9_P7LSJRM*d$HjCsaKxx0>n9rMZL;Y9g55 z85P|uhn(ZpZ~HcZ5YSFpRFC2XqT$=^InP{2p`R~3m$_{%7Ok3=2NLKxLLqQf#BjWX za$@pMY6n1h=qvr@Y<*qwt(;|D)lJ%ZL4s9Dm z+s<4TYptp2fP)00mDu7#>=7!8KnM_ACpuaWXy(VoJvlj?3r2cE{sss%XXvz`kkWU$ z>G}wJiJPaqv{5?ja`d*N=cEYbxk)R2?uKsXz(`TIrpcAdX>~SEF622sqwk48Pj|#d zCt53l?}!K(ItYFl&GqPF$bm~)P60HpZQhsb3jF3ZZEVMcmlXsHt|6p3-r@w+wJ64g zNxB;u#4L_+S`|5({zmhgV?)F;wksHwcBD!wS-+g~4bDqc<}di^#AajJOFMYG(E{yx z-v_oubdF{v?m6ZoZ>Tt%q^T`#hA7Ft!Bw$KzFcMxqQIK)cznS-KPt|S%4VtoR)aRzW;A86FC{sKffi6VjgTFuxB<67kEwv z2CoeZ>GK*B{Xz14ovC|zX-BG0=U@Yc_=aiNXjSNR4gVctW1y*D!nFEprK&qHCDQa9 zKTVZ}bwAduTp*RvjY7eTYsEcp62+q6H|~Vb@!jN>O6b9Ao0$Bh-@xp0=QFJW!E_n$ z8fCA$V(dScAJ<6>&l=`DCAnvCfY_&u7nsNL`KzSU1~X(Q<)l*KN5vFm#J~0t+gCx& zn2_i?DK0%AnNu0lyEt1!$#Ez$kMVg|* zAk`xel+daM!)&w6;?U$v$tYvW>@B;2P@Kt&SHG)RiTut3>*PCKi!rW(8MfPOr`I$= zc!pVqBQKZ*$zWfcP)u_Wm9krY;^8(5ecss$kMeFa?i@WV60Vq07spqY&9$OSbx8Lm zQhVj|D}#?n3L%hwg4~l5y`ST$MAt|wT*@CgRWc>CEot(MWI$~)PP49lT4}vTA`;1E1C!Tc9x7~uCvtW z2JZJnlXp;N@5VP<23V1Iy7sr}VOZ780C>#gW@22m%Bf3RU9vf$7}1#Z;Y`yveGZ`WJw+7^(TPh z1W2tgLX}^q(vjiN^$TW~@#zULTln{jKtz7MDFff)D%c^>b6#&4{n*>=KF7`l&B}w< z7e6)p#>nn2rE6ENeLZ9qC}h8UB-ch zh~jP@U9{qu0p>SWVNMIj;y@`D}1pHam$Pw7)_>j&nr9>Xw8vLQ`1 zvNWNibic(Cl^T6hZht9D*CEwdxgj1{V`x?Cws5M_q@vfuQK!zSd@;s%)Xxi!vKA;T z(+tg1()Y)~qeEyN?t;OZHSISZFyAX%$g57w#+B$oe#)r&er2fQKiM%LN@dY>Sx`si z(?h20ieapm(uM4}x)9g@SFp$ucp@!j>S`!k?*ECFHavHX8tM0ePX$3#^jiza5TI*z z6&ls?CTf~P!!LVjlCpvc*L(>=Rb=3GeF2pL6a|e}TNNP60g|pR(yb*)t5_*3aSJri zFCDUIn26;&zQPeH{Hi1fhmUHU%BRS`r{@?cJ!_KN%UPp^NCtAwHFp`W#|PaPB8%3+ z)+^0}x(SzZC#dVm3n3u-eCz}L(6yT%J0~!8jZ-}l=~?ylGxdb9K8qVWijYYx1-lg} zM>ef9avduOL<~b;b5rd8mvchZwdrjaA!5bwt?L_TvA4WWGeGF--)&N#kR@m>It+hE zv0#;^C4UfCZ;IRL6H|w8dW7-a4n=ZI?X#Kg}-tnoi_XE8_(6!qQsT5 z_{{;vdl)_3@mUSabt+ukS1HR;XM_BKO^dm7IW2)HhN}MrAFR!r0l%g6HlJB zSQTpcu7TE1hl-#`-s$-(dN$dvl47)=OTmvy#2L#H-cLPUGQR)wU0mQ(dwYX}#+hUH zp=KRA?93yI=0ec4G>VI20mz?6#e$zj(XYUi*~~xoK_e$Qb5$;iwK#Gs^UU1d#z=(Z zid|}L_imnH5zI}hcd{7djin9-l+GyhH!c0S18naZaZ`-zkz4tEib)lLXsA!*5uN>l zk|*M|a6UsyhWA^zU^n2OGV4hEA6QVM?_`DV>Ri(VUkmhBmufanXB%=+v2Td+j&Dktd#En8VIC?X=ONnv2`ulWSPP) zJ}qQ`18J|s9BwBeg9XBKGE!1V0uJ0Odbc7%Rh`yKoZ!>RYH-Ymup#Lr$U z-z4%=64UIsiY3+kzuN#cse(rguD^Z>U*P2LO#%tvR%Iq)Id(s@H)DF7acU zt&>A2*|Cw_42JMnfYL^AI)c<8)|~FZ&-tx-rKL*pq|Zb@wH=U3-94(B)y*H>9mLRp zrncH(?gh1R+>s>|mD>48fl_oz)^kb(N(st6_|&o(=;7n>&-~!F{{ZaeeD`l#l*IGm%@1=bUx`fiEz9SF7~JK23V<^#C!RqR#a?_B#)RRaC7F_I zlDr&I56vIvn*W>#dMPa6_lZa9SN#Fks0HkrvC5-Qd^XYWOma}o6&C$^$6zHBQ5tiW z#^BrGOWQbaoQH_`%KTs%f|=qPn(vo}hYfM7icUYeT(&npjduWC-#_1sW0#)pLgUQq zECEfSoIfr>nMl`cGr*sp%I_Xk_rvW;^>j_QJT5d1r+&4XF5w?leUu1m1>w?7+s{Rh z@{+^L`O!*O;|ocUaRaLxP7I>Dq|$|~=O}upOTegyv=PIDY_Cw5T7xi0RbDn&qNR3! ztA9M8eB_mn3a~&tYGNrWRhEU&M!z|01E)L+7YVaH83aWX9s9{b1eG|}x{=Z;goKLa z%ez0`A?%TN5e1`UxR@IRT~Y!(9kJ}z3NL?rI6!d43DRFuiHKcoON5bt^_w#o=(=Cxk8zpUCX}NTF9du<) z!AAt9SNc^Ff0cqq+#xyf=zA_1dm|6t$(sa^6yW;4+fHI!m{ZA$#^L&HHrQ|gtsf`B z+Zo&qQfi)l4Cu--2E^rypuf-WcXxXSAX{7QOwO~-fTdwcnH!GcKaZld;5j)owT8A(={ zQ|=Ic1%9jm*Yi3+c6T))LSo^A`8HI4f>v|rT*r@0%1HlE@Wd=xCf3_0;C})3UNmA% z|El+7pZfm7^(0UCuxjNdg%3d#1n`g-gy)c-Vgv4zXk5;qYuD#UEAo{Q2@1_DLhm?; zDNkVc(S^xDv+tP@mN`n)CG6a^nNaZhwq|eMKfQ6jS*58)0GXe7G+*4jyM)I>EQVA1 z7*~*+M&x=J?cvxAr^f2NkuXqO+dSCrgG}6CP6y9?AJdYv#nLsR{B=Ih9DIlIkR@eAZj2zRSD52m_CA zNVRjOl8e0o2=)WwTv7xt)0D@u29&)0kT`C;?q(>?iwZ+1Df9+Pd8cqDKDfh?u2?Hw zZGQ0*XZoR{YGpYj%O$(MHX`I~nx5p+F&+v-cyXd}xmQU&j6a@fH8nH_ZcDWKX0}i3 zFomefjpLxSpOH@Ij0|yM02ZM-ap2!@ zgp~y*!GsGV0-f?Kvr-OSX|+lg1VLi|^mz$?34S6qL6IM}G^z*LcnIDnZPDee^u0_< z6@tv>QQcKdC<_d*Ng!J^3Ya7*l6p_BCsZQsS`oW#9PC`#YxiF|*hCjjnz2}2LDh!| z@=>rzTGX7RZM)K{41nuLXERlJs?xb{UgZG}eKCa<&0toJ0rsg1IT|O>m4V*wdJM(4 z*!RY;Jn7@tqRIeul*$~gT5)%#kw@j;IPfvs5HAk4}k-sM)|18pIS=qb%ISiW;sZ(ar#n}Bt5e_#IZVV-7 z-gk8+FX%PpJ#z7+Uf=har#z^=-#k2lnI;kf)%^J)s%`v}|2G7s5s+!8{#<%6gB%FG z7)#T=I6$p>6U-pV##c>L2N@&xMZ&XkH}v$}&WMX{o0}YWb)R*pQPSf=6$IE~LlrUE z7y-hjq6219z?Ye~2bO+@*jvcE7GvQNGecWO8q^!*+r>7@@`0iO%4_-Sdx>Ph`*k7r z5}%m46NMi0|HG;qs9|>%mmP23nk}Dl79^LI2gKdr)wK)8%PHW$LA`1aUZ86a)*-Xe ziW!N<(g#;!EfAwiVXYG?GVd;e#d~paZ=)^@)Cxo*HwnoHpt5*ATX;IN)kVv;BkilX zW(GTI`#9;QsMEmMuV9X=WRmnF&&udaGJNh3pzk83`%>3q6BbCmv+ER0;=s8cR~!C&OgRvApfoEK|J4J2(IE%l&(^j7y`(=mi+tO^OYK1DCrGP}l_d#RLS!79!Ys5~7G{#J5qTz3G>JCSwz0kL`{`1hHP){z(3 zr;CxC+d3L1@Wgvo(Elsqp{iPQ)W$sgNxRmhG3!LmloF6B5i&$5UUspE+wgxJozS}< zxHZ5q$$u!?iLc=G;Sy`80A&Z2&lWJBh8*P(!+{)hCwa4ulq^K#Sf@`ysNw3UnsMZMYm* zY9UGHJB$sV;aocJM$gksX9IRUb^F|Hu+b~0q6+4QO0Jf`ZIEX9QHYvn8K=pBk&Z)d z^E*`<$&99c`_Bw7BrE>yjS`0g7s`QZ9WIK)4KlkK<(L#*DWr?OS|K1xC`pwQ6 zl??i|88(&Wjl0wFe^JF*q=qMYE5s>la^h?cOOnp0m(o>P_gx_kdksC60`=q`#OHQv zwbXaAzu%-?=9%^*h{c;nOU0w+9ayS`lX6_Imv=dPa6DHkmNcNO_jq**HAWBdE_459 zUcd>_l`+U6y*xzXk=^!%OQ2w)dwYD_(tLg+bJrGZ=&q4CPjBeujaz253Rm7Zxh@WY zFzGt1~PkBv=CpGvGFL-b*&;gYg_FN5(7cFIB2l$}|;w_YTQ@E+%mG_gVpZ1F&}{Q zXSSEvgH+o#qA>@|E(!hESO4f}d)9|?rV5YH+CRV`)SvAPy9-t!7#NeJF}%d;$V@pU*^!fuHk{ULYmC!|1R_Ho znA5BgVEaS2de}hEJdV;$dJr&W;^IwEL`v_wH2=gvgdMStP+kV`3ojRo2B08cFRIf*bk%7pv>P z@W3K<1NL#Lel7lb+va4ph8M6{<}Ny3KF|qs{hpWUxVY{pLYtI?w+@kHn2pB^TseD= z9>X@ZRyIFwMPmg|4o!5EKN@U;E4iBc?~%y>7PmP)DPOT!yN^@G+sCCKK=xS)#+ri&|r)kS6p|tR$GL_Wth>}g23B|)*3SHkTIOVLP!hi(Z za}zuR_N9@F9Tn^Fn^{n;LYgGYy5AaQRS}Y#*VvZBzvu|bs792Ur#UH;pu7`FoYv^O zhO#m79P$&4cbpQ?q*;^2=B2p*MA?~QsiOh$T9EG#nXgtGMqbi8mJ%`KldNl778HfW zH)R;WN-ldMQ|M^+!1TBC70sz-44slBE!#2vWL2d4lB%@T=coE|G&(U6KfKt8^m#fzK72ygw04Bqj>%2VYxwiPizkk6yb*S6{|AF| zVn*F`4dcK!wq;P82mET$Q~j<8OC7vaS~@hW5_Bz=y*J66O%#0JiFKb_F=|Bra@trO zP`m}1C0p{X1M>rZbF<5LB>&w>*`OtZXY zMk5RpLRU|W4I*7is)ET;P|#vPidUUCBuK0XY=#R+faE&jjBASh8rDj9P)pAflxwo$ z4XE3#0$bvH!zjw7q^OUQ1hb6?A9oR$(dY5CC2VXUIRBINhQkv}lzLbgFvV?Z>Q&h1btP zn|^jIE%(QMm~-|%0kxDlX}{UT?(PD*U)B&*oOLVu-%h3$YwUGql6_mYnNCCtNO&?c z|4Zu{`?Jzr6)Qn<-{Tke;%<{97y^O}NE+jW)Us?GTrDP)72s(;Ls zj-NKsF*7SV-D9G#c@2rfT#vxM6FN6+gvH;P_Oob793F*LAi~EtL;&nvA|-usLgoFh z#9d09dQ7IvO=J$6%~NWbFxG{@e2L-`D)In+V`3>KX@^^}n`Z|58d%SgNZ>+J{3&c! zLyClsD@h049GIj)ktiq({**e>7Lk(?E$7qE5JDfjDaO+9+jOamvgf2@giT0-8=KSg z6B|bt_X%xCwjP#;i$P6URNBZs={kcYLx}8k5!e1wx+0A>!71uL-T;C}v+wF2D(ymt zW2#=f5rV7iFAGn{>g_3s&X|7@(0(-Fmxksb5>E5!7VS_#=Lj{;L>0mFJSt5wXUz!= z@^IX(zMMZo5CBK5 zDZU9`xi0^?&WyB*2)g}}wS<+fg0O!EB(X=ec5T3A4;!h^HVAl7-9It1ipY6CP07gy ztO_G52mL=>lIB6AXkYZgA-gaN9@11YO@6?}H6)v{!$0h5hGwK9U}Fb63+(gt3Sw4N z+0hPSJa-HVVC`MqJHB?}KeM~K`^nv_Gh!O8xT@vpBHeEICQ8Y2mU%B?N!BFO454NB z#I|7Fa65`<^~4x;gxUZ>8N_)H^S#Ct!7bpq0x>PtV}SRqAsB7lqfQ(d$NY@nFCtb( z&Gm?Tz*#_+Sp6?ul`a*#HEEgU#kcsaOBnz?K*GQ72lECZ_Mv|$t*d^F8yrl)jjXP)V%J_PQYK|5NS4eysQ%g^ zfdk&lETyuI&R^|QY@l+GOtgI?mpqY@GC&#BpgNyiD}Q)0an_@mfMIAu!yrTiV%^su z$dCk&-v>gItK``WT0_j+@(nSaPmBxm)8SdwGvO)JRa@&dHBOq;<+09^>s``YPcZr6 zzDW&Lqu;Nt3}N@GeiXjWO(e{d+oQh`ySdVlBa*7s%Cq8!+#RTz&9fFNeb zWH0BRiAXer@_mzY10X^HQ9$}wwxI9f6aSi%tT4@ouCP)9nz<$c9c@(^}A1KXlCwMrlRXbd+B z03%J4Y?o5X(==WE&)QlZP9vYEt^XAHoPrc5r0}sn!aBP{bv}v4*`J_q>BY0C?)G$w zh*jn#PNo6-N%3c|3W0)Nh&3|*?s@tv4tJq|XhFIx=dP~u8G3G_7&PWK{;Nfv5@y8w z{U9oQ*SHxrRC}%a3@9E_$?>$kuLX&=z|H?+jdw9ff=?2|ZP23mas`WY6Rrc=4}$iT zIJ_VES)HuhUYeKCHje%mY?19?6f*)p-Z@Ic(&aX0a2b%|_#4Fn;^0knOEM1hMrH0L z76j`EQtDA1?E%}C@bsKvUg36s^?1Uz(gdOzbE{V*xisYguATPC92$T0rpycCUMoOd9aa|sI=KV5C{NWGUDH7SPyk~n6)cx$DswN0i!}A z9+8WU(NhR$A8`T7P=i^WJWJMxWI2iJKA2=K@G$b7E~8MT?9Hn%76~TM&OCl8M4oeF zqe*b?K75gX&PWNy-l^2oLJj*QTXvkcK*B}!6`oMP`LP!qH;3ykFoAbY(Iye1S=cX) zKvo%<%sS3$^bJYT`nTF#-_dSTY8;w=nsd&l6KmcFkG8uoLiP7xNV6DN>7%@w-2Bct zn*OMS??*-EAE;5dp7|EObaiehC^yZZ{jSM|A%9Pvm zC7ZTL@^N#5tL$Vy4(uz-XwHa!!R(+uKkRgieXWMj3ye?#HC1Jp+9W9kiPGJceU}2lGFUNW%!wpOI9n+j)HHb-!CiU@M|Xbm}2D?ddm1E7vH z@j&yz$zBFHk3eAOn=haEkX@-)Wh2*qLA9b~-B|8Rz_-GYyc-H*i#Ar0!!45jxjTAd zzB-9I%-=u!{%mqJv|FWh(I;!O&0nQfSsp{1YqzpZ$v-nblyXjHJ zyo9aft^fLet+b>f<=q)jGLvDt`beju9LE1ndtkL2xi^GssC8}fhgrC3@qIwQBx(_| zC>QVH`iK{#jDJN?UQ zp18Q(1mALt#xy|ObD2(yojrSes(=tjCvsQm#r{qnjOAfpAj7br9Lib_5xNyC={(4MY#DHtPjSH2vqA{z z8wD9z&<7)4=*9!uG{Hn3JLBwJ0B z441RL$vnptQ)Bb`D^DOSVG_B4Lw}4K#bh|A>AKW@=S4jw2_mhVDApEX zrV}(*W^_NG{`_3dyn6UUbIq6-xWTJbq-!}nMhgx87j>0na&n9y{WRRKl1784H3j;4 z{$VS25Fu6Bwboj+Jd<3dv|cN*3W_IuwpTu-{N>l`Kzv-e4l}*+&GsMR+)BQGZOGWG zaTBH$6j9m8RvmYH-I^PLr3GH$f501)s%gmQ@47jxxrZtHtpqSERDJt6vB)n+wIWl| z6%J_zBN<-p;j;OiN2^LN?n)mNi+}SW)(O+UuG&jtIcP(cDk+40N)Zc9>iZUsED0lW zCf!3CxRx%sbCZGQ&I;E#oLQ&N7C6aOq9yOf3yk_skO_@eMC3t>Mis%em>`s#5G494 zIlyeiljxAG>5QA1Pabq_u&p})yEw}IN2vG#;uL1?^iD2$v@I$=i&lK<|KX+O*>2FM zi<40&9oaxkS|IH{*h%Ef%VCwXG;^=5KSL1GT=(g$Ec*Z8Mc&)FJv>PAX>Nj5pK;nV z|R608&BrmcsGu$NVXlMFnYvi7U6eV~pmm znR+OG58R`o+yDWGD9QpPRDY?N~sP+Vf*e1ZZ-i9+PRa1exr}dWQcLa7M z&_BA^!B}E`XGo|%z#)vYkKPFqlV!Ao4vG}p27B1 zOF^OL=*dcuqUlyIBo5%ntbgvNmylzYn{KkfU_O7orCFNxcxZDpo*t33A$1jn8U#dx z87-~&-PzQrFNZXiFbyJS_S=t=c54u<+h_T|;(eHpJ16CCI?E&f^8jfh^xRzuBN%<^ zhXXVOlO9tI$b6?0M@F$pAh-n#*!8lvW%+!8GqIEA^@v=U*sZL16Y*^Jj^OFWd3F=F z%uFU7>@EW01KU20I{m=awGn4(iQ-tThP&;GYj;y|fcrCr5EUvF^V+l%UKg1ko!KEA{i@BN(%J2 z;kfrJ0Dr3ivaF*gbFA-_3Qa18Mq~==R%k{bLjPON4%>RYuGrUT5uL;q$N@vqZDBBm zYz{QM0nJ?%|N2RGY3cgxmTqJ)4$Sjc;@iN>qQ%(cAV;1q|mKRYqMQTOy)$)l%s-%MKd*#UjP{m!X{Gro#rpGI2Uw_^XYa8;h%N1 z8QyN<1o`YjveG+ppF!9{It~~WrOBigq@EaYD>7SycM`d%_2ojbgl;SoHWAPb3aC@% zJF^a9pLa3*k5$r4cFu5fiGT`W!8@qnCd3Lo9!3qH*P48<))-(rY|6tYb$r$%t5ry^ z6K^Ia{fJ?%y+)C}A~?D9#tBPRf_AUQefo)-Kqq}NjL_9|*LyG}nV!gFEvQ!EQK2&@ zG%gC=S*j!AU^)md|08a*-}@#bw)Gl+a=1AJIYh)-?igpXOYsa=!b?LL;~OHl@K+-H zyfKF>R~O-pR8D*xMWhM=Bi|#vGzt*LgPe%n0bFt-b91;f=i-#F|DAG6^FeoOmI?~lrc?j83h{olJ`#MWrr&fK=@ zJ2+5AQmpjRmt&o?oyr>e)yQ?@p7q|DN?Cj;ZYWosKas$6e@+1A0&R^=BAsA%SUIAv zl?h;0MERp+(r;V7ME%^w9$6?y9VPmB~(#!Y+=hxI-0l_;8&g6}NP%nHHu z+rYP?F60@%cWqf)5uKTQwf!c301Bm7>wmv;o!>_|rp6+|^sho5J5+|4zs0Ir8gjO} zP+R4ozc|hz7M*n14XcT#_JVlbQw>^_AN#mV`;=}(%ClRyuw`pOn5^6Q4YRA;xk44e zlj4?436iA^*D09?$1!5Yfd7A#ia%(^q3?3HqlcKCirto#Cc`|crKoPGSrf6()~MXo zd<`^H3!Unqo6Y%k_H;G34lK14d^PH|>Fce?Y?u!;w>{Wu(C$r2f{ASb`i776vI)Nr zt%Y-G%r5ER=V29yz8*f!{-{Pi^5q*(PiPXFmPWvp;in>wNnlvYKo))P)U5upS>>~L@DI)j=zAU*{_$`b_$@R z7fSOrZw^Nwdejm!iH=-34J#Aakf}}(St;41fcsttj^4cO{%5Re;!()S-R8CQdCmC( z`%=&^e||>1HXiSympK$cl882mNaeMS1XqAIt}cs?xF*{XO_LK5&ZPf|3XAlm8$0EL z*I?cEOF^qyK|?Ki(Dw8({SumkX;eOyibQ~R&Ym9|%iuwfVwxogxc9EdJix7;1$1oz zX?f*lX%4crU@efZoL2w~Z6#Gm5>flJjp-58LkT`IeV%CF=$v?^0?S3*_dVuc}SB!_T(uSq5wlO6kk4Z|1p zYcQJyLMYX-oOerV#MA=FFHxkNdmQKR7F3EukrSw2(a?-|v60Szr8cUc+D6jmB*FQ5 z1l`!C>BF2)75f^}jx3H+r}i%EyF;0eB}I6KFZ_iHj@Aot&e%+n1869o+I{`?s~EJu zFJzzoO@1CRO3Qgu1;gR8>{erTsc!V>&q_APcyuIQ1jA(Q(yPZ^iLq$80&bU>n zTE@fF`o|*@{B5RuevE2EEV+uSVtAn^7C1bo31!qxkEb0>PX_oT%V`mHf;e0Xs2&#G zpb=`S*AJ7eubBtlo9i4uzE4#;diAK&)?Y+=Y!Y65SwZlM=$?7-D=QNtr-^$pyj1p} zXJBxM!JMzv6r@&Wlf9e@>av7@jb#0g<2M*afkkHX) z9^FY0$mSt%piiy>k?11C{`suA(Z=~t@!mCG?4lQ{w`)9S4*4~or!l$Z#NVVCvq57M zmoD70*wkcUbBzC(OI*&SdgZ)#w@rfEcReB@^jV(~P z**I7R@p>Q(iTi7Gua|lzQYFGQ%SH0)U>&w>x1;q0JP%lATlD5?86|nUg?Oh`g)Sn@ z^P&(L122cth}|KmY0^5K5gGyB*|g%SIhehl3>6F5CF8t@moku{WJ77s!qX_a-gM_D zUdz%K!}@+s2u(^AA;$m#pBo2Zw5v$N3Y7Qz)v$Oor?68{ZN=1TseB%Yx^6ddNvq~E z>?KM=H7+h#Kbv`M<@5n-)ShLtztz~R)+3yVo*h8gWuu$LBc{7We}-k;xRxg_jb8K$ zVpBuW0Cedu(B5OUx`fmanyonbd0~c=p8UkCr^B9V+^ood7rlR6?sK zkwLoH|rsfR(dr#7%(BMCe~ zeZ(PuI&kej9;sMcXxV(TX2*Lch??IOiJl%)b&6Hb12qe+Yx~qW%XnCR;C!&PUj{+d zpaWuy6^nFIx{|<3A&lDog9Ne#j2zExkMCU8ySakOKV!H!*7x2C`+_A%{i#XQ$1tv8 zN1^Tr+8)d_yI~vJs&OcngQMOJ1E>nU^lhDO$5s@Ix}Fi`&ET?3A+Lad*_MxhiJ2Te zLehP=JNG%H`V;VgqYJAz=>&5 z*U7I?yebo`+pxIUOj_EtC~W`}QPy+5;{Hb&Avmb-is%4!?j8*#x*`48J4S}>8nFfA zHLY<+eA(0nd~mksxwXVI&>o;pbm9Q>_8_Rl1C9XHIx8AnSW4c(3iLhG2Xwi7N}2u9 zH{)VZc_EhVu=X5Ubumu{NT0Z2v9!kcTE!?H=ZiuUmBd_1YQ6DMrA_Oi%ADo~q6P?8?1x~hT8W>qUHVrov z*5RGg)ef*Su2Bxv>>Fj8j=DrM?+;B%V^cRRI!s3tEV1*DkG^8ZVD+D1mh1vm2Cw5z z|I;Wiqx}#xAZ;Na2zEepAmc`iyh%oC>Zg!j%NiXZw2{>)k@wdMgJn0g*Tg}*0wnK6 z#qCrC_-c`cQwrAvWg%;dGmzN{TtghGDEzT||KLH4b?gOMJR0OWAHcf{&Gtw=y*vkB zAw&MI>XrlQRd4a`ES(a zZ>$Bh#;Mk#LA=7*_L|sCjzhKowWYq%b8G1#(l!O}PaOE#b?TR*bEO_U= z$!!LHPY59)WzAy?9-f2aptib`U=P>I%v5bULSV@7#AGMrp<3L@pLN&K0Zgu{j{|WS z6Q$Ii9fpd*$`z2+C;qU~MKY!X*zY6xF&)0SVI5DBehy(O`2mK6D3q0k)|{paMyM)< zTiMyb34erefcuZul5Mr77ENPpUy|!+TK1cpzxKyG6lCF&F+An=h>B;=*kv3{wb^Co z&ZM6%)4W-IJNkq>^FQHu_&co|&r9iEz=G}YCcViW1|h<+RWAS|?Uj}y55Z}wowxn% z5O)j%rSyQw7$7LG9sWgaL})o(z5Y?vxmqP7K0zLyC|~n+>u|dMCm205zGa|7e7t3R z!?>QZxoZi=>3X3C)ItJ@ZA#~piRn72JFf`#zfH7jX`Ox7;lSwg2cN(kEsI@+W!hj+ zhZxpS`<^jz?7#?AEZJfuT*^YI-5VWLf~;C*Hz-Din@4r9H|QXh(;>{5Opk89%b^Ay zTU0j^EYD6xUkP>TvO~d19F7zhOY&0_M|oZ>+-d% z7b6koF>M=LsIoT@R&ICD-fXFuul;yC$A7cgAe(bWGBVi1B8>sxH@3yaR)DEVJ2m0b ziZY;{bR3NS*tQSxmJNFviQMfz?IoYM*vo2C()B-m4=VtJ#31Vb_L7eueZ~#ST1Q*U zR0=?MfizFC{x_(qRPw;ak9{37uX8i+G8AXte#a0Hq1!&T#v^95E)sf?5^f3l4n=xA z_?Au0xyyP&FYLnt;au3DBXTVb9jZctHrfmv!e{zG!I3IyIm?Q1G;@Sbt|r2nMorC< zEgrmCd@{8Bl{KkJ6p-UlUQP2H1>++2vviK6T_3)n(fWzZdt3r(p5x-bU%8vB3oFv) z$0L6+Tbpx1UPURkl|Ng0C4;8|vQO{w3Az@VXTx_y#gb1_p0K);9$G>JW4zcryUTt4u8kiyvP8X?W8Z zs{l8-)M44Qc}U+2s!(3E<#hDzX)5B5zk{s9w|N=|KFj$UCUDNiKPRPnOr}7A90kJgT96Uk2GxMq~E5+t$-V5)5dE-i$b;h?Z@-TtLDP0~BIb+?4RVVqa?&Nuxrv66t z76cO7hBfafxsguKc9x918ATP;;#C^$GSgd)U*sW!tC{%1`m0yGY zw9b^KJX}C~6unr#&w0Cv5yqQe%<|m~>g}^%LM`84Dqx`ZIi^rgRA-&XVY}MMAbm5+ zAmEg%OF4qiS@({N5eCnbkAoCtfU`yZp*&7F$yxe`9ewdfrBNpknj`+9g4PD8#Wlwp zOuy=-J63Q9K`8MuLjB$I@PlZ0!6Tzfov4QRtzb7R0K3~F%{#buC&!CFD?|*2N{!ZG zz(Lq^XBaYH5ooq$%1W$K1_uGm(1vDDQeBZh9-865m#eK0xjj)r3_@YHS9te+P7A>0 zfBeA_Ct+i6F*!`XSl_VuRq_l%E{t|pAazqk`&6lHILM>)zlF!@OkB`jc3tpvn-Jwg zy}w~=IL#4eeM;O}p+`pAGA}@Kykr@X9|`_2h{SBR3Z2QlKpBOASit8yCr&q(kwEbCPOm)oWim_r z`JO*wM8S&wGzzH6DSsTANM|Ts=7}&$k799_8B?kdD|;3xQfb-H{$g-Jl^MMo$(Gw@ z-yP+Bcsp_qbVWU0knHHUj75e*vVmG$S{asynL6UL1<;W`u0T^@SvWCqVh3+hF7nv;Iqm9{~ui)?So4eHf*8vvzBX0Ek1g10Pt5 z`+EJM3p~BO;FUkJ_`W7QX1S^!SIq3;pb?$X2tyc+bFm&O|F5wS$oW-GBbrhca#H5M zF1c9_Y`&x=vOe_=0^}C*LRB+}JoWqoAY()r*2@X_WP%Yzb@th^=DUjx^oY0v7+li0 zRr10uO}mx~$i@d7R84_}G3E)ta7mmtSW~fPGM@;dO6Ll5uD4|k=rk3XQDw~3Lv}Q@Or$fC!dQ_bvlPni!UYgH}pOG!P8Q47aJ0qZ463o zb2SpYUNH{tu4OG&55#-crG)Z zJUVHaq<+CN*Q zLQ3cjQNV^iZ7=qlU>#%#g)(%3kWqk4QnysrPweB!lsi>^?}%K@ajH{UAhYAzUbIzt zN++PrEd$P;{_}P>(BN8p+d=cqok!hgT`ZnS#B*E6Kd;eDcxFRT(+u$kot`OV#%5T} z(|UG1kjuJ*tPWYwd!9JVNBS|q4tRiVCg9!v@G6Lgnemoh_KxP!#h^`-gUsnC&VCVW zEcfaDGc^Xcsedx?;|T^^mm2xZ-4u3>z5}Ig8(mD4>l5~5b*SUoIak@1HJ@8-^elfi z;81RFpK1Om96+`}^eMlRy&NZ@0N#lV)lK=#2-hAO;Q`M*3a+a-ZDFGJCb-u|;VkOl zU7>h6M&N`q7yCwmMMi56O(SKaG!V-r`i~RNsY=}SS&8=!p-Qz-*b$E|u)4793;kyD z=r|G_DQWD2+*hy78Luy`=GGt7q2cluwKs|0`fgY8>{DwXaLHy-cosV@stK^( zPNtKpbO}r@i8R=tg1yB`10SN=U9j#SKif<6!*qSRJF31)1X>+3?H^0g98^S_`H7t; zECk#!x4YGkoEHgWZS{AHt?j@x33kK3cW-W;wfCpngLvK^M(q&NjPgWhzq1qTj(+M_ z+Tr?CC}vdQ%^cBz+ zESdG5s35wd@Eiz#nj1@-g%p%A87i=IaU5`ZJ|_C15M0khDn znbMa*4(G6zrX$}zmFk#}#0)J!iZMA)UAS0TQ1M)%*{{y9BhEXT@;cgx_~wMj>i-YZ zAuORqw&JC=6RV$qccZ=|K;HTe~v*9c%isCqMPLkK#U!hRvXZ> z7!C$YKAL6^@mx+mbwO6P9ZY+b4BY@2Q(9n;B*&PAh@3y;1`zKFVcEsjvv<|nSIp?1 zQZeet-<9eL<4d~>`h>L8GTY|){TE~v;LAlG_V8DC2#2QvtEFyvu~I%ESJx?lN`9P# zR2&*a9Jh$*4ND@RNiR7Ip<{i9WSnWH>oW^kFjK3oKBuVTe_Lp$!E+d#jiyM1;bl|ZE z5T{w9rItE|;CCmP-_9#_K;R9~8`Bxry#eXlLYxVi1CdiDh)-yC1=HO#KHiB~a3MTF zyiP&Db??a5uJC`$axa+qTd-PZhOIAHrPUH2vzqH8DfBJ4OX57OvdSc0vO~YmULcV zpbW3(^h1=Ioa-W09MdzM#*zyw%)l%#N#PH>&h4dR(!L)t{~AW{g$_Ry27hQs)Z6`q zl$v^=T!glZ(?~f48JEq?GleaM{BIyoZDx{x`YCFf`Bz-N0yp|QCqoAoU{BHfElRZ6 z9WW;+M!!8jCoiyd>sLD7l&HNwAY=R19D)H8la)2TYOeybR5&p^)ZCyZU6umFfTjKj zMwB%3fCSp0#aZMD11iuCsTO}`8=yP zzg6Te@cH<)gJRe<*!;vHm##8EqBv;!9%AF-o|Y|PgPj4l3*Qb7&yp7Y|HO5FGMCIC+oG!hWS)&R!8&!T|tVXew;<{j0#OU z@PHnYJ-HSey3nVCHs6kXQl~RV8 z_Eb9ZWxCR94r~1WL=PHFQZl>k4gBIE>&iQDB?h13J2Kl^&!RNOodd~UWa+lZiESRN zJ$!13|7|gJ-LsBoPJwFc>9dgds0S>?9^z?we9G>=4oen085L|6Ax0dr)3eHKb^J< z2~Usov6q3h?yq<~hKix+=U)brsxRX-6=_>CiV;K=G+Cw^+3@(*C!hhjb|Z9-CSVgF zAT_nX`YX9k>vCHRr;9k`Av89@jqQFLJv*;20Vjy?^WuJLbLQ`HyhWL&sCrJ8g%ZFS zr5n|>;0rl6`Un&*WhPN3n_5({NAcZ1TJBsSu`gcK_VF_Q?xUc9ly2F%rz+M3KMoUs zP`GwA;VxqlgAzPv&qfia?;3X+9VxsEEG+2KF?Qjy_5EoTpib6WaX;_E3jMWd zo-+QOzu$#5%)xOd_n-NYz+Lz{M&+$voW9HK3LVUG4|#CZA}!5bGkHdiU6`8sW~tnT zK*bgWyVp#++~mHRAV@+HCX`}>BT?}dS1Kph+mH7WOAu`=MC3;-XONLn0ijdv6>1!T zh2)lI3*ws2qY_DXuJ$nHB>P5QE|z z3=0sh9F5_~l1Z~#m;Ah0Vw{U{T5Um{F zIoh75_;qf<5=Cj^9F6x67KUJ+k&JTUo+2j4$_=!z3lyLl0DWw&sz35X1Qo*|O z<=BCqsJAlhj=gs865gN@#^m+9Kr};TkuVeiOvWzA0=*h@! z`RCrZ)V8&6*Y=j2-F9;t{l58p^w;=BG`l-^>X*ALaDMb!FB~`ml4Cu1-Kbg}aS}jEoU!C97gjoR1p@BcxqQVeO{6~X*OtFr`o>S*JCJora&gY#pN;(v4&i!-$3^Vwf)JdFH z^3!>K59)HkfQ>WSUzd{EA6jF|BgoT97XM5FEj}qwF|LI=`(y5Q-G*;sqyz$=ku^u` z?pqttD_cTL#_=@7dp0>qKoEpw9z=6B*oKFShuX2-QL$lzeM?VlQj+Usw0qmm<|&R2 zvpt9_3>MQu(V@L3bhz06v`IKPe3K*hoznA|)Ub4t*bp`J{Ne^Qol`yu;~+#Ely}*e zdymTmrR*gV)c-SPiBO_nd{dU}Zzh^sZDQabBN6ckws z-W9*N`Jrl!NoxQRwJ%I-Ra13ofXL$)(ccgn;)Ku!zw1CcR^8&AWp*L!kA=!UJI-$c zqGH;RU^#UlM17Jg&j}{F%NMms6aVHE+pve-p@Tly-Myd$Dc6-Gtgx3KR-#cD^Kk+} zQ24o!3Mfg5H#!7GN5>#K22(J|gk;tdC6FL|-4JYryc6jy95~*7rtWn-TXZD0Q7gxZ+fZrJFFOA;k@bmg}^%v>Ks zqx;VmZMnm)7IC6nkaThA%V<%?+ruV+3Xio!5<0Wo$4Ky0X@qCbXcBDNCVlS=@02)T zoZHL0K1w)}Tj(TKAi88E>$?B&65eKU3r-MRseVSx+0)!axLS-t;~Cjz`;&Lq88jwA zc+VqJs0grBceESW6%kX))Er;6(jp9cOs^b+esnXD^x&}48}y@3jJ9f-d?~>ejhQ30 z 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±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�LTTLhkevj1-y! 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 z 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 literal 0 HcmV?d00001 diff --git a/ci/ci.sh b/ci/ci.sh index a6c608c29c7c7a..3636deafa11fbb 100755 --- a/ci/ci.sh +++ b/ci/ci.sh @@ -13,7 +13,7 @@ print_environment() { # does not rely on bash. for var in WERROR_CFLAGS MAKEFLAGS BUILD \ ECMULTWINDOW ECMULTGENKB ASM WIDEMUL WITH_VALGRIND EXTRAFLAGS \ - EXPERIMENTAL ECDH RECOVERY EXTRAKEYS SCHNORRSIG ELLSWIFT \ + EXPERIMENTAL ECDH RECOVERY EXTRAKEYS MUSIG SCHNORRSIG ELLSWIFT \ SECP256K1_TEST_ITERS BENCH SECP256K1_BENCH_ITERS CTIMETESTS\ EXAMPLES \ HOST WRAPPER_CMD \ @@ -79,6 +79,7 @@ esac --enable-module-ellswift="$ELLSWIFT" \ --enable-module-extrakeys="$EXTRAKEYS" \ --enable-module-schnorrsig="$SCHNORRSIG" \ + --enable-module-musig="$MUSIG" \ --enable-examples="$EXAMPLES" \ --enable-ctime-tests="$CTIMETESTS" \ --with-valgrind="$WITH_VALGRIND" \ diff --git a/ci/cirrus.sh b/ci/cirrus.sh new file mode 100755 index 00000000000000..2b8936a2f122ad --- /dev/null +++ b/ci/cirrus.sh @@ -0,0 +1,82 @@ +#!/bin/sh + +set -e +set -x + +export LC_ALL=C + +# Start persistent wineserver if necessary. +# This speeds up jobs with many invocations of wine (e.g., ./configure with MSVC) tremendously. +case "$WRAPPER_CMD" in + *wine*) + # This is apparently only reliable when we run a dummy command such as "hh.exe" afterwards. + wineserver -p && wine hh.exe + ;; +esac + +env >> test_env.log + +$CC -v || true +valgrind --version || true +$WRAPPER_CMD --version || true + +./autogen.sh + +./configure \ + --enable-experimental="$EXPERIMENTAL" \ + --with-test-override-wide-multiply="$WIDEMUL" --with-asm="$ASM" \ + --with-ecmult-window="$ECMULTWINDOW" \ + --with-ecmult-gen-precision="$ECMULTGENPRECISION" \ + --enable-module-ecdh="$ECDH" --enable-module-recovery="$RECOVERY" \ + --enable-module-schnorrsig="$SCHNORRSIG" \ + --enable-module-batch="$BATCH" \ + --enable-examples="$EXAMPLES" \ + --with-valgrind="$WITH_VALGRIND" \ + --host="$HOST" $EXTRAFLAGS + +# We have set "-j" in MAKEFLAGS. +make + +# Print information about binaries so that we can see that the architecture is correct +file *tests* || true +file bench* || true +file .libs/* || true + +# This tells `make check` to wrap test invocations. +export LOG_COMPILER="$WRAPPER_CMD" + +make "$BUILD" + +if [ "$BENCH" = "yes" ] +then + # Using the local `libtool` because on macOS the system's libtool has nothing to do with GNU libtool + EXEC='./libtool --mode=execute' + if [ -n "$WRAPPER_CMD" ] + then + EXEC="$EXEC $WRAPPER_CMD" + fi + { + $EXEC ./bench_ecmult + $EXEC ./bench_internal + $EXEC ./bench + } >> bench.log 2>&1 +fi + +if [ "$CTIMETEST" = "yes" ] +then + ./libtool --mode=execute valgrind --error-exitcode=42 ./valgrind_ctime_test > valgrind_ctime_test.log 2>&1 +fi + +# Rebuild precomputed files (if not cross-compiling). +if [ -z "$HOST" ] +then + make clean-precomp + make precomp +fi + +# Shutdown wineserver again +wineserver -k || true + +# Check that no repo files have been modified by the build. +# (This fails for example if the precomp files need to be updated in the repo.) +git diff --exit-code diff --git a/configure.ac b/configure.ac index 6841543f594fb2..845fc346e3e5b9 100644 --- a/configure.ac +++ b/configure.ac @@ -4,18 +4,18 @@ AC_PREREQ([2.60]) # the API. All changes in experimental modules are treated as # backwards-compatible and therefore at most increase the minor version. define(_PKG_VERSION_MAJOR, 0) -define(_PKG_VERSION_MINOR, 5) -define(_PKG_VERSION_PATCH, 2) -define(_PKG_VERSION_IS_RELEASE, false) +define(_PKG_VERSION_MINOR, 6) +define(_PKG_VERSION_PATCH, 0) +define(_PKG_VERSION_IS_RELEASE, true) # The library version is based on libtool versioning of the ABI. The set of # rules for updating the version can be found here: # https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html # All changes in experimental modules are treated as if they don't affect the # interface and therefore only increase the revision. -define(_LIB_VERSION_CURRENT, 4) -define(_LIB_VERSION_REVISION, 2) -define(_LIB_VERSION_AGE, 2) +define(_LIB_VERSION_CURRENT, 5) +define(_LIB_VERSION_REVISION, 0) +define(_LIB_VERSION_AGE, 0) AC_INIT([libsecp256k1],m4_join([.], _PKG_VERSION_MAJOR, _PKG_VERSION_MINOR, _PKG_VERSION_PATCH)m4_if(_PKG_VERSION_IS_RELEASE, [true], [], [-dev]),[https://github.com/bitcoin-core/secp256k1/issues],[libsecp256k1],[https://github.com/bitcoin-core/secp256k1]) @@ -184,10 +184,18 @@ AC_ARG_ENABLE(module_schnorrsig, AS_HELP_STRING([--enable-module-schnorrsig],[enable schnorrsig module [default=yes]]), [], [SECP_SET_DEFAULT([enable_module_schnorrsig], [yes], [yes])]) +AC_ARG_ENABLE(module_musig, + AS_HELP_STRING([--enable-module-musig],[enable MuSig2 module [default=yes]]), [], + [SECP_SET_DEFAULT([enable_module_musig], [yes], [yes])]) + AC_ARG_ENABLE(module_ellswift, AS_HELP_STRING([--enable-module-ellswift],[enable ElligatorSwift module [default=yes]]), [], [SECP_SET_DEFAULT([enable_module_ellswift], [yes], [yes])]) +AC_ARG_ENABLE(module_batch, + AS_HELP_STRING([--enable-module-batch],[enable batch verification module (experimental) [default=no]]), [], + [SECP_SET_DEFAULT([enable_module_batch], [no], [yes])]) + AC_ARG_ENABLE(external_default_callbacks, AS_HELP_STRING([--enable-external-default-callbacks],[enable external default callback functions [default=no]]), [], [SECP_SET_DEFAULT([enable_external_default_callbacks], [no], [no])]) @@ -398,6 +406,14 @@ if test x"$enable_module_ellswift" = x"yes"; then SECP_CONFIG_DEFINES="$SECP_CONFIG_DEFINES -DENABLE_MODULE_ELLSWIFT=1" fi +if test x"$enable_module_musig" = x"yes"; then + if test x"$enable_module_schnorrsig" = x"no"; then + AC_MSG_ERROR([Module dependency error: You have disabled the schnorrsig module explicitly, but it is required by the musig module.]) + fi + enable_module_schnorrsig=yes + SECP_CONFIG_DEFINES="$SECP_CONFIG_DEFINES -DENABLE_MODULE_MUSIG=1" +fi + if test x"$enable_module_schnorrsig" = x"yes"; then if test x"$enable_module_extrakeys" = x"no"; then AC_MSG_ERROR([Module dependency error: You have disabled the extrakeys module explicitly, but it is required by the schnorrsig module.]) @@ -418,6 +434,10 @@ if test x"$enable_module_ecdh" = x"yes"; then SECP_CONFIG_DEFINES="$SECP_CONFIG_DEFINES -DENABLE_MODULE_ECDH=1" fi +if test x"$enable_module_batch" = x"yes"; then + AC_DEFINE(ENABLE_MODULE_BATCH, 1, [Define this symbol to enable the batch verification module]) +fi + if test x"$enable_external_default_callbacks" = x"yes"; then SECP_CONFIG_DEFINES="$SECP_CONFIG_DEFINES -DUSE_EXTERNAL_DEFAULT_CALLBACKS=1" fi @@ -426,10 +446,19 @@ fi ### Check for --enable-experimental if necessary ### -if test x"$enable_experimental" = x"no"; then +if test x"$enable_experimental" = x"yes"; then + AC_MSG_NOTICE([******]) + AC_MSG_NOTICE([WARNING: experimental build]) + AC_MSG_NOTICE([Experimental features do not have stable APIs or properties, and may not be safe for production use.]) + AC_MSG_NOTICE([Building batch verification module: $enable_module_batch]) + AC_MSG_NOTICE([******]) +else if test x"$set_asm" = x"arm32"; then AC_MSG_ERROR([ARM32 assembly is experimental. Use --enable-experimental to allow.]) fi + if test x"$enable_module_batch" = x"yes"; then + AC_MSG_ERROR([batch verification module is experimental. Use --enable-experimental to allow.]) + fi fi ### @@ -449,7 +478,9 @@ AM_CONDITIONAL([ENABLE_MODULE_ECDH], [test x"$enable_module_ecdh" = x"yes"]) AM_CONDITIONAL([ENABLE_MODULE_RECOVERY], [test x"$enable_module_recovery" = x"yes"]) AM_CONDITIONAL([ENABLE_MODULE_EXTRAKEYS], [test x"$enable_module_extrakeys" = x"yes"]) AM_CONDITIONAL([ENABLE_MODULE_SCHNORRSIG], [test x"$enable_module_schnorrsig" = x"yes"]) +AM_CONDITIONAL([ENABLE_MODULE_MUSIG], [test x"$enable_module_musig" = x"yes"]) AM_CONDITIONAL([ENABLE_MODULE_ELLSWIFT], [test x"$enable_module_ellswift" = x"yes"]) +AM_CONDITIONAL([ENABLE_MODULE_BATCH], [test x"$enable_module_batch" = x"yes"]) AM_CONDITIONAL([USE_EXTERNAL_ASM], [test x"$enable_external_asm" = x"yes"]) AM_CONDITIONAL([USE_ASM_ARM], [test x"$set_asm" = x"arm32"]) AM_CONDITIONAL([BUILD_WINDOWS], [test "$build_windows" = "yes"]) @@ -471,7 +502,9 @@ echo " module ecdh = $enable_module_ecdh" echo " module recovery = $enable_module_recovery" echo " module extrakeys = $enable_module_extrakeys" echo " module schnorrsig = $enable_module_schnorrsig" +echo " module musig = $enable_module_musig" echo " module ellswift = $enable_module_ellswift" +echo " module batch = $enable_module_batch" echo echo " asm = $set_asm" echo " ecmult window size = $set_ecmult_window" diff --git a/doc/musig.md b/doc/musig.md new file mode 100644 index 00000000000000..ae21f9b131ce58 --- /dev/null +++ b/doc/musig.md @@ -0,0 +1,54 @@ +Notes on the musig module API +=========================== + +The following sections contain additional notes on the API of the musig module (`include/secp256k1_musig.h`). +A usage example can be found in `examples/musig.c`. + +## API misuse + +The musig API is designed with a focus on misuse resistance. +However, due to the interactive nature of the MuSig protocol, there are additional failure modes that are not present in regular (single-party) Schnorr signature creation. +While the results can be catastrophic (e.g. leaking of the secret key), it is unfortunately not possible for the musig implementation to prevent all such failure modes. + +Therefore, users of the musig module must take great care to make sure of the following: + +1. A unique nonce per signing session is generated in `secp256k1_musig_nonce_gen`. + See the corresponding comment in `include/secp256k1_musig.h` for how to ensure that. +2. The `secp256k1_musig_secnonce` structure is never copied or serialized. + See also the comment on `secp256k1_musig_secnonce` in `include/secp256k1_musig.h`. +3. Opaque data structures are never written to or read from directly. + Instead, only the provided accessor functions are used. + +## Key Aggregation and (Taproot) Tweaking + +Given a set of public keys, the aggregate public key is computed with `secp256k1_musig_pubkey_agg`. +A plain tweak can be added to the resulting public key with `secp256k1_ec_pubkey_tweak_add` by setting the `tweak32` argument to the hash defined in BIP 32. Similarly, a Taproot tweak can be added with `secp256k1_xonly_pubkey_tweak_add` by setting the `tweak32` argument to the TapTweak hash defined in BIP 341. +Both types of tweaking can be combined and invoked multiple times if the specific application requires it. + +## Signing + +This is covered by `examples/musig.c`. +Essentially, the protocol proceeds in the following steps: + +1. Generate a keypair with `secp256k1_keypair_create` and obtain the public key with `secp256k1_keypair_pub`. +2. Call `secp256k1_musig_pubkey_agg` with the pubkeys of all participants. +3. Optionally add a (Taproot) tweak with `secp256k1_musig_pubkey_xonly_tweak_add` and a plain tweak with `secp256k1_musig_pubkey_ec_tweak_add`. +4. Generate a pair of secret and public nonce with `secp256k1_musig_nonce_gen` and send the public nonce to the other signers. +5. Someone (not necessarily the signer) aggregates the public nonces with `secp256k1_musig_nonce_agg` and sends it to the signers. +6. Process the aggregate nonce with `secp256k1_musig_nonce_process`. +7. Create a partial signature with `secp256k1_musig_partial_sign`. +8. Verify the partial signatures (optional in some scenarios) with `secp256k1_musig_partial_sig_verify`. +9. Someone (not necessarily the signer) obtains all partial signatures and aggregates them into the final Schnorr signature using `secp256k1_musig_partial_sig_agg`. + +The aggregate signature can be verified with `secp256k1_schnorrsig_verify`. + +Steps 1 through 5 above can occur before or after the signers are aware of the message to be signed. +Whenever possible, it is recommended to generate the nonces only after the message is known. +This provides enhanced defense-in-depth measures, protecting against potential API misuse in certain scenarios. +However, it does require two rounds of communication during the signing process. +The alternative, generating the nonces in a pre-processing step before the message is known, eliminates these additional protective measures but allows for non-interactive signing. +Similarly, the API supports an alternative protocol flow where generating the aggregate key (steps 1 to 3) is allowed to happen after exchanging nonces (steps 4 to 5). + +## Verification + +A participant who wants to verify the partial signatures, but does not sign itself may do so using the above instructions except that the verifier skips steps 1, 4 and 7. diff --git a/doc/speedup-batch.md b/doc/speedup-batch.md new file mode 100644 index 00000000000000..c6956398925547 --- /dev/null +++ b/doc/speedup-batch.md @@ -0,0 +1,15 @@ +# Schnorrsig Batch Verification Speedup + +![Speedup over single verification](speedup-batch/schnorrsig-speedup-batch.png) + +# Tweak Pubkey Check Batch Verification Speedup + +![Speedup over single verification](speedup-batch/tweakcheck-speedup-batch.png) + +Build steps +----------- +To generate the above graphs on your local machine: + + $ cd doc/speedup-batch + $ make + $ make speedup-batch.png diff --git a/doc/speedup-batch/.gitignore b/doc/speedup-batch/.gitignore new file mode 100644 index 00000000000000..773a6df9baff96 --- /dev/null +++ b/doc/speedup-batch/.gitignore @@ -0,0 +1 @@ +*.dat diff --git a/doc/speedup-batch/Makefile b/doc/speedup-batch/Makefile new file mode 100644 index 00000000000000..a6a270d348bff0 --- /dev/null +++ b/doc/speedup-batch/Makefile @@ -0,0 +1,23 @@ +schnorrsig_data = schnorrsig_batch.dat schnorrsig_single.dat +tweak_data = tweak_batch.dat tweak_single.dat + +bench_output.txt: bench.sh + SECP256K1_BENCH_ITERS=500000 ./bench.sh bench_output.txt + +schnorrsig_batch.dat: bench_output.txt + cat bench_output.txt | grep -v "schnorrsig_batch_verify_1 " | awk '{ gsub(/ /,""); print }' | awk -F, 'match($$0, /schnorrsig_batch_verify_([0-9]+)/, arr) {print arr[1] " " $$3}' > schnorrsig_batch.dat + +schnorrsig_single.dat: bench_output.txt + cat bench_output.txt | awk '{ gsub(/ /,""); print }' | awk -F, 'match($$0, /schnorrsig_verify/) {print $$3}' > schnorrsig_single.dat + +tweak_batch.dat: bench_output.txt + cat bench_output.txt | grep -v "tweak_check_batch_verify_1 " | awk '{ gsub(/ /,""); print }' | awk -F, 'match($$0, /tweak_check_batch_verify_([0-9]+)/, arr) {print arr[1] " " $$3}' > tweak_batch.dat + +tweak_single.dat: bench_output.txt + cat bench_output.txt | awk '{ gsub(/ /,""); print }' | awk -F, 'match($$0, /tweak_add_check/) {print $$3}' > tweak_single.dat + +speedup-batch.png: $(schnorrsig_data) $(tweak_data) plot.gp + gnuplot plot.gp + +clean: + rm *.log *.txt *.dat *.png diff --git a/doc/speedup-batch/bench.sh b/doc/speedup-batch/bench.sh new file mode 100755 index 00000000000000..d38d45dceba209 --- /dev/null +++ b/doc/speedup-batch/bench.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +output_file=$1 +cur_dir=$(pwd) + +cd ../../ +echo "HEAD: $(git rev-parse --short HEAD)" > "$cur_dir/$output_file.log" +make clean +./autogen.sh +./configure --enable-experimental --enable-module-batch --enable-module-schnorrsig >> "$cur_dir/$output_file.log" +make -j +./bench schnorrsig > "$cur_dir/$output_file" +./bench extrakeys >> "$cur_dir/$output_file" \ No newline at end of file diff --git a/doc/speedup-batch/bench_output.txt b/doc/speedup-batch/bench_output.txt new file mode 100644 index 00000000000000..9d257341c13860 --- /dev/null +++ b/doc/speedup-batch/bench_output.txt @@ -0,0 +1,137 @@ +Benchmark , Min(us) , Avg(us) , Max(us) + +schnorrsig_sign , 50.4 , 50.5 , 50.7 +schnorrsig_verify , 89.1 , 89.2 , 89.3 +schnorrsig_batch_verify_1 , 104.0 , 104.0 , 104.0 +schnorrsig_batch_verify_2 , 89.0 , 89.1 , 89.1 +schnorrsig_batch_verify_3 , 84.1 , 84.1 , 84.1 +schnorrsig_batch_verify_4 , 81.5 , 81.5 , 81.5 +schnorrsig_batch_verify_5 , 79.9 , 79.9 , 79.9 +schnorrsig_batch_verify_7 , 78.0 , 78.1 , 78.3 +schnorrsig_batch_verify_9 , 77.0 , 77.0 , 77.1 +schnorrsig_batch_verify_11 , 76.2 , 76.3 , 76.3 +schnorrsig_batch_verify_14 , 75.6 , 75.6 , 75.6 +schnorrsig_batch_verify_17 , 75.2 , 75.2 , 75.2 +schnorrsig_batch_verify_21 , 74.8 , 74.8 , 74.8 +schnorrsig_batch_verify_26 , 74.5 , 74.6 , 74.9 +schnorrsig_batch_verify_32 , 74.3 , 74.5 , 74.7 +schnorrsig_batch_verify_39 , 74.1 , 74.1 , 74.1 +schnorrsig_batch_verify_47 , 73.9 , 73.9 , 73.9 +schnorrsig_batch_verify_57 , 74.5 , 74.5 , 74.5 +schnorrsig_batch_verify_69 , 74.3 , 74.3 , 74.5 +schnorrsig_batch_verify_83 , 74.1 , 74.1 , 74.2 +schnorrsig_batch_verify_100 , 73.9 , 74.0 , 74.1 +schnorrsig_batch_verify_121 , 74.1 , 74.1 , 74.2 +schnorrsig_batch_verify_146 , 73.9 , 73.9 , 74.0 +schnorrsig_batch_verify_176 , 74.0 , 74.2 , 74.5 +schnorrsig_batch_verify_212 , 73.9 , 74.1 , 74.1 +schnorrsig_batch_verify_255 , 74.0 , 74.0 , 74.1 +schnorrsig_batch_verify_307 , 73.9 , 74.0 , 74.1 +schnorrsig_batch_verify_369 , 73.9 , 73.9 , 73.9 +schnorrsig_batch_verify_443 , 73.9 , 74.1 , 74.3 +schnorrsig_batch_verify_532 , 74.0 , 74.0 , 74.1 +schnorrsig_batch_verify_639 , 73.9 , 74.0 , 74.0 +schnorrsig_batch_verify_767 , 73.9 , 73.9 , 73.9 +schnorrsig_batch_verify_921 , 74.0 , 74.0 , 74.1 +schnorrsig_batch_verify_1106 , 73.9 , 73.9 , 73.9 +schnorrsig_batch_verify_1328 , 73.9 , 74.1 , 74.2 +schnorrsig_batch_verify_1594 , 74.0 , 74.1 , 74.1 +schnorrsig_batch_verify_1913 , 74.0 , 74.0 , 74.0 +schnorrsig_batch_verify_2296 , 74.0 , 74.0 , 74.0 +schnorrsig_batch_verify_2756 , 73.9 , 74.0 , 74.1 +schnorrsig_batch_verify_3308 , 74.1 , 74.1 , 74.2 +schnorrsig_batch_verify_3970 , 74.1 , 74.2 , 74.4 +schnorrsig_batch_verify_4765 , 74.0 , 74.1 , 74.2 +schnorrsig_batch_verify_5719 , 74.0 , 74.1 , 74.1 +schnorrsig_batch_verify_6863 , 74.0 , 74.1 , 74.1 +schnorrsig_batch_verify_8236 , 74.0 , 74.1 , 74.1 +schnorrsig_batch_verify_9884 , 74.0 , 74.1 , 74.3 +schnorrsig_batch_verify_11861 , 74.0 , 74.0 , 74.1 +schnorrsig_batch_verify_14234 , 73.9 , 74.0 , 74.1 +schnorrsig_batch_verify_17081 , 73.9 , 73.9 , 73.9 +schnorrsig_batch_verify_20498 , 73.9 , 74.0 , 74.0 +schnorrsig_batch_verify_24598 , 73.9 , 74.0 , 74.1 +schnorrsig_batch_verify_29518 , 73.9 , 74.0 , 74.1 +schnorrsig_batch_verify_35422 , 73.9 , 73.9 , 73.9 +schnorrsig_batch_verify_42507 , 73.9 , 74.0 , 74.0 +schnorrsig_batch_verify_51009 , 73.9 , 74.1 , 74.3 +schnorrsig_batch_verify_61211 , 73.9 , 73.9 , 74.0 +schnorrsig_batch_verify_73454 , 73.9 , 74.0 , 74.3 +schnorrsig_batch_verify_88145 , 73.9 , 74.0 , 74.1 +schnorrsig_batch_verify_105775 , 74.0 , 74.1 , 74.1 +schnorrsig_batch_verify_126931 , 73.9 , 74.0 , 74.1 +schnorrsig_batch_verify_152318 , 73.9 , 73.9 , 74.0 +schnorrsig_batch_verify_182782 , 73.9 , 73.9 , 74.0 +schnorrsig_batch_verify_219339 , 73.9 , 73.9 , 74.0 +schnorrsig_batch_verify_263207 , 74.0 , 74.1 , 74.3 +schnorrsig_batch_verify_315849 , 73.9 , 74.0 , 74.0 +schnorrsig_batch_verify_379019 , 73.9 , 73.9 , 73.9 +schnorrsig_batch_verify_454823 , 74.0 , 74.0 , 74.0 +Benchmark , Min(us) , Avg(us) , Max(us) + +tweak_add_check , 64.7 , 64.7 , 65.0 +tweak_check_batch_verify_1 , 69.7 , 69.8 , 69.8 +tweak_check_batch_verify_2 , 57.2 , 57.2 , 57.3 +tweak_check_batch_verify_3 , 52.0 , 52.1 , 52.2 +tweak_check_batch_verify_4 , 49.4 , 49.5 , 49.5 +tweak_check_batch_verify_5 , 47.9 , 47.9 , 47.9 +tweak_check_batch_verify_7 , 46.1 , 46.1 , 46.2 +tweak_check_batch_verify_9 , 45.2 , 45.2 , 45.4 +tweak_check_batch_verify_11 , 44.5 , 44.6 , 44.6 +tweak_check_batch_verify_14 , 43.9 , 43.9 , 43.9 +tweak_check_batch_verify_17 , 43.5 , 43.5 , 43.5 +tweak_check_batch_verify_21 , 43.1 , 43.1 , 43.1 +tweak_check_batch_verify_26 , 42.8 , 42.8 , 42.8 +tweak_check_batch_verify_32 , 42.5 , 42.6 , 42.6 +tweak_check_batch_verify_39 , 42.3 , 42.4 , 42.4 +tweak_check_batch_verify_47 , 42.2 , 42.2 , 42.2 +tweak_check_batch_verify_57 , 42.1 , 42.2 , 42.3 +tweak_check_batch_verify_69 , 42.0 , 42.1 , 42.1 +tweak_check_batch_verify_83 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_100 , 41.8 , 41.9 , 41.9 +tweak_check_batch_verify_121 , 42.1 , 42.1 , 42.1 +tweak_check_batch_verify_146 , 42.0 , 42.0 , 42.0 +tweak_check_batch_verify_176 , 41.9 , 41.9 , 42.0 +tweak_check_batch_verify_212 , 41.8 , 41.9 , 41.9 +tweak_check_batch_verify_255 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_307 , 41.8 , 41.9 , 41.9 +tweak_check_batch_verify_369 , 41.9 , 42.0 , 42.1 +tweak_check_batch_verify_443 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_532 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_639 , 41.9 , 41.9 , 42.0 +tweak_check_batch_verify_767 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_921 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_1106 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_1328 , 41.9 , 41.9 , 42.0 +tweak_check_batch_verify_1594 , 41.9 , 41.9 , 42.0 +tweak_check_batch_verify_1913 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_2296 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_2756 , 41.8 , 41.9 , 41.9 +tweak_check_batch_verify_3308 , 41.9 , 41.9 , 42.0 +tweak_check_batch_verify_3970 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_4765 , 41.8 , 41.9 , 41.9 +tweak_check_batch_verify_5719 , 41.9 , 42.0 , 42.1 +tweak_check_batch_verify_6863 , 42.0 , 42.0 , 42.0 +tweak_check_batch_verify_8236 , 42.0 , 42.0 , 42.0 +tweak_check_batch_verify_9884 , 41.9 , 41.9 , 42.0 +tweak_check_batch_verify_11861 , 41.9 , 42.0 , 42.1 +tweak_check_batch_verify_14234 , 41.9 , 42.0 , 42.0 +tweak_check_batch_verify_17081 , 41.8 , 41.9 , 41.9 +tweak_check_batch_verify_20498 , 41.8 , 41.9 , 41.9 +tweak_check_batch_verify_24598 , 41.8 , 41.9 , 41.9 +tweak_check_batch_verify_29518 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_35422 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_42507 , 41.8 , 41.8 , 41.9 +tweak_check_batch_verify_51009 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_61211 , 41.8 , 41.8 , 41.8 +tweak_check_batch_verify_73454 , 41.8 , 42.0 , 42.2 +tweak_check_batch_verify_88145 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_105775 , 41.8 , 41.8 , 41.8 +tweak_check_batch_verify_126931 , 41.8 , 41.9 , 41.9 +tweak_check_batch_verify_152318 , 41.8 , 41.9 , 42.0 +tweak_check_batch_verify_182782 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_219339 , 41.9 , 42.0 , 42.0 +tweak_check_batch_verify_263207 , 41.9 , 42.0 , 42.1 +tweak_check_batch_verify_315849 , 41.9 , 41.9 , 41.9 +tweak_check_batch_verify_379019 , 41.9 , 41.9 , 42.0 +tweak_check_batch_verify_454823 , 41.9 , 41.9 , 41.9 diff --git a/doc/speedup-batch/bench_output.txt.log b/doc/speedup-batch/bench_output.txt.log new file mode 100644 index 00000000000000..c289c4aab2ecdd --- /dev/null +++ b/doc/speedup-batch/bench_output.txt.log @@ -0,0 +1,127 @@ +HEAD: 6ddb0d0c +checking build system type... x86_64-pc-linux-gnu +checking host system type... x86_64-pc-linux-gnu +checking for a BSD-compatible install... /usr/bin/install -c +checking whether build environment is sane... yes +checking for a thread-safe mkdir -p... /usr/bin/mkdir -p +checking for gawk... gawk +checking whether make sets $(MAKE)... yes +checking whether make supports nested variables... yes +checking whether make supports nested variables... (cached) yes +checking for gcc... gcc +checking whether the C compiler works... yes +checking for C compiler default output file name... a.out +checking for suffix of executables... +checking whether we are cross compiling... no +checking for suffix of object files... o +checking whether we are using the GNU C compiler... yes +checking whether gcc accepts -g... yes +checking for gcc option to accept ISO C89... none needed +checking whether gcc understands -c and -o together... yes +checking whether make supports the include directive... yes (GNU style) +checking dependency style of gcc... gcc3 +checking dependency style of gcc... gcc3 +checking for ar... ar +checking the archiver (ar) interface... ar +checking how to print strings... printf +checking for a sed that does not truncate output... /usr/bin/sed +checking for grep that handles long lines and -e... /usr/bin/grep +checking for egrep... /usr/bin/grep -E +checking for fgrep... /usr/bin/grep -F +checking for ld used by gcc... /usr/bin/ld +checking if the linker (/usr/bin/ld) is GNU ld... yes +checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B +checking the name lister (/usr/bin/nm -B) interface... BSD nm +checking whether ln -s works... yes +checking the maximum length of command line arguments... 1572864 +checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop +checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop +checking for /usr/bin/ld option to reload object files... -r +checking for objdump... objdump +checking how to recognize dependent libraries... pass_all +checking for dlltool... no +checking how to associate runtime and link libraries... printf %s\n +checking for archiver @FILE support... @ +checking for strip... strip +checking for ranlib... ranlib +checking command to parse /usr/bin/nm -B output from gcc object... ok +checking for sysroot... no +checking for a working dd... /usr/bin/dd +checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 +checking for mt... mt +checking if mt is a manifest tool... no +checking how to run the C preprocessor... gcc -E +checking for ANSI C header files... yes +checking for sys/types.h... yes +checking for sys/stat.h... yes +checking for stdlib.h... yes +checking for string.h... yes +checking for memory.h... yes +checking for strings.h... yes +checking for inttypes.h... yes +checking for stdint.h... yes +checking for unistd.h... yes +checking for dlfcn.h... yes +checking for objdir... .libs +checking if gcc supports -fno-rtti -fno-exceptions... no +checking for gcc option to produce PIC... -fPIC -DPIC +checking if gcc PIC flag -fPIC -DPIC works... yes +checking if gcc static flag -static works... yes +checking if gcc supports -c -o file.o... yes +checking if gcc supports -c -o file.o... (cached) yes +checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes +checking whether -lc should be explicitly linked in... no +checking dynamic linker characteristics... GNU/Linux ld.so +checking how to hardcode library paths into programs... immediate +checking whether stripping libraries is possible... yes +checking if libtool supports shared libraries... yes +checking whether to build shared libraries... yes +checking whether to build static libraries... yes +checking if gcc supports -Werror=unknown-warning-option... no +checking if gcc supports -std=c89 -pedantic -Wno-long-long -Wnested-externs -Wshadow -Wstrict-prototypes -Wundef... yes +checking if gcc supports -Wno-overlength-strings... yes +checking if gcc supports -Wall... yes +checking if gcc supports -Wno-unused-function... yes +checking if gcc supports -Wextra... yes +checking if gcc supports -Wcast-align... yes +checking if gcc supports -Wcast-align=strict... yes +checking if gcc supports -Wconditional-uninitialized... no +checking if gcc supports -fvisibility=hidden... yes +checking for valgrind support... yes +checking for x86_64 assembly availability... yes +configure: ****** +configure: WARNING: experimental build +configure: Experimental features do not have stable APIs or properties, and may not be safe for production use. +configure: Building batch verification module: yes +configure: ****** +checking that generated files are newer than configure... done +configure: creating ./config.status +config.status: creating Makefile +config.status: creating libsecp256k1.pc +config.status: creating src/libsecp256k1-config.h +config.status: src/libsecp256k1-config.h is unchanged +config.status: executing depfiles commands +config.status: executing libtool commands + +Build Options: + with external callbacks = no + with benchmarks = yes + with tests = yes + with coverage = no + with examples = no + module ecdh = no + module recovery = no + module extrakeys = yes + module schnorrsig = yes + module batch = yes + + asm = x86_64 + ecmult window size = 15 + ecmult gen prec. bits = 4 + + valgrind = yes + CC = gcc + CPPFLAGS = + SECP_CFLAGS = -O2 -std=c89 -pedantic -Wno-long-long -Wnested-externs -Wshadow -Wstrict-prototypes -Wundef -Wno-overlength-strings -Wall -Wno-unused-function -Wextra -Wcast-align -Wcast-align=strict -fvisibility=hidden + CFLAGS = -g -O2 + LDFLAGS = diff --git a/doc/speedup-batch/plot.gp b/doc/speedup-batch/plot.gp new file mode 100644 index 00000000000000..7960ca0fd04b8b --- /dev/null +++ b/doc/speedup-batch/plot.gp @@ -0,0 +1,41 @@ +set style line 80 lt rgb "#808080" +set style line 81 lt 0 +set style line 81 lt rgb "#808080" +set grid back linestyle 81 +set border 3 back linestyle 80 +set xtics nomirror +set ytics nomirror +set style line 1 lt rgb "#A00000" lw 2 pt 1 +set style line 2 lt rgb "#00A000" lw 2 pt 6 +set style line 3 lt rgb "#5060D0" lw 2 pt 2 +set style line 4 lt rgb "#F25900" lw 2 pt 9 +set key bottom right +set autoscale +unset log +unset label +set xtic auto +set ytic auto +set title "Batch signature verification in libsecp256k1" +set xlabel "Number of signatures (logarithmic)" +set ylabel "Verification time per signature in us" +set grid +set logscale x +set mxtics 10 + +# Generate graph of Schnorr signature benchmark +schnorrsig_single_val=system("cat schnorrsig_single.dat") +set xrange [1.1:] +set xtics add ("2" 2) +set yrange [0.9:] +set ytics -1,0.1,3 +set ylabel "Speedup over single verification" +set term png size 800,600 +set output 'schnorrsig-speedup-batch.png' +plot "schnorrsig_batch.dat" using 1:(schnorrsig_single_val/$2) with points title "" ls 1 + +# Generate graph of tweaked x-only pubkey check benchmark +set title "Batch tweaked x-only pubkey check in libsecp256k1" +set xlabel "Number of tweak checks (logarithmic)" +tweak_single_val=system("cat tweak_single.dat") +set output 'tweakcheck-speedup-batch.png' +plot "tweak_batch.dat" using 1:(tweak_single_val/$2) with points title "" ls 1 diff --git a/doc/speedup-batch/schnorrsig-speedup-batch.png b/doc/speedup-batch/schnorrsig-speedup-batch.png new file mode 100644 index 0000000000000000000000000000000000000000..536b831503ce3ef518dd8fb771952831a169d979 GIT binary patch literal 8192 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 Q%Px# literal 0 HcmV?d00001 diff --git a/doc/speedup-batch/tweakcheck-speedup-batch.png b/doc/speedup-batch/tweakcheck-speedup-batch.png new file mode 100644 index 0000000000000000000000000000000000000000..f12e6e273f1915e985c46ff175b0f5c162f0a26d GIT binary patch literal 8639 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 OsHLv=SGn5Fuzv#^D0X%L literal 0 HcmV?d00001 diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index fd1ebce3958d04..a5c2afb5e01a9d 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -9,14 +9,7 @@ function(add_example name) $<$:bcrypt> ) set(test_name ${name}_example) - add_test(NAME ${test_name} COMMAND ${target_name}) - if(BUILD_SHARED_LIBS AND MSVC) - # The DLL must reside either in the same folder where the executable is - # or somewhere in PATH. Using the latter option. - set_tests_properties(${test_name} PROPERTIES - ENVIRONMENT "PATH=$;$ENV{PATH}" - ) - endif() + add_test(NAME secp256k1_${test_name} COMMAND ${target_name}) endfunction() add_example(ecdsa) @@ -32,3 +25,11 @@ endif() if(SECP256K1_ENABLE_MODULE_ELLSWIFT) add_example(ellswift) endif() + +if(SECP256K1_ENABLE_MODULE_MUSIG) + add_example(musig) +endif() + +if(SECP256K1_ENABLE_MODULE_BATCH) + add_example(batch) +endif() diff --git a/examples/batch.c b/examples/batch.c new file mode 100644 index 00000000000000..3e3e59c6204e2f --- /dev/null +++ b/examples/batch.c @@ -0,0 +1,181 @@ +#include +#include +#include + +#include +#include +#include +#include + +#include "examples_util.h" + +/* key pair data */ +unsigned char sk[32]; +secp256k1_keypair keypair; +secp256k1_xonly_pubkey pk; + +/* schnorrsig verification data */ +#define N_SIGS 10 +unsigned char msg[N_SIGS][32]; +unsigned char sig[N_SIGS][64]; + +/* xonly pubkey tweak checks data */ +#define N_CHECKS 10 +unsigned char tweaked_pubkey[N_CHECKS][32]; +int tweaked_pk_parity[N_CHECKS]; +unsigned char tweak[N_CHECKS][32]; + +/* 2*N_SIGS since one schnorrsig creates two scalar-point pairs in batch + * whereas one tweak check creates one scalar-point pair in batch */ +#define N_TERMS (N_CHECKS + 2*N_SIGS) + +/* generate key pair required for sign and verify */ +int create_keypair(secp256k1_context *ctx) { + while(1) { + if (!fill_random(sk, sizeof(sk))) { + printf("Failed to generate randomness\n"); + return 1; + } + if (secp256k1_keypair_create(ctx, &keypair, sk)) { + break; + } + } + if (!secp256k1_keypair_xonly_pub(ctx, &pk, NULL, &keypair)) { + return 0; + } + + return 1; +} + +/* create valid schnorrsigs for N_SIGS random messages */ +int generate_schnorrsigs(secp256k1_context *ctx) { + size_t i; + + for (i = 0; i < N_SIGS; i++) { + if(!fill_random(msg[i], sizeof(msg[i]))) { + printf("Failed to generate randomness\n"); + return 1; + } + assert(secp256k1_schnorrsig_sign32(ctx, sig[i], msg[i], &keypair, NULL)); + assert(secp256k1_schnorrsig_verify(ctx, sig[i], msg[i], sizeof(msg[i]), &pk)); + } + + return 1; +} + +/* create valid N_CHECKS number of xonly pukey tweak checks */ +int generate_xonlypub_tweak_checks(secp256k1_context *ctx) { + secp256k1_pubkey output_pk; + secp256k1_xonly_pubkey output_xonly_pk; + size_t i; + + for (i = 0; i < N_CHECKS; i++) { + if (!fill_random(tweak[i], sizeof(tweak[i]))) { + printf("Failed to generate randomness\n"); + return 1; + } + assert(secp256k1_xonly_pubkey_tweak_add(ctx, &output_pk, &pk, tweak[i])); + assert(secp256k1_xonly_pubkey_from_pubkey(ctx, &output_xonly_pk, &tweaked_pk_parity[i], &output_pk)); + assert(secp256k1_xonly_pubkey_serialize(ctx, tweaked_pubkey[i], &output_xonly_pk)); + assert(secp256k1_xonly_pubkey_tweak_add_check(ctx, tweaked_pubkey[i], tweaked_pk_parity[i], &pk, tweak[i])); + } + + return 1; +} + +int main(void) { + int ret; + size_t i; + /* batch object uses secp256k1_context only for the error callback function + * here, we create secp256k1_context that can sign and verify, only to generate + * input data (schnorrsigs, tweak checks) required for the batch */ + secp256k1_context *ctx = secp256k1_context_create(SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY); + secp256k1_batch *batch; + unsigned char auxiliary_rand[16]; + + /* Generate 16 bytes of randomness to use during batch creation. */ + if (!fill_random(auxiliary_rand, sizeof(auxiliary_rand))) { + printf("Failed to generate randomness\n"); + return 1; + } + + batch = secp256k1_batch_create(ctx, N_TERMS, auxiliary_rand); + + assert(ctx != NULL); + assert(batch != NULL); + + /* key pair generation */ + printf("Creating a key pair........................."); + if(!create_keypair(ctx)) { + printf("FAILED\n"); + return 1; + } + printf("ok\n"); + + /* create schnorrsigs for N_SIGS random messages */ + printf("Signing messages............................"); + if(!generate_schnorrsigs(ctx)) { + printf("FAILED\n"); + return 1; + } + printf("ok\n"); + + printf("Adding signatures to the batch object......."); + for (i = 0; i < N_SIGS; i++) { + /* It is recommended to check the validity of the batch before adding a + * new input (schnorrsig/tweak check) to it. The `secp256k1_batch_add_` APIs + * won't add any new input to invalid batch since the final `secp256k1_batch_verify` + * API call will fail even if the new input is valid. */ + if(secp256k1_batch_usable(ctx, batch)) { + ret = secp256k1_batch_add_schnorrsig(ctx, batch, sig[i], msg[i], sizeof(msg[i]), &pk); + } else { + printf("INVALID BATCH\n"); + return 1; + } + + if(!ret) { + printf("FAILED\n"); + return 1; + } + } + printf("ok\n"); + + printf("Generating xonlypub tweak checks............"); + if(!generate_xonlypub_tweak_checks(ctx)) { + printf("FAILED\n"); + return 1; + } + printf("ok\n"); + + printf("Adding tweak checks to the batch object....."); + for (i = 0; i < N_CHECKS; i++) { + /* It is recommended to check the validity of the batch before adding a + * new input (schnorrsig/tweak check) to it. The `secp256k1_batch_add_` APIs + * won't add any new input to invalid batch since the final `secp256k1_batch_verify` + * API call will fail even if the new input is valid. */ + if(secp256k1_batch_usable(ctx, batch)) { + ret = secp256k1_batch_add_xonlypub_tweak_check(ctx, batch, tweaked_pubkey[i], tweaked_pk_parity[i], &pk, tweak[i]); + } else { + printf("INVALID BATCH\n"); + return 1; + } + + if(!ret) { + printf("FAILED\n"); + return 1; + } + } + printf("ok\n"); + + printf("Verifying the batch object.................."); + if(!secp256k1_batch_verify(ctx, batch)) { + printf("FAILED\n"); + return 1; + } + printf("ok\n"); + + secp256k1_batch_destroy(ctx, batch); + secp256k1_context_destroy(ctx); + + return 0; +} diff --git a/examples/ecdh.c b/examples/ecdh.c index d71fd2f604b0bc..13aa760b2dc54b 100644 --- a/examples/ecdh.c +++ b/examples/ecdh.c @@ -42,18 +42,16 @@ int main(void) { assert(return_val); /*** Key Generation ***/ - - /* If the secret key is zero or out of range (bigger than secp256k1's - * order), we try to sample a new key. Note that the probability of this - * happening is negligible. */ - while (1) { - if (!fill_random(seckey1, sizeof(seckey1)) || !fill_random(seckey2, sizeof(seckey2))) { - printf("Failed to generate randomness\n"); - return 1; - } - if (secp256k1_ec_seckey_verify(ctx, seckey1) && secp256k1_ec_seckey_verify(ctx, seckey2)) { - break; - } + if (!fill_random(seckey1, sizeof(seckey1)) || !fill_random(seckey2, sizeof(seckey2))) { + printf("Failed to generate randomness\n"); + return 1; + } + /* If the secret key is zero or out of range (greater than secp256k1's + * order), we fail. Note that the probability of this occurring is negligible + * with a properly functioning random number generator. */ + if (!secp256k1_ec_seckey_verify(ctx, seckey1) || !secp256k1_ec_seckey_verify(ctx, seckey2)) { + printf("Generated secret key is invalid. This indicates an issue with the random number generator.\n"); + return 1; } /* Public key creation using a valid context with a verified secret key should never fail */ diff --git a/examples/ecdsa.c b/examples/ecdsa.c index d5c4613d9c74e2..80ae9d46c52b9b 100644 --- a/examples/ecdsa.c +++ b/examples/ecdsa.c @@ -49,18 +49,16 @@ int main(void) { assert(return_val); /*** Key Generation ***/ - - /* If the secret key is zero or out of range (bigger than secp256k1's - * order), we try to sample a new key. Note that the probability of this - * happening is negligible. */ - while (1) { - if (!fill_random(seckey, sizeof(seckey))) { - printf("Failed to generate randomness\n"); - return 1; - } - if (secp256k1_ec_seckey_verify(ctx, seckey)) { - break; - } + if (!fill_random(seckey, sizeof(seckey))) { + printf("Failed to generate randomness\n"); + return 1; + } + /* If the secret key is zero or out of range (greater than secp256k1's + * order), we fail. Note that the probability of this occurring is negligible + * with a properly functioning random number generator. */ + if (!secp256k1_ec_seckey_verify(ctx, seckey)) { + printf("Generated secret key is invalid. This indicates an issue with the random number generator.\n"); + return 1; } /* Public key creation using a valid context with a verified secret key should never fail */ diff --git a/examples/ellswift.c b/examples/ellswift.c index 52be7eebfb1610..afb2fee40be003 100644 --- a/examples/ellswift.c +++ b/examples/ellswift.c @@ -47,18 +47,16 @@ int main(void) { assert(return_val); /*** Generate secret keys ***/ - - /* If the secret key is zero or out of range (bigger than secp256k1's - * order), we try to sample a new key. Note that the probability of this - * happening is negligible. */ - while (1) { - if (!fill_random(seckey1, sizeof(seckey1)) || !fill_random(seckey2, sizeof(seckey2))) { - printf("Failed to generate randomness\n"); - return 1; - } - if (secp256k1_ec_seckey_verify(ctx, seckey1) && secp256k1_ec_seckey_verify(ctx, seckey2)) { - break; - } + if (!fill_random(seckey1, sizeof(seckey1)) || !fill_random(seckey2, sizeof(seckey2))) { + printf("Failed to generate randomness\n"); + return 1; + } + /* If the secret key is zero or out of range (greater than secp256k1's + * order), we fail. Note that the probability of this occurring is negligible + * with a properly functioning random number generator. */ + if (!secp256k1_ec_seckey_verify(ctx, seckey1) || !secp256k1_ec_seckey_verify(ctx, seckey2)) { + printf("Generated secret key is invalid. This indicates an issue with the random number generator.\n"); + return 1; } /* Generate ElligatorSwift public keys. This should never fail with valid context and diff --git a/examples/musig.c b/examples/musig.c new file mode 100644 index 00000000000000..0352dc40f37695 --- /dev/null +++ b/examples/musig.c @@ -0,0 +1,260 @@ +/************************************************************************* + * To the extent possible under law, the author(s) have dedicated all * + * copyright and related and neighboring rights to the software in this * + * file to the public domain worldwide. This software is distributed * + * without any warranty. For the CC0 Public Domain Dedication, see * + * EXAMPLES_COPYING or https://creativecommons.org/publicdomain/zero/1.0 * + *************************************************************************/ + +/** This file demonstrates how to use the MuSig module to create a + * 3-of-3 multisignature. Additionally, see the documentation in + * include/secp256k1_musig.h and doc/musig.md. + */ + +#include +#include +#include + +#include +#include +#include +#include + +#include "examples_util.h" + +struct signer_secrets { + secp256k1_keypair keypair; + secp256k1_musig_secnonce secnonce; +}; + +struct signer { + secp256k1_pubkey pubkey; + secp256k1_musig_pubnonce pubnonce; + secp256k1_musig_partial_sig partial_sig; +}; + + /* Number of public keys involved in creating the aggregate signature */ +#define N_SIGNERS 3 +/* Create a key pair, store it in signer_secrets->keypair and signer->pubkey */ +static int create_keypair(const secp256k1_context* ctx, struct signer_secrets *signer_secrets, struct signer *signer) { + unsigned char seckey[32]; + + if (!fill_random(seckey, sizeof(seckey))) { + printf("Failed to generate randomness\n"); + return 0; + } + /* Try to create a keypair with a valid context. This only fails if the + * secret key is zero or out of range (greater than secp256k1's order). Note + * that the probability of this occurring is negligible with a properly + * functioning random number generator. */ + if (!secp256k1_keypair_create(ctx, &signer_secrets->keypair, seckey)) { + return 0; + } + if (!secp256k1_keypair_pub(ctx, &signer->pubkey, &signer_secrets->keypair)) { + return 0; + } + + secure_erase(seckey, sizeof(seckey)); + return 1; +} + +/* Tweak the pubkey corresponding to the provided keyagg cache, update the cache + * and return the tweaked aggregate pk. */ +static int tweak(const secp256k1_context* ctx, secp256k1_xonly_pubkey *agg_pk, secp256k1_musig_keyagg_cache *cache) { + secp256k1_pubkey output_pk; + /* For BIP 32 tweaking the plain_tweak is set to a hash as defined in BIP + * 32. */ + unsigned char plain_tweak[32] = "this could be a BIP32 tweak...."; + /* For Taproot tweaking the xonly_tweak is set to the TapTweak hash as + * defined in BIP 341 */ + unsigned char xonly_tweak[32] = "this could be a Taproot tweak.."; + + + /* Plain tweaking which, for example, allows deriving multiple child + * public keys from a single aggregate key using BIP32 */ + if (!secp256k1_musig_pubkey_ec_tweak_add(ctx, NULL, cache, plain_tweak)) { + return 0; + } + /* Note that we did not provide an output_pk argument, because the + * resulting pk is also saved in the cache and so if one is just interested + * in signing, the output_pk argument is unnecessary. On the other hand, if + * one is not interested in signing, the same output_pk can be obtained by + * calling `secp256k1_musig_pubkey_get` right after key aggregation to get + * the full pubkey and then call `secp256k1_ec_pubkey_tweak_add`. */ + + /* Xonly tweaking which, for example, allows creating Taproot commitments */ + if (!secp256k1_musig_pubkey_xonly_tweak_add(ctx, &output_pk, cache, xonly_tweak)) { + return 0; + } + /* Note that if we wouldn't care about signing, we can arrive at the same + * output_pk by providing the untweaked public key to + * `secp256k1_xonly_pubkey_tweak_add` (after converting it to an xonly pubkey + * if necessary with `secp256k1_xonly_pubkey_from_pubkey`). */ + + /* Now we convert the output_pk to an xonly pubkey to allow to later verify + * the Schnorr signature against it. For this purpose we can ignore the + * `pk_parity` output argument; we would need it if we would have to open + * the Taproot commitment. */ + if (!secp256k1_xonly_pubkey_from_pubkey(ctx, agg_pk, NULL, &output_pk)) { + return 0; + } + return 1; +} + +/* Sign a message hash with the given key pairs and store the result in sig */ +static int sign(const secp256k1_context* ctx, struct signer_secrets *signer_secrets, struct signer *signer, const secp256k1_musig_keyagg_cache *cache, const unsigned char *msg32, unsigned char *sig64) { + int i; + const secp256k1_musig_pubnonce *pubnonces[N_SIGNERS]; + const secp256k1_musig_partial_sig *partial_sigs[N_SIGNERS]; + /* The same for all signers */ + secp256k1_musig_session session; + secp256k1_musig_aggnonce agg_pubnonce; + + for (i = 0; i < N_SIGNERS; i++) { + unsigned char seckey[32]; + unsigned char session_secrand[32]; + /* Create random session ID. It is absolutely necessary that the session ID + * is unique for every call of secp256k1_musig_nonce_gen. Otherwise + * it's trivial for an attacker to extract the secret key! */ + if (!fill_random(session_secrand, sizeof(session_secrand))) { + return 0; + } + if (!secp256k1_keypair_sec(ctx, seckey, &signer_secrets[i].keypair)) { + return 0; + } + /* Initialize session and create secret nonce for signing and public + * nonce to send to the other signers. */ + if (!secp256k1_musig_nonce_gen(ctx, &signer_secrets[i].secnonce, &signer[i].pubnonce, session_secrand, seckey, &signer[i].pubkey, msg32, NULL, NULL)) { + return 0; + } + pubnonces[i] = &signer[i].pubnonce; + + secure_erase(seckey, sizeof(seckey)); + } + + /* Communication round 1: Every signer sends their pubnonce to the + * coordinator. The coordinator runs secp256k1_musig_nonce_agg and sends + * agg_pubnonce to each signer */ + if (!secp256k1_musig_nonce_agg(ctx, &agg_pubnonce, pubnonces, N_SIGNERS)) { + return 0; + } + + /* Every signer creates a partial signature */ + for (i = 0; i < N_SIGNERS; i++) { + /* Initialize the signing session by processing the aggregate nonce */ + if (!secp256k1_musig_nonce_process(ctx, &session, &agg_pubnonce, msg32, cache)) { + return 0; + } + /* partial_sign will clear the secnonce by setting it to 0. That's because + * you must _never_ reuse the secnonce (or use the same session_secrand to + * create a secnonce). If you do, you effectively reuse the nonce and + * leak the secret key. */ + if (!secp256k1_musig_partial_sign(ctx, &signer[i].partial_sig, &signer_secrets[i].secnonce, &signer_secrets[i].keypair, cache, &session)) { + return 0; + } + partial_sigs[i] = &signer[i].partial_sig; + } + /* Communication round 2: Every signer sends their partial signature to the + * coordinator, who verifies the partial signatures and aggregates them. */ + for (i = 0; i < N_SIGNERS; i++) { + /* To check whether signing was successful, it suffices to either verify + * the aggregate signature with the aggregate public key using + * secp256k1_schnorrsig_verify, or verify all partial signatures of all + * signers individually. Verifying the aggregate signature is cheaper but + * verifying the individual partial signatures has the advantage that it + * can be used to determine which of the partial signatures are invalid + * (if any), i.e., which of the partial signatures cause the aggregate + * signature to be invalid and thus the protocol run to fail. It's also + * fine to first verify the aggregate sig, and only verify the individual + * sigs if it does not work. + */ + if (!secp256k1_musig_partial_sig_verify(ctx, &signer[i].partial_sig, &signer[i].pubnonce, &signer[i].pubkey, cache, &session)) { + return 0; + } + } + return secp256k1_musig_partial_sig_agg(ctx, sig64, &session, partial_sigs, N_SIGNERS); +} + +int main(void) { + secp256k1_context* ctx; + int i; + struct signer_secrets signer_secrets[N_SIGNERS]; + struct signer signers[N_SIGNERS]; + const secp256k1_pubkey *pubkeys_ptr[N_SIGNERS]; + secp256k1_xonly_pubkey agg_pk; + secp256k1_musig_keyagg_cache cache; + unsigned char msg[32] = "this_could_be_the_hash_of_a_msg"; + unsigned char sig[64]; + + /* Create a secp256k1 context */ + ctx = secp256k1_context_create(SECP256K1_CONTEXT_NONE); + printf("Creating key pairs......"); + fflush(stdout); + for (i = 0; i < N_SIGNERS; i++) { + if (!create_keypair(ctx, &signer_secrets[i], &signers[i])) { + printf("FAILED\n"); + return 1; + } + pubkeys_ptr[i] = &signers[i].pubkey; + } + printf("ok\n"); + + /* The aggregate public key produced by secp256k1_musig_pubkey_agg depends + * on the order of the provided public keys. If there is no canonical order + * of the signers, the individual public keys can optionally be sorted with + * secp256k1_ec_pubkey_sort to ensure that the aggregate public key is + * independent of the order of signers. */ + printf("Sorting public keys....."); + fflush(stdout); + if (!secp256k1_ec_pubkey_sort(ctx, pubkeys_ptr, N_SIGNERS)) { + printf("FAILED\n"); + return 1; + } + printf("ok\n"); + + printf("Combining public keys..."); + fflush(stdout); + /* If you just want to aggregate and not sign, you can call + * secp256k1_musig_pubkey_agg with the keyagg_cache argument set to NULL + * while providing a non-NULL agg_pk argument. */ + if (!secp256k1_musig_pubkey_agg(ctx, NULL, &cache, pubkeys_ptr, N_SIGNERS)) { + printf("FAILED\n"); + return 1; + } + printf("ok\n"); + printf("Tweaking................"); + fflush(stdout); + /* Optionally tweak the aggregate key */ + if (!tweak(ctx, &agg_pk, &cache)) { + printf("FAILED\n"); + return 1; + } + printf("ok\n"); + printf("Signing message........."); + fflush(stdout); + if (!sign(ctx, signer_secrets, signers, &cache, msg, sig)) { + printf("FAILED\n"); + return 1; + } + printf("ok\n"); + printf("Verifying signature....."); + fflush(stdout); + if (!secp256k1_schnorrsig_verify(ctx, sig, msg, 32, &agg_pk)) { + printf("FAILED\n"); + return 1; + } + printf("ok\n"); + + /* It's best practice to try to clear secrets from memory after using them. + * This is done because some bugs can allow an attacker to leak memory, for + * example through "out of bounds" array access (see Heartbleed), or the OS + * swapping them to disk. Hence, we overwrite secret key material with zeros. + * + * Here we are preventing these writes from being optimized out, as any good compiler + * will remove any writes that aren't used. */ + for (i = 0; i < N_SIGNERS; i++) { + secure_erase(&signer_secrets[i], sizeof(signer_secrets[i])); + } + secp256k1_context_destroy(ctx); + return 0; +} diff --git a/examples/schnorr.c b/examples/schnorr.c index 8d5d14bdaf9605..909fcaa1f3f2fc 100644 --- a/examples/schnorr.c +++ b/examples/schnorr.c @@ -43,20 +43,17 @@ int main(void) { assert(return_val); /*** Key Generation ***/ - - /* If the secret key is zero or out of range (bigger than secp256k1's - * order), we try to sample a new key. Note that the probability of this - * happening is negligible. */ - while (1) { - if (!fill_random(seckey, sizeof(seckey))) { - printf("Failed to generate randomness\n"); - return 1; - } - /* Try to create a keypair with a valid context, it should only fail if - * the secret key is zero or out of range. */ - if (secp256k1_keypair_create(ctx, &keypair, seckey)) { - break; - } + if (!fill_random(seckey, sizeof(seckey))) { + printf("Failed to generate randomness\n"); + return 1; + } + /* Try to create a keypair with a valid context. This only fails if the + * secret key is zero or out of range (greater than secp256k1's order). Note + * that the probability of this occurring is negligible with a properly + * functioning random number generator. */ + if (!secp256k1_keypair_create(ctx, &keypair, seckey)) { + printf("Generated secret key is invalid. This indicates an issue with the random number generator.\n"); + return 1; } /* Extract the X-only public key from the keypair. We pass NULL for diff --git a/include/secp256k1.h b/include/secp256k1.h index cfbdd528c2fab3..c6e9417f055fc7 100644 --- a/include/secp256k1.h +++ b/include/secp256k1.h @@ -49,19 +49,6 @@ extern "C" { */ typedef struct secp256k1_context_struct secp256k1_context; -/** Opaque data structure that holds rewritable "scratch space" - * - * The purpose of this structure is to replace dynamic memory allocations, - * because we target architectures where this may not be available. It is - * essentially a resizable (within specified parameters) block of bytes, - * which is initially created either by memory allocation or TODO as a pointer - * into some fixed rewritable space. - * - * Unlike the context object, this cannot safely be shared between threads - * without additional synchronization logic. - */ -typedef struct secp256k1_scratch_space_struct secp256k1_scratch_space; - /** Opaque data structure that holds a parsed and valid public key. * * The exact representation of data inside is implementation defined and not @@ -71,11 +58,11 @@ typedef struct secp256k1_scratch_space_struct secp256k1_scratch_space; * use secp256k1_ec_pubkey_serialize and secp256k1_ec_pubkey_parse. To * compare keys, use secp256k1_ec_pubkey_cmp. */ -typedef struct { +typedef struct secp256k1_pubkey { unsigned char data[64]; } secp256k1_pubkey; -/** Opaque data structured that holds a parsed ECDSA signature. +/** Opaque data structure that holds a parsed ECDSA signature. * * The exact representation of data inside is implementation defined and not * guaranteed to be portable between different platforms or versions. It is @@ -84,7 +71,7 @@ typedef struct { * comparison, use the secp256k1_ecdsa_signature_serialize_* and * secp256k1_ecdsa_signature_parse_* functions. */ -typedef struct { +typedef struct secp256k1_ecdsa_signature { unsigned char data[64]; } secp256k1_ecdsa_signature; @@ -147,6 +134,15 @@ typedef int (*secp256k1_nonce_function)( * 1. If using Libtool, it defines DLL_EXPORT automatically. * 2. In other cases, SECP256K1_DLL_EXPORT must be defined. */ # define SECP256K1_API extern __declspec (dllexport) +# else + /* Building libsecp256k1 as a static library on Windows. + * No declspec is needed, and so we would want the non-Windows-specific + * logic below take care of this case. However, this may result in setting + * __attribute__ ((visibility("default"))), which is supposed to be a noop + * on Windows but may trigger warnings when compiling with -flto due to a + * bug in GCC, see + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116478 . */ +# define SECP256K1_API extern # endif /* The user must define SECP256K1_STATIC when consuming libsecp256k1 as a static * library on Windows. */ @@ -156,11 +152,12 @@ typedef int (*secp256k1_nonce_function)( # endif #endif #ifndef SECP256K1_API +/* All cases not captured by the Windows-specific logic. */ # if defined(__GNUC__) && (__GNUC__ >= 4) && defined(SECP256K1_BUILD) - /* Building libsecp256k1 on non-Windows using GCC or compatible. */ + /* Building libsecp256k1 using GCC or compatible. */ # define SECP256K1_API extern __attribute__ ((visibility ("default"))) # else - /* All cases not captured above. */ + /* Fall back to standard C's extern. */ # define SECP256K1_API extern # endif #endif @@ -392,29 +389,6 @@ SECP256K1_API void secp256k1_context_set_error_callback( const void *data ) SECP256K1_ARG_NONNULL(1); -/** Create a secp256k1 scratch space object. - * - * Returns: a newly created scratch space. - * Args: ctx: pointer to a context object. - * In: size: amount of memory to be available as scratch space. Some extra - * (<100 bytes) will be allocated for extra accounting. - */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT secp256k1_scratch_space *secp256k1_scratch_space_create( - const secp256k1_context *ctx, - size_t size -) SECP256K1_ARG_NONNULL(1); - -/** Destroy a secp256k1 scratch space. - * - * The pointer may not be used afterwards. - * Args: ctx: pointer to a context object. - * scratch: space to destroy - */ -SECP256K1_API void secp256k1_scratch_space_destroy( - const secp256k1_context *ctx, - secp256k1_scratch_space *scratch -) SECP256K1_ARG_NONNULL(1); - /** Parse a variable-length public key into the pubkey object. * * Returns: 1 if the public key was fully valid. @@ -679,12 +653,14 @@ SECP256K1_API int secp256k1_ecdsa_sign( const void *ndata ) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4); -/** Verify an ECDSA secret key. +/** Verify an elliptic curve secret key. * * A secret key is valid if it is not 0 and less than the secp256k1 curve order * when interpreted as an integer (most significant byte first). The * probability of choosing a 32-byte string uniformly at random which is an - * invalid secret key is negligible. + * invalid secret key is negligible. However, if it does happen it should + * be assumed that the randomness source is severely broken and there should + * be no retry. * * Returns: 1: secret key is valid * 0: secret key is invalid diff --git a/include/secp256k1_batch.h b/include/secp256k1_batch.h new file mode 100644 index 00000000000000..6068ec64e4fd64 --- /dev/null +++ b/include/secp256k1_batch.h @@ -0,0 +1,110 @@ +#ifndef SECP256K1_BATCH_H +#define SECP256K1_BATCH_H + +#include "secp256k1.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** This module implements a Batch Verification object that supports: + * + * 1. Schnorr signatures compliant with Bitcoin Improvement Proposal 340 + * "Schnorr Signatures for secp256k1" + * (https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki). + * + * 2. Taproot commitments compliant with Bitcoin Improvemtn Proposal 341 + * "Taproot: SegWit version 1 spending rules" + * (https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki). + */ + +/** Opaque data structure that holds information required for the batch verification. + * + * The purpose of this structure is to store elliptic curve points, their scalar + * coefficients, and scalar coefficient of generator point participating in Multi-Scalar + * Point Multiplication computation, which is done by `secp256k1_ecmult_strauss_batch_internal` + */ +typedef struct secp256k1_batch_struct secp256k1_batch; + +/** Create a secp256k1 batch object object (in dynamically allocated memory). + * + * This function uses malloc to allocate memory. It is guaranteed that malloc is + * called at most twice for every call of this function. + * + * Returns: a newly created batch object. + * Args: ctx: an existing `secp256k1_context` object. Not to be confused + * with the batch object object that this function creates. + * In: max_terms: Max number of (scalar, curve point) pairs that the batch + * object can store. + * 1. `batch_add_schnorrsig` - adds two scalar-point pairs to the batch + * 2. `batch_add_xonpub_tweak_check` - adds one scalar-point pair to the batch + * Hence, for adding n schnorrsigs and m tweak checks, `max_terms` + * should be set to 2*n + m. + * aux_rand16: 16 bytes of fresh randomness. While recommended to provide + * this, it is only supplemental to security and can be NULL. A + * NULL argument is treated the same as an all-zero one. + */ +SECP256K1_API secp256k1_batch* secp256k1_batch_create( + const secp256k1_context* ctx, + size_t max_terms, + const unsigned char *aux_rand16 +) SECP256K1_ARG_NONNULL(1) SECP256K1_WARN_UNUSED_RESULT; + +/** Destroy a secp256k1 batch object (created in dynamically allocated memory). + * + * The batch object's pointer may not be used afterwards. + * + * Args: ctx: a secp256k1 context object. + * batch: an existing batch object to destroy, constructed + * using `secp256k1_batch_create` + */ +SECP256K1_API void secp256k1_batch_destroy( + const secp256k1_context* ctx, + secp256k1_batch* batch +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2); + +/** Checks if a batch can be used by the `secp256k1_batch_add_*` APIs. + * + * Returns: 1: batch can be used by `secp256k1_batch_add_*` APIs. + * 0: batch cannot be used by `secp256k1_batch_add_*` APIs. + * + * Args: ctx: a secp256k1 context object (can be initialized for none). + * batch: a secp256k1 batch object that contains a set of schnorrsigs/tweaks. + * + * You are advised to check if `secp256k1_batch_usable` returns 1 before calling + * any `secp256k1_batch_add_*` API. We recommend this because `secp256k1_batch_add_*` + * will fail in two cases: + * - case 1: unparsable input (schnorrsig or tweak check) + * - case 2: unusable (or invalid) batch + * Calling `secp256k1_batch_usable` beforehand helps eliminate case 2 if + * `secp256k1_batch_add_*` fails. + * + * If you ignore the above advice, all the secp256k1_batch APIs will still + * work correctly. It simply makes it hard to understand the reason behind + * `secp256k1_batch_add_*` failure (if occurs). + */ +SECP256K1_API int secp256k1_batch_usable( + const secp256k1_context *ctx, + const secp256k1_batch *batch +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2); + +/** Verify the set of schnorr signatures or tweaked pubkeys present in the secp256k1_batch. + * + * Returns: 1: every schnorrsig/tweak (in batch) is valid + * 0: atleaset one of the schnorrsig/tweak (in batch) is invalid + * + * In particular, returns 1 if the batch object is empty (does not contain any schnorrsigs/tweaks). + * + * Args: ctx: a secp256k1 context object (can be initialized for none). + * batch: a secp256k1 batch object that contains a set of schnorrsigs/tweaks. + */ +SECP256K1_API int secp256k1_batch_verify( + const secp256k1_context *ctx, + secp256k1_batch *batch +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2); + +#ifdef __cplusplus +} +#endif + +#endif /* SECP256K1_BATCH_H */ diff --git a/include/secp256k1_extrakeys.h b/include/secp256k1_extrakeys.h index ad70b92f959cd2..48c98693cfaae1 100644 --- a/include/secp256k1_extrakeys.h +++ b/include/secp256k1_extrakeys.h @@ -19,7 +19,7 @@ extern "C" { * use secp256k1_xonly_pubkey_serialize and secp256k1_xonly_pubkey_parse. To * compare keys, use secp256k1_xonly_pubkey_cmp. */ -typedef struct { +typedef struct secp256k1_xonly_pubkey { unsigned char data[64]; } secp256k1_xonly_pubkey; @@ -30,7 +30,7 @@ typedef struct { * guaranteed to be portable between different platforms or versions. It is * however guaranteed to be 96 bytes in size, and can be safely copied/moved. */ -typedef struct { +typedef struct secp256k1_keypair { unsigned char data[96]; } secp256k1_keypair; @@ -155,10 +155,13 @@ SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_xonly_pubkey_tweak_add_ const unsigned char *tweak32 ) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(4) SECP256K1_ARG_NONNULL(5); -/** Compute the keypair for a secret key. +/** Compute the keypair for a valid secret key. * - * Returns: 1: secret was valid, keypair is ready to use - * 0: secret was invalid, try again with a different secret + * See the documentation of `secp256k1_ec_seckey_verify` for more information + * about the validity of secret keys. + * + * Returns: 1: secret key is valid + * 0: secret key is invalid * Args: ctx: pointer to a context object (not secp256k1_context_static). * Out: keypair: pointer to the created keypair. * In: seckey: pointer to a 32-byte secret key. diff --git a/include/secp256k1_musig.h b/include/secp256k1_musig.h new file mode 100644 index 00000000000000..11b8f08c88340d --- /dev/null +++ b/include/secp256k1_musig.h @@ -0,0 +1,588 @@ +#ifndef SECP256K1_MUSIG_H +#define SECP256K1_MUSIG_H + +#include "secp256k1_extrakeys.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +/** This module implements BIP 327 "MuSig2 for BIP340-compatible + * Multi-Signatures" + * (https://github.com/bitcoin/bips/blob/master/bip-0327.mediawiki) + * v1.0.0. You can find an example demonstrating the musig module in + * examples/musig.c. + * + * The module also supports BIP 341 ("Taproot") public key tweaking. + * + * It is recommended to read the documentation in this include file carefully. + * Further notes on API usage can be found in doc/musig.md + * + * Since the first version of MuSig is essentially replaced by MuSig2, we use + * MuSig, musig and MuSig2 synonymously unless noted otherwise. + */ + +/** Opaque data structures + * + * The exact representation of data inside the opaque data structures is + * implementation defined and not guaranteed to be portable between different + * platforms or versions. With the exception of `secp256k1_musig_secnonce`, the + * data structures can be safely copied/moved. If you need to convert to a + * format suitable for storage, transmission, or comparison, use the + * corresponding serialization and parsing functions. + */ + +/** Opaque data structure that caches information about public key aggregation. + * + * Guaranteed to be 197 bytes in size. No serialization and parsing functions + * (yet). + */ +typedef struct secp256k1_musig_keyagg_cache { + unsigned char data[197]; +} secp256k1_musig_keyagg_cache; + +/** Opaque data structure that holds a signer's _secret_ nonce. + * + * Guaranteed to be 132 bytes in size. + * + * WARNING: This structure MUST NOT be copied or read or written to directly. A + * signer who is online throughout the whole process and can keep this + * structure in memory can use the provided API functions for a safe standard + * workflow. + * + * Copying this data structure can result in nonce reuse which will leak the + * secret signing key. + */ +typedef struct secp256k1_musig_secnonce { + unsigned char data[132]; +} secp256k1_musig_secnonce; + +/** Opaque data structure that holds a signer's public nonce. + * + * Guaranteed to be 132 bytes in size. Serialized and parsed with + * `musig_pubnonce_serialize` and `musig_pubnonce_parse`. + */ +typedef struct secp256k1_musig_pubnonce { + unsigned char data[132]; +} secp256k1_musig_pubnonce; + +/** Opaque data structure that holds an aggregate public nonce. + * + * Guaranteed to be 132 bytes in size. Serialized and parsed with + * `musig_aggnonce_serialize` and `musig_aggnonce_parse`. + */ +typedef struct secp256k1_musig_aggnonce { + unsigned char data[132]; +} secp256k1_musig_aggnonce; + +/** Opaque data structure that holds a MuSig session. + * + * This structure is not required to be kept secret for the signing protocol to + * be secure. Guaranteed to be 133 bytes in size. No serialization and parsing + * functions (yet). + */ +typedef struct secp256k1_musig_session { + unsigned char data[133]; +} secp256k1_musig_session; + +/** Opaque data structure that holds a partial MuSig signature. + * + * Guaranteed to be 36 bytes in size. Serialized and parsed with + * `musig_partial_sig_serialize` and `musig_partial_sig_parse`. + */ +typedef struct secp256k1_musig_partial_sig { + unsigned char data[36]; +} secp256k1_musig_partial_sig; + +/** Parse a signer's public nonce. + * + * Returns: 1 when the nonce could be parsed, 0 otherwise. + * Args: ctx: pointer to a context object + * Out: nonce: pointer to a nonce object + * In: in66: pointer to the 66-byte nonce to be parsed + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_musig_pubnonce_parse( + const secp256k1_context *ctx, + secp256k1_musig_pubnonce *nonce, + const unsigned char *in66 +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); + +/** Serialize a signer's public nonce + * + * Returns: 1 always + * Args: ctx: pointer to a context object + * Out: out66: pointer to a 66-byte array to store the serialized nonce + * In: nonce: pointer to the nonce + */ +SECP256K1_API int secp256k1_musig_pubnonce_serialize( + const secp256k1_context *ctx, + unsigned char *out66, + const secp256k1_musig_pubnonce *nonce +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); + +/** Parse an aggregate public nonce. + * + * Returns: 1 when the nonce could be parsed, 0 otherwise. + * Args: ctx: pointer to a context object + * Out: nonce: pointer to a nonce object + * In: in66: pointer to the 66-byte nonce to be parsed + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_musig_aggnonce_parse( + const secp256k1_context *ctx, + secp256k1_musig_aggnonce *nonce, + const unsigned char *in66 +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); + +/** Serialize an aggregate public nonce + * + * Returns: 1 always + * Args: ctx: pointer to a context object + * Out: out66: pointer to a 66-byte array to store the serialized nonce + * In: nonce: pointer to the nonce + */ +SECP256K1_API int secp256k1_musig_aggnonce_serialize( + const secp256k1_context *ctx, + unsigned char *out66, + const secp256k1_musig_aggnonce *nonce +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); + +/** Parse a MuSig partial signature. + * + * Returns: 1 when the signature could be parsed, 0 otherwise. + * Args: ctx: pointer to a context object + * Out: sig: pointer to a signature object + * In: in32: pointer to the 32-byte signature to be parsed + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_musig_partial_sig_parse( + const secp256k1_context *ctx, + secp256k1_musig_partial_sig *sig, + const unsigned char *in32 +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); + +/** Serialize a MuSig partial signature + * + * Returns: 1 always + * Args: ctx: pointer to a context object + * Out: out32: pointer to a 32-byte array to store the serialized signature + * In: sig: pointer to the signature + */ +SECP256K1_API int secp256k1_musig_partial_sig_serialize( + const secp256k1_context *ctx, + unsigned char *out32, + const secp256k1_musig_partial_sig *sig +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); + +/** Computes an aggregate public key and uses it to initialize a keyagg_cache + * + * Different orders of `pubkeys` result in different `agg_pk`s. + * + * Before aggregating, the pubkeys can be sorted with `secp256k1_ec_pubkey_sort` + * which ensures the same `agg_pk` result for the same multiset of pubkeys. + * This is useful to do before `pubkey_agg`, such that the order of pubkeys + * does not affect the aggregate public key. + * + * Returns: 0 if the arguments are invalid, 1 otherwise + * Args: ctx: pointer to a context object + * Out: agg_pk: the MuSig-aggregated x-only public key. If you do not need it, + * this arg can be NULL. + * keyagg_cache: if non-NULL, pointer to a musig_keyagg_cache struct that + * is required for signing (or observing the signing session + * and verifying partial signatures). + * In: pubkeys: input array of pointers to public keys to aggregate. The order + * is important; a different order will result in a different + * aggregate public key. + * n_pubkeys: length of pubkeys array. Must be greater than 0. + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_musig_pubkey_agg( + const secp256k1_context *ctx, + secp256k1_xonly_pubkey *agg_pk, + secp256k1_musig_keyagg_cache *keyagg_cache, + const secp256k1_pubkey * const *pubkeys, + size_t n_pubkeys +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(4); + +/** Obtain the aggregate public key from a keyagg_cache. + * + * This is only useful if you need the non-xonly public key, in particular for + * plain (non-xonly) tweaking or batch-verifying multiple key aggregations + * (not implemented). + * + * Returns: 0 if the arguments are invalid, 1 otherwise + * Args: ctx: pointer to a context object + * Out: agg_pk: the MuSig-aggregated public key. + * In: keyagg_cache: pointer to a `musig_keyagg_cache` struct initialized by + * `musig_pubkey_agg` + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_musig_pubkey_get( + const secp256k1_context *ctx, + secp256k1_pubkey *agg_pk, + const secp256k1_musig_keyagg_cache *keyagg_cache +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); + +/** Apply plain "EC" tweaking to a public key in a given keyagg_cache by adding + * the generator multiplied with `tweak32` to it. This is useful for deriving + * child keys from an aggregate public key via BIP 32 where `tweak32` is set to + * a hash as defined in BIP 32. + * + * Callers are responsible for deriving `tweak32` in a way that does not reduce + * the security of MuSig (for example, by following BIP 32). + * + * The tweaking method is the same as `secp256k1_ec_pubkey_tweak_add`. So after + * the following pseudocode buf and buf2 have identical contents (absent + * earlier failures). + * + * secp256k1_musig_pubkey_agg(..., keyagg_cache, pubkeys, ...) + * secp256k1_musig_pubkey_get(..., agg_pk, keyagg_cache) + * secp256k1_musig_pubkey_ec_tweak_add(..., output_pk, tweak32, keyagg_cache) + * secp256k1_ec_pubkey_serialize(..., buf, ..., output_pk, ...) + * secp256k1_ec_pubkey_tweak_add(..., agg_pk, tweak32) + * secp256k1_ec_pubkey_serialize(..., buf2, ..., agg_pk, ...) + * + * This function is required if you want to _sign_ for a tweaked aggregate key. + * If you are only computing a public key but not intending to create a + * signature for it, use `secp256k1_ec_pubkey_tweak_add` instead. + * + * Returns: 0 if the arguments are invalid, 1 otherwise + * Args: ctx: pointer to a context object + * Out: output_pubkey: pointer to a public key to store the result. Will be set + * to an invalid value if this function returns 0. If you + * do not need it, this arg can be NULL. + * In/Out: keyagg_cache: pointer to a `musig_keyagg_cache` struct initialized by + * `musig_pubkey_agg` + * In: tweak32: pointer to a 32-byte tweak. The tweak is valid if it passes + * `secp256k1_ec_seckey_verify` and is not equal to the + * secret key corresponding to the public key represented + * by keyagg_cache or its negation. For uniformly random + * 32-byte arrays the chance of being invalid is + * negligible (around 1 in 2^128). + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_musig_pubkey_ec_tweak_add( + const secp256k1_context *ctx, + secp256k1_pubkey *output_pubkey, + secp256k1_musig_keyagg_cache *keyagg_cache, + const unsigned char *tweak32 +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4); + +/** Apply x-only tweaking to a public key in a given keyagg_cache by adding the + * generator multiplied with `tweak32` to it. This is useful for creating + * Taproot outputs where `tweak32` is set to a TapTweak hash as defined in BIP + * 341. + * + * Callers are responsible for deriving `tweak32` in a way that does not reduce + * the security of MuSig (for example, by following Taproot BIP 341). + * + * The tweaking method is the same as `secp256k1_xonly_pubkey_tweak_add`. So in + * the following pseudocode xonly_pubkey_tweak_add_check (absent earlier + * failures) returns 1. + * + * secp256k1_musig_pubkey_agg(..., agg_pk, keyagg_cache, pubkeys, ...) + * secp256k1_musig_pubkey_xonly_tweak_add(..., output_pk, keyagg_cache, tweak32) + * secp256k1_xonly_pubkey_serialize(..., buf, output_pk) + * secp256k1_xonly_pubkey_tweak_add_check(..., buf, ..., agg_pk, tweak32) + * + * This function is required if you want to _sign_ for a tweaked aggregate key. + * If you are only computing a public key but not intending to create a + * signature for it, use `secp256k1_xonly_pubkey_tweak_add` instead. + * + * Returns: 0 if the arguments are invalid, 1 otherwise + * Args: ctx: pointer to a context object + * Out: output_pubkey: pointer to a public key to store the result. Will be set + * to an invalid value if this function returns 0. If you + * do not need it, this arg can be NULL. + * In/Out: keyagg_cache: pointer to a `musig_keyagg_cache` struct initialized by + * `musig_pubkey_agg` + * In: tweak32: pointer to a 32-byte tweak. The tweak is valid if it passes + * `secp256k1_ec_seckey_verify` and is not equal to the + * secret key corresponding to the public key represented + * by keyagg_cache or its negation. For uniformly random + * 32-byte arrays the chance of being invalid is + * negligible (around 1 in 2^128). + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_musig_pubkey_xonly_tweak_add( + const secp256k1_context *ctx, + secp256k1_pubkey *output_pubkey, + secp256k1_musig_keyagg_cache *keyagg_cache, + const unsigned char *tweak32 +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4); + +/** Starts a signing session by generating a nonce + * + * This function outputs a secret nonce that will be required for signing and a + * corresponding public nonce that is intended to be sent to other signers. + * + * MuSig differs from regular Schnorr signing in that implementers _must_ take + * special care to not reuse a nonce. This can be ensured by following these rules: + * + * 1. Each call to this function must have a UNIQUE session_secrand32 that must + * NOT BE REUSED in subsequent calls to this function and must be KEPT + * SECRET (even from other signers). + * 2. If you already know the seckey, message or aggregate public key + * cache, they can be optionally provided to derive the nonce and increase + * misuse-resistance. The extra_input32 argument can be used to provide + * additional data that does not repeat in normal scenarios, such as the + * current time. + * 3. Avoid copying (or serializing) the secnonce. This reduces the possibility + * that it is used more than once for signing. + * + * If you don't have access to good randomness for session_secrand32, but you + * have access to a non-repeating counter, then see + * secp256k1_musig_nonce_gen_counter. + * + * Remember that nonce reuse will leak the secret key! + * Note that using the same seckey for multiple MuSig sessions is fine. + * + * Returns: 0 if the arguments are invalid and 1 otherwise + * Args: ctx: pointer to a context object (not secp256k1_context_static) + * Out: secnonce: pointer to a structure to store the secret nonce + * pubnonce: pointer to a structure to store the public nonce + * In/Out: + * session_secrand32: a 32-byte session_secrand32 as explained above. Must be unique to this + * call to secp256k1_musig_nonce_gen and must be uniformly + * random. If the function call is successful, the + * session_secrand32 buffer is invalidated to prevent reuse. + * In: + * seckey: the 32-byte secret key that will later be used for signing, if + * already known (can be NULL) + * pubkey: public key of the signer creating the nonce. The secnonce + * output of this function cannot be used to sign for any + * other public key. While the public key should correspond + * to the provided seckey, a mismatch will not cause the + * function to return 0. + * msg32: the 32-byte message that will later be signed, if already known + * (can be NULL) + * keyagg_cache: pointer to the keyagg_cache that was used to create the aggregate + * (and potentially tweaked) public key if already known + * (can be NULL) + * extra_input32: an optional 32-byte array that is input to the nonce + * derivation function (can be NULL) + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_musig_nonce_gen( + const secp256k1_context *ctx, + secp256k1_musig_secnonce *secnonce, + secp256k1_musig_pubnonce *pubnonce, + unsigned char *session_secrand32, + const unsigned char *seckey, + const secp256k1_pubkey *pubkey, + const unsigned char *msg32, + const secp256k1_musig_keyagg_cache *keyagg_cache, + const unsigned char *extra_input32 +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4) SECP256K1_ARG_NONNULL(6); + + +/** Alternative way to generate a nonce and start a signing session + * + * This function outputs a secret nonce that will be required for signing and a + * corresponding public nonce that is intended to be sent to other signers. + * + * This function differs from `secp256k1_musig_nonce_gen` by accepting a + * non-repeating counter value instead of a secret random value. This requires + * that a secret key is provided to `secp256k1_musig_nonce_gen_counter` + * (through the keypair argument), as opposed to `secp256k1_musig_nonce_gen` + * where the seckey argument is optional. + * + * MuSig differs from regular Schnorr signing in that implementers _must_ take + * special care to not reuse a nonce. This can be ensured by following these rules: + * + * 1. The nonrepeating_cnt argument must be a counter value that never repeats, + * i.e., you must never call `secp256k1_musig_nonce_gen_counter` twice with + * the same keypair and nonrepeating_cnt value. For example, this implies + * that if the same keypair is used with `secp256k1_musig_nonce_gen_counter` + * on multiple devices, none of the devices should have the same counter + * value as any other device. + * 2. If the seckey, message or aggregate public key cache is already available + * at this stage, any of these can be optionally provided, in which case + * they will be used in the derivation of the nonce and increase + * misuse-resistance. The extra_input32 argument can be used to provide + * additional data that does not repeat in normal scenarios, such as the + * current time. + * 3. Avoid copying (or serializing) the secnonce. This reduces the possibility + * that it is used more than once for signing. + * + * Remember that nonce reuse will leak the secret key! + * Note that using the same keypair for multiple MuSig sessions is fine. + * + * Returns: 0 if the arguments are invalid and 1 otherwise + * Args: ctx: pointer to a context object (not secp256k1_context_static) + * Out: secnonce: pointer to a structure to store the secret nonce + * pubnonce: pointer to a structure to store the public nonce + * In: + * nonrepeating_cnt: the value of a counter as explained above. Must be + * unique to this call to secp256k1_musig_nonce_gen. + * keypair: keypair of the signer creating the nonce. The secnonce + * output of this function cannot be used to sign for any + * other keypair. + * msg32: the 32-byte message that will later be signed, if already known + * (can be NULL) + * keyagg_cache: pointer to the keyagg_cache that was used to create the aggregate + * (and potentially tweaked) public key if already known + * (can be NULL) + * extra_input32: an optional 32-byte array that is input to the nonce + * derivation function (can be NULL) + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_musig_nonce_gen_counter( + const secp256k1_context *ctx, + secp256k1_musig_secnonce *secnonce, + secp256k1_musig_pubnonce *pubnonce, + uint64_t nonrepeating_cnt, + const secp256k1_keypair *keypair, + const unsigned char *msg32, + const secp256k1_musig_keyagg_cache *keyagg_cache, + const unsigned char *extra_input32 +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(5); + +/** Aggregates the nonces of all signers into a single nonce + * + * This can be done by an untrusted party to reduce the communication + * between signers. Instead of everyone sending nonces to everyone else, there + * can be one party receiving all nonces, aggregating the nonces with this + * function and then sending only the aggregate nonce back to the signers. + * + * If the aggregator does not compute the aggregate nonce correctly, the final + * signature will be invalid. + * + * Returns: 0 if the arguments are invalid, 1 otherwise + * Args: ctx: pointer to a context object + * Out: aggnonce: pointer to an aggregate public nonce object for + * musig_nonce_process + * In: pubnonces: array of pointers to public nonces sent by the + * signers + * n_pubnonces: number of elements in the pubnonces array. Must be + * greater than 0. + */ +SECP256K1_API int secp256k1_musig_nonce_agg( + const secp256k1_context *ctx, + secp256k1_musig_aggnonce *aggnonce, + const secp256k1_musig_pubnonce * const *pubnonces, + size_t n_pubnonces +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); + +/** Takes the aggregate nonce and creates a session that is required for signing + * and verification of partial signatures. + * + * Returns: 0 if the arguments are invalid, 1 otherwise + * Args: ctx: pointer to a context object + * Out: session: pointer to a struct to store the session + * In: aggnonce: pointer to an aggregate public nonce object that is the + * output of musig_nonce_agg + * msg32: the 32-byte message to sign + * keyagg_cache: pointer to the keyagg_cache that was used to create the + * aggregate (and potentially tweaked) pubkey + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_musig_nonce_process( + const secp256k1_context *ctx, + secp256k1_musig_session *session, + const secp256k1_musig_aggnonce *aggnonce, + const unsigned char *msg32, + const secp256k1_musig_keyagg_cache *keyagg_cache +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4) SECP256K1_ARG_NONNULL(5); + +/** Produces a partial signature + * + * This function overwrites the given secnonce with zeros and will abort if given a + * secnonce that is all zeros. This is a best effort attempt to protect against nonce + * reuse. However, this is of course easily defeated if the secnonce has been + * copied (or serialized). Remember that nonce reuse will leak the secret key! + * + * For signing to succeed, the secnonce provided to this function must have + * been generated for the provided keypair. This means that when signing for a + * keypair consisting of a seckey and pubkey, the secnonce must have been + * created by calling musig_nonce_gen with that pubkey. Otherwise, the + * illegal_callback is called. + * + * This function does not verify the output partial signature, deviating from + * the BIP 327 specification. It is recommended to verify the output partial + * signature with `secp256k1_musig_partial_sig_verify` to prevent random or + * adversarially provoked computation errors. + * + * Returns: 0 if the arguments are invalid or the provided secnonce has already + * been used for signing, 1 otherwise + * Args: ctx: pointer to a context object + * Out: partial_sig: pointer to struct to store the partial signature + * In/Out: secnonce: pointer to the secnonce struct created in + * musig_nonce_gen that has been never used in a + * partial_sign call before and has been created for the + * keypair + * In: keypair: pointer to keypair to sign the message with + * keyagg_cache: pointer to the keyagg_cache that was output when the + * aggregate public key for this session + * session: pointer to the session that was created with + * musig_nonce_process + */ +SECP256K1_API int secp256k1_musig_partial_sign( + const secp256k1_context *ctx, + secp256k1_musig_partial_sig *partial_sig, + secp256k1_musig_secnonce *secnonce, + const secp256k1_keypair *keypair, + const secp256k1_musig_keyagg_cache *keyagg_cache, + const secp256k1_musig_session *session +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4) SECP256K1_ARG_NONNULL(5) SECP256K1_ARG_NONNULL(6); + +/** Verifies an individual signer's partial signature + * + * The signature is verified for a specific signing session. In order to avoid + * accidentally verifying a signature from a different or non-existing signing + * session, you must ensure the following: + * 1. The `keyagg_cache` argument is identical to the one used to create the + * `session` with `musig_nonce_process`. + * 2. The `pubkey` argument must be identical to the one sent by the signer + * before aggregating it with `musig_pubkey_agg` to create the + * `keyagg_cache`. + * 3. The `pubnonce` argument must be identical to the one sent by the signer + * before aggregating it with `musig_nonce_agg` and using the result to + * create the `session` with `musig_nonce_process`. + * + * It is not required to call this function in regular MuSig sessions, because + * if any partial signature does not verify, the final signature will not + * verify either, so the problem will be caught. However, this function + * provides the ability to identify which specific partial signature fails + * verification. + * + * Returns: 0 if the arguments are invalid or the partial signature does not + * verify, 1 otherwise + * Args ctx: pointer to a context object + * In: partial_sig: pointer to partial signature to verify, sent by + * the signer associated with `pubnonce` and `pubkey` + * pubnonce: public nonce of the signer in the signing session + * pubkey: public key of the signer in the signing session + * keyagg_cache: pointer to the keyagg_cache that was output when the + * aggregate public key for this signing session + * session: pointer to the session that was created with + * `musig_nonce_process` + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_musig_partial_sig_verify( + const secp256k1_context *ctx, + const secp256k1_musig_partial_sig *partial_sig, + const secp256k1_musig_pubnonce *pubnonce, + const secp256k1_pubkey *pubkey, + const secp256k1_musig_keyagg_cache *keyagg_cache, + const secp256k1_musig_session *session +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4) SECP256K1_ARG_NONNULL(5) SECP256K1_ARG_NONNULL(6); + +/** Aggregates partial signatures + * + * Returns: 0 if the arguments are invalid, 1 otherwise (which does NOT mean + * the resulting signature verifies). + * Args: ctx: pointer to a context object + * Out: sig64: complete (but possibly invalid) Schnorr signature + * In: session: pointer to the session that was created with + * musig_nonce_process + * partial_sigs: array of pointers to partial signatures to aggregate + * n_sigs: number of elements in the partial_sigs array. Must be + * greater than 0. + */ +SECP256K1_API int secp256k1_musig_partial_sig_agg( + const secp256k1_context *ctx, + unsigned char *sig64, + const secp256k1_musig_session *session, + const secp256k1_musig_partial_sig * const *partial_sigs, + size_t n_sigs +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/secp256k1_recovery.h b/include/secp256k1_recovery.h index 341b8bac63b56d..93a2e4ccbde167 100644 --- a/include/secp256k1_recovery.h +++ b/include/secp256k1_recovery.h @@ -7,7 +7,7 @@ extern "C" { #endif -/** Opaque data structured that holds a parsed ECDSA signature, +/** Opaque data structure that holds a parsed ECDSA signature, * supporting pubkey recovery. * * The exact representation of data inside is implementation defined and not @@ -21,7 +21,7 @@ extern "C" { * recoverability) will have identical representation, so they can be * memcmp'ed. */ -typedef struct { +typedef struct secp256k1_ecdsa_recoverable_signature { unsigned char data[65]; } secp256k1_ecdsa_recoverable_signature; diff --git a/include/secp256k1_schnorrsig.h b/include/secp256k1_schnorrsig.h index 23163de2fb0028..013d4ee73d76c4 100644 --- a/include/secp256k1_schnorrsig.h +++ b/include/secp256k1_schnorrsig.h @@ -79,7 +79,7 @@ SECP256K1_API const secp256k1_nonce_function_hardened secp256k1_nonce_function_b * secp256k1_nonce_function_bip340 is used, then ndata must be a * pointer to 32-byte auxiliary randomness as per BIP-340. */ -typedef struct { +typedef struct secp256k1_schnorrsig_extraparams { unsigned char magic[4]; secp256k1_nonce_function_hardened noncefp; void *ndata; diff --git a/include/secp256k1_schnorrsig_batch.h b/include/secp256k1_schnorrsig_batch.h new file mode 100644 index 00000000000000..ffd8399ee77354 --- /dev/null +++ b/include/secp256k1_schnorrsig_batch.h @@ -0,0 +1,42 @@ +#ifndef SECP256K1_SCHNORRSIG_BATCH_H +#define SECP256K1_SCHNORRSIG_BATCH_H + +#include "secp256k1.h" +#include "secp256k1_schnorrsig.h" +#include "secp256k1_batch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** This header file implements batch verification functionality for Schnorr + * signature (see include/secp256k1_schnorrsig.h). + */ + +/** Adds a Schnorr signature to the batch object (secp256k1_batch) + * defined in the Batch module (see include/secp256k1_batch.h). + * + * Returns: 1: successfully added the signature to the batch + * 0: unparseable signature or unusable batch (according to + * secp256k1_batch_usable). + * Args: ctx: a secp256k1 context object (can be initialized for none). + * batch: a secp256k1 batch object created using `secp256k1_batch_create`. + * In: sig64: pointer to the 64-byte signature to verify. + * msg: the message being verified. Can only be NULL if msglen is 0. + * msglen: length of the message. + * pubkey: pointer to an x-only public key to verify with (cannot be NULL). + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_batch_add_schnorrsig( + const secp256k1_context* ctx, + secp256k1_batch *batch, + const unsigned char *sig64, + const unsigned char *msg, + size_t msglen, + const secp256k1_xonly_pubkey *pubkey +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(6); + +#ifdef __cplusplus +} +#endif + +#endif /* SECP256K1_SCHNORRSIG_BATCH_H */ diff --git a/include/secp256k1_tweak_check_batch.h b/include/secp256k1_tweak_check_batch.h new file mode 100644 index 00000000000000..4ae9027fa4a267 --- /dev/null +++ b/include/secp256k1_tweak_check_batch.h @@ -0,0 +1,50 @@ +#ifndef SECP256K1_TWEAK_CHECK_BATCH_H +#define SECP256K1_TWEAK_CHECK_BATCH_H + +#include "secp256k1.h" +#include "secp256k1_extrakeys.h" +#include "secp256k1_batch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** This header file implements batch verification functionality for + * x-only tweaked public key check (see include/secp256k1_extrakeys.h). + */ + +/** Adds a x-only tweaked pubkey check to the batch object (secp256k1_batch) + * defined in the Batch module (see include/secp256k1_batch.h). + * + * The tweaked pubkey is represented by its 32-byte x-only serialization and + * its pk_parity, which can both be obtained by converting the result of + * tweak_add to a secp256k1_xonly_pubkey. + * + * Returns: 1: successfully added the tweaked pubkey check to the batch + * 0: unparseable tweaked pubkey check or unusable batch (according to + * secp256k1_batch_usable). + * Args: ctx: pointer to a context object initialized for verification. + * batch: a secp256k1 batch object created using `secp256k1_batch_create`. + * In: tweaked_pubkey32: pointer to a serialized xonly_pubkey. + * tweaked_pk_parity: the parity of the tweaked pubkey (whose serialization + * is passed in as tweaked_pubkey32). This must match the + * pk_parity value that is returned when calling + * secp256k1_xonly_pubkey_from_pubkey with the tweaked pubkey, or + * the final secp256k1_batch_verify on this batch will fail. + * internal_pubkey: pointer to an x-only public key object to apply the tweak to. + * tweak32: pointer to a 32-byte tweak. + */ +SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_batch_add_xonlypub_tweak_check( + const secp256k1_context* ctx, + secp256k1_batch *batch, + const unsigned char *tweaked_pubkey32, + int tweaked_pk_parity, + const secp256k1_xonly_pubkey *internal_pubkey, + const unsigned char *tweak32 +) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(5) SECP256K1_ARG_NONNULL(6); + +#ifdef __cplusplus +} +#endif + +#endif /* SECP256K1_TWEAK_CHECK_BATCH_H */ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4cbaeb914d42af..dac9fc2a37e7e6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -87,12 +87,12 @@ endif() if(SECP256K1_BUILD_TESTS) add_executable(noverify_tests tests.c) target_link_libraries(noverify_tests secp256k1_precomputed secp256k1_asm) - add_test(NAME noverify_tests COMMAND noverify_tests) + add_test(NAME secp256k1_noverify_tests COMMAND noverify_tests) if(NOT CMAKE_BUILD_TYPE STREQUAL "Coverage") add_executable(tests tests.c) target_compile_definitions(tests PRIVATE VERIFY) target_link_libraries(tests secp256k1_precomputed secp256k1_asm) - add_test(NAME tests COMMAND tests) + add_test(NAME secp256k1_tests COMMAND tests) endif() endif() @@ -101,7 +101,7 @@ if(SECP256K1_BUILD_EXHAUSTIVE_TESTS) add_executable(exhaustive_tests tests_exhaustive.c) target_link_libraries(exhaustive_tests secp256k1_asm) target_compile_definitions(exhaustive_tests PRIVATE $<$>:VERIFY>) - add_test(NAME exhaustive_tests COMMAND exhaustive_tests) + add_test(NAME secp256k1_exhaustive_tests COMMAND exhaustive_tests) endif() if(SECP256K1_BUILD_CTIME_TESTS) @@ -132,9 +132,15 @@ 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_MUSIG) + list(APPEND ${PROJECT_NAME}_headers "${PROJECT_SOURCE_DIR}/include/secp256k1_musig.h") + endif() if(SECP256K1_ENABLE_MODULE_ELLSWIFT) list(APPEND ${PROJECT_NAME}_headers "${PROJECT_SOURCE_DIR}/include/secp256k1_ellswift.h") endif() + if(SECP256K1_ENABLE_MODULE_BATCH) + list(APPEND ${PROJECT_NAME}_headers "${PROJECT_SOURCE_DIR}/include/secp256k1_batch.h" "${PROJECT_SOURCE_DIR}/include/secp256k1_schnorrsig_batch.h" "${PROJECT_SOURCE_DIR}/include/secp256k1_tweak_check_batch.h") + endif() install(FILES ${${PROJECT_NAME}_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) diff --git a/src/bench.c b/src/bench.c index 1127df67ae0ee6..0a9f287e3da3e5 100644 --- a/src/bench.c +++ b/src/bench.c @@ -42,17 +42,27 @@ static void help(int default_iters) { printf(" ec_keygen : EC public key generation\n"); #ifdef ENABLE_MODULE_RECOVERY - printf(" ecdsa_recover : ECDSA public key recovery algorithm\n"); + printf(" ecdsa_recover : ECDSA public key recovery algorithm\n"); #endif #ifdef ENABLE_MODULE_ECDH - printf(" ecdh : ECDH key exchange algorithm\n"); + printf(" ecdh : ECDH key exchange algorithm\n"); #endif #ifdef ENABLE_MODULE_SCHNORRSIG - printf(" schnorrsig : all Schnorr signature algorithms (sign, verify)\n"); - printf(" schnorrsig_sign : Schnorr sigining algorithm\n"); - printf(" schnorrsig_verify : Schnorr verification algorithm\n"); + printf(" schnorrsig : all Schnorr signature algorithms (sign, verify)\n"); + printf(" schnorrsig_sign : Schnorr sigining algorithm\n"); + printf(" schnorrsig_verify : Schnorr verification algorithm\n"); +# ifdef ENABLE_MODULE_BATCH + printf(" schnorrsig_batch_verify : Batch verification of Schnorr signatures\n"); +# endif +#endif + +#ifdef ENABLE_MODULE_EXTRAKEYS + printf(" tweak_add_check : Checks if tweaked x-only pubkey is valid\n"); +# ifdef ENABLE_MODULE_BATCH + printf(" tweak_check_batch_verify : Batch verification of tweaked x-only pubkeys check\n"); +# endif #endif #ifdef ENABLE_MODULE_ELLSWIFT @@ -157,6 +167,10 @@ static void bench_keygen_run(void *arg, int iters) { # include "modules/recovery/bench_impl.h" #endif +#ifdef ENABLE_MODULE_EXTRAKEYS +# include "modules/extrakeys/bench_impl.h" +#endif + #ifdef ENABLE_MODULE_SCHNORRSIG # include "modules/schnorrsig/bench_impl.h" #endif @@ -179,7 +193,8 @@ int main(int argc, char** argv) { char* valid_args[] = {"ecdsa", "verify", "ecdsa_verify", "sign", "ecdsa_sign", "ecdh", "recover", "ecdsa_recover", "schnorrsig", "schnorrsig_verify", "schnorrsig_sign", "ec", "keygen", "ec_keygen", "ellswift", "encode", "ellswift_encode", "decode", - "ellswift_decode", "ellswift_keygen", "ellswift_ecdh"}; + "ellswift_decode", "ellswift_keygen", "ellswift_ecdh", + "batch_verify", "schnorrsig_batch_verify", "extrakeys", "tweak_add_check", "tweak_check_batch_verify"}; size_t valid_args_size = sizeof(valid_args)/sizeof(valid_args[0]); int invalid_args = have_invalid_args(argc, argv, valid_args, valid_args_size); @@ -221,6 +236,14 @@ int main(int argc, char** argv) { } #endif +#ifndef ENABLE_MODULE_BATCH + if (have_flag(argc, argv, "batch_verify") || have_flag(argc, argv, "schnorrsig_batch_verify") || have_flag(argc, argv, "tweak_check_batch_verify")) { + fprintf(stderr, "./bench: Schnorr signatures module not enabled.\n"); + fprintf(stderr, "Use ./configure --enable-module-schnorrsig.\n\n"); + return 1; + } +#endif + #ifndef ENABLE_MODULE_ELLSWIFT if (have_flag(argc, argv, "ellswift") || have_flag(argc, argv, "ellswift_encode") || have_flag(argc, argv, "ellswift_decode") || have_flag(argc, argv, "encode") || have_flag(argc, argv, "decode") || have_flag(argc, argv, "ellswift_keygen") || @@ -265,6 +288,11 @@ int main(int argc, char** argv) { run_recovery_bench(iters, argc, argv); #endif +#ifdef ENABLE_MODULE_EXTRAKEYS + /* Extrakeys benchmarks */ + run_extrakeys_bench(iters, argc, argv); +#endif + #ifdef ENABLE_MODULE_SCHNORRSIG /* Schnorr signature benchmarks */ run_schnorrsig_bench(iters, argc, argv); diff --git a/src/bench.h b/src/bench.h index 1564b1a1760b89..abb5f883443fd2 100644 --- a/src/bench.h +++ b/src/bench.h @@ -120,7 +120,7 @@ static void run_benchmark(char *name, void (*benchmark)(void*, int), void (*setu sum += total; } /* ',' is used as a column delimiter */ - printf("%-30s, ", name); + printf("%-35s, ", name); print_number(min * FP_MULT / iter); printf(" , "); print_number(((sum * FP_MULT) / count) / iter); @@ -181,7 +181,7 @@ static void print_output_table_header_row(void) { char* min_str = " Min(us) "; /* center alignment */ char* avg_str = " Avg(us) "; char* max_str = " Max(us) "; - printf("%-30s,%-15s,%-15s,%-15s\n", bench_str, min_str, avg_str, max_str); + printf("%-35s,%-15s,%-15s,%-15s\n", bench_str, min_str, avg_str, max_str); printf("\n"); } diff --git a/src/bench_ecmult.c b/src/bench_ecmult.c index 7dc52ad87be4c1..3974af75f445c0 100644 --- a/src/bench_ecmult.c +++ b/src/bench_ecmult.c @@ -71,7 +71,7 @@ static void bench_ecmult_teardown_helper(bench_data* data, size_t* seckey_offset secp256k1_scalar sum_scalars; secp256k1_gej_set_infinity(&sum_output); - secp256k1_scalar_clear(&sum_scalars); + secp256k1_scalar_set_int(&sum_scalars, 0); for (i = 0; i < iters; ++i) { secp256k1_gej_add_var(&sum_output, &sum_output, &data->output[i], NULL); if (scalar_gen_offset != NULL) { diff --git a/src/ctime_tests.c b/src/ctime_tests.c index a384e831529dad..bbde863d9691b3 100644 --- a/src/ctime_tests.c +++ b/src/ctime_tests.c @@ -5,6 +5,7 @@ ***********************************************************************/ #include +#include #include "../include/secp256k1.h" #include "assumptions.h" @@ -30,6 +31,10 @@ #include "../include/secp256k1_schnorrsig.h" #endif +#ifdef ENABLE_MODULE_MUSIG +#include "../include/secp256k1_musig.h" +#endif + #ifdef ENABLE_MODULE_ELLSWIFT #include "../include/secp256k1_ellswift.h" #endif @@ -180,6 +185,58 @@ static void run_tests(secp256k1_context *ctx, unsigned char *key) { CHECK(ret == 1); #endif +#ifdef ENABLE_MODULE_MUSIG + { + secp256k1_pubkey pk; + const secp256k1_pubkey *pk_ptr[1]; + secp256k1_xonly_pubkey agg_pk; + unsigned char session_secrand[32]; + uint64_t nonrepeating_cnt = 0; + secp256k1_musig_secnonce secnonce; + secp256k1_musig_pubnonce pubnonce; + const secp256k1_musig_pubnonce *pubnonce_ptr[1]; + secp256k1_musig_aggnonce aggnonce; + secp256k1_musig_keyagg_cache cache; + secp256k1_musig_session session; + secp256k1_musig_partial_sig partial_sig; + unsigned char extra_input[32]; + + pk_ptr[0] = &pk; + pubnonce_ptr[0] = &pubnonce; + SECP256K1_CHECKMEM_DEFINE(key, 32); + memcpy(session_secrand, key, sizeof(session_secrand)); + session_secrand[0] = session_secrand[0] + 1; + memcpy(extra_input, key, sizeof(extra_input)); + extra_input[0] = extra_input[0] + 2; + + CHECK(secp256k1_keypair_create(ctx, &keypair, key)); + CHECK(secp256k1_keypair_pub(ctx, &pk, &keypair)); + CHECK(secp256k1_musig_pubkey_agg(ctx, &agg_pk, &cache, pk_ptr, 1)); + + SECP256K1_CHECKMEM_UNDEFINE(key, 32); + SECP256K1_CHECKMEM_UNDEFINE(session_secrand, sizeof(session_secrand)); + SECP256K1_CHECKMEM_UNDEFINE(extra_input, sizeof(extra_input)); + ret = secp256k1_musig_nonce_gen(ctx, &secnonce, &pubnonce, session_secrand, key, &pk, msg, &cache, extra_input); + SECP256K1_CHECKMEM_DEFINE(&ret, sizeof(ret)); + CHECK(ret == 1); + ret = secp256k1_musig_nonce_gen_counter(ctx, &secnonce, &pubnonce, nonrepeating_cnt, &keypair, msg, &cache, extra_input); + SECP256K1_CHECKMEM_DEFINE(&ret, sizeof(ret)); + CHECK(ret == 1); + + CHECK(secp256k1_musig_nonce_agg(ctx, &aggnonce, pubnonce_ptr, 1)); + /* Make sure that previous tests don't undefine msg. It's not used as a secret here. */ + SECP256K1_CHECKMEM_DEFINE(msg, sizeof(msg)); + CHECK(secp256k1_musig_nonce_process(ctx, &session, &aggnonce, msg, &cache) == 1); + + ret = secp256k1_keypair_create(ctx, &keypair, key); + SECP256K1_CHECKMEM_DEFINE(&ret, sizeof(ret)); + CHECK(ret == 1); + ret = secp256k1_musig_partial_sign(ctx, &partial_sig, &secnonce, &keypair, &cache, &session); + SECP256K1_CHECKMEM_DEFINE(&ret, sizeof(ret)); + CHECK(ret == 1); + } +#endif + #ifdef ENABLE_MODULE_ELLSWIFT SECP256K1_CHECKMEM_UNDEFINE(key, 32); ret = secp256k1_ellswift_create(ctx, ellswift, key, NULL); diff --git a/src/ecmult_gen_impl.h b/src/ecmult_gen_impl.h index 2fbf623ca3b14f..070a12130870c5 100644 --- a/src/ecmult_gen_impl.h +++ b/src/ecmult_gen_impl.h @@ -277,8 +277,8 @@ static void secp256k1_ecmult_gen(const secp256k1_ecmult_gen_context *ctx, secp25 /* Cleanup. */ secp256k1_fe_clear(&neg); secp256k1_ge_clear(&add); - memset(&adds, 0, sizeof(adds)); - memset(&recoded, 0, sizeof(recoded)); + secp256k1_memclear(&adds, sizeof(adds)); + secp256k1_memclear(&recoded, sizeof(recoded)); } /* Setup blinding values for secp256k1_ecmult_gen. */ @@ -310,7 +310,7 @@ static void secp256k1_ecmult_gen_blind(secp256k1_ecmult_gen_context *ctx, const VERIFY_CHECK(seed32 != NULL); memcpy(keydata + 32, seed32, 32); secp256k1_rfc6979_hmac_sha256_initialize(&rng, keydata, 64); - memset(keydata, 0, sizeof(keydata)); + secp256k1_memclear(keydata, sizeof(keydata)); /* Compute projective blinding factor (cannot be 0). */ secp256k1_rfc6979_hmac_sha256_generate(&rng, nonce32, 32); @@ -325,16 +325,17 @@ static void secp256k1_ecmult_gen_blind(secp256k1_ecmult_gen_context *ctx, const * which secp256k1_gej_add_ge cannot handle. */ secp256k1_scalar_cmov(&b, &secp256k1_scalar_one, secp256k1_scalar_is_zero(&b)); secp256k1_rfc6979_hmac_sha256_finalize(&rng); - memset(nonce32, 0, 32); secp256k1_ecmult_gen(ctx, &gb, &b); secp256k1_scalar_negate(&b, &b); secp256k1_scalar_add(&ctx->scalar_offset, &b, &diff); secp256k1_ge_set_gej(&ctx->ge_offset, &gb); /* Clean up. */ + secp256k1_memclear(nonce32, sizeof(nonce32)); secp256k1_scalar_clear(&b); secp256k1_gej_clear(&gb); secp256k1_fe_clear(&f); + secp256k1_rfc6979_hmac_sha256_clear(&rng); } #endif /* SECP256K1_ECMULT_GEN_IMPL_H */ diff --git a/src/ecmult_impl.h b/src/ecmult_impl.h index 07d8477eb0644d..248a4cd8b9f006 100644 --- a/src/ecmult_impl.h +++ b/src/ecmult_impl.h @@ -171,7 +171,9 @@ static int secp256k1_ecmult_wnaf(int *wnaf, int len, const secp256k1_scalar *a, VERIFY_CHECK(a != NULL); VERIFY_CHECK(2 <= w && w <= 31); - memset(wnaf, 0, len * sizeof(wnaf[0])); + for (bit = 0; bit < len; bit++) { + wnaf[bit] = 0; + } s = *a; if (secp256k1_scalar_get_bits_limb32(&s, 255, 1)) { @@ -179,6 +181,7 @@ static int secp256k1_ecmult_wnaf(int *wnaf, int len, const secp256k1_scalar *a, sign = -1; } + bit = 0; while (bit < len) { int now; int word; @@ -355,16 +358,27 @@ static void secp256k1_ecmult(secp256k1_gej *r, const secp256k1_gej *a, const sec secp256k1_ecmult_strauss_wnaf(&state, r, 1, a, na, ng); } -static size_t secp256k1_strauss_scratch_size(size_t n_points) { - static const size_t point_size = (sizeof(secp256k1_ge) + sizeof(secp256k1_fe)) * ECMULT_TABLE_SIZE(WINDOW_A) + sizeof(struct secp256k1_strauss_point_state) + sizeof(secp256k1_gej) + sizeof(secp256k1_scalar); - return n_points*point_size; +/** Allocate strauss state on the scratch space */ +static int secp256k1_strauss_scratch_alloc_state(const secp256k1_callback* error_callback, secp256k1_scratch *scratch, struct secp256k1_strauss_state *state, size_t n_points) { + const size_t scratch_checkpoint = secp256k1_scratch_checkpoint(error_callback, scratch); + + /* We allocate three objects on the scratch space. If these allocations + * change, make sure to check if this affects STRAUSS_SCRATCH_OBJECTS + * constant and strauss_scratch_size. */ + state->aux = (secp256k1_fe*)secp256k1_scratch_alloc(error_callback, scratch, n_points * ECMULT_TABLE_SIZE(WINDOW_A) * sizeof(secp256k1_fe)); + state->pre_a = (secp256k1_ge*)secp256k1_scratch_alloc(error_callback, scratch, n_points * ECMULT_TABLE_SIZE(WINDOW_A) * sizeof(secp256k1_ge)); + state->ps = (struct secp256k1_strauss_point_state*)secp256k1_scratch_alloc(error_callback, scratch, n_points * sizeof(struct secp256k1_strauss_point_state)); + + if (state->aux == NULL || state->pre_a == NULL || state->ps == NULL) { + secp256k1_scratch_apply_checkpoint(error_callback, scratch, scratch_checkpoint); + return 0; + } + return 1; } -static int secp256k1_ecmult_strauss_batch(const secp256k1_callback* error_callback, secp256k1_scratch *scratch, secp256k1_gej *r, const secp256k1_scalar *inp_g_sc, secp256k1_ecmult_multi_callback cb, void *cbdata, size_t n_points, size_t cb_offset) { - secp256k1_gej* points; - secp256k1_scalar* scalars; +/** Run ecmult_strauss_wnaf on the given points and scalars */ +static int secp256k1_ecmult_strauss_batch_internal(const secp256k1_callback* error_callback, secp256k1_scratch *scratch, secp256k1_gej *r, secp256k1_scalar *scalars, secp256k1_gej *points, const secp256k1_scalar *inp_g_sc, size_t n_points) { struct secp256k1_strauss_state state; - size_t i; const size_t scratch_checkpoint = secp256k1_scratch_checkpoint(error_callback, scratch); secp256k1_gej_set_infinity(r); @@ -372,16 +386,30 @@ static int secp256k1_ecmult_strauss_batch(const secp256k1_callback* error_callba return 1; } - /* We allocate STRAUSS_SCRATCH_OBJECTS objects on the scratch space. If these - * allocations change, make sure to update the STRAUSS_SCRATCH_OBJECTS - * constant and strauss_scratch_size accordingly. */ + if(!secp256k1_strauss_scratch_alloc_state(error_callback, scratch, &state, n_points)) { + return 0; + } + + secp256k1_ecmult_strauss_wnaf(&state, r, n_points, points, scalars, inp_g_sc); + secp256k1_scratch_apply_checkpoint(error_callback, scratch, scratch_checkpoint); + return 1; +} + +/** Run ecmult_strauss_wnaf on the given points and scalars. Returns 0 if the + * scratch space is empty. `n_points` number of scalars and points are + * extracted from `cbdata` using `cb` and stored on the scratch space. + */ +static int secp256k1_ecmult_strauss_batch(const secp256k1_callback* error_callback, secp256k1_scratch *scratch, secp256k1_gej *r, const secp256k1_scalar *inp_g_sc, secp256k1_ecmult_multi_callback cb, void *cbdata, size_t n_points, size_t cb_offset) { + secp256k1_gej* points; + secp256k1_scalar* scalars; + size_t i; + const size_t scratch_checkpoint = secp256k1_scratch_checkpoint(error_callback, scratch); + /* We allocate STRAUSS_SCRATCH_OBJECTS objects on the scratch space in + * total. If these allocations change, make sure to update the + * STRAUSS_SCRATCH_OBJECTS constant and strauss_scratch_size accordingly. */ points = (secp256k1_gej*)secp256k1_scratch_alloc(error_callback, scratch, n_points * sizeof(secp256k1_gej)); scalars = (secp256k1_scalar*)secp256k1_scratch_alloc(error_callback, scratch, n_points * sizeof(secp256k1_scalar)); - state.aux = (secp256k1_fe*)secp256k1_scratch_alloc(error_callback, scratch, n_points * ECMULT_TABLE_SIZE(WINDOW_A) * sizeof(secp256k1_fe)); - state.pre_a = (secp256k1_ge*)secp256k1_scratch_alloc(error_callback, scratch, n_points * ECMULT_TABLE_SIZE(WINDOW_A) * sizeof(secp256k1_ge)); - state.ps = (struct secp256k1_strauss_point_state*)secp256k1_scratch_alloc(error_callback, scratch, n_points * sizeof(struct secp256k1_strauss_point_state)); - - if (points == NULL || scalars == NULL || state.aux == NULL || state.pre_a == NULL || state.ps == NULL) { + if (points == NULL || scalars == NULL) { secp256k1_scratch_apply_checkpoint(error_callback, scratch, scratch_checkpoint); return 0; } @@ -394,20 +422,30 @@ static int secp256k1_ecmult_strauss_batch(const secp256k1_callback* error_callba } secp256k1_gej_set_ge(&points[i], &point); } - secp256k1_ecmult_strauss_wnaf(&state, r, n_points, points, scalars, inp_g_sc); + + secp256k1_ecmult_strauss_batch_internal(error_callback, scratch, r, scalars, points, inp_g_sc, n_points); secp256k1_scratch_apply_checkpoint(error_callback, scratch, scratch_checkpoint); return 1; } -/* Wrapper for secp256k1_ecmult_multi_func interface */ -static int secp256k1_ecmult_strauss_batch_single(const secp256k1_callback* error_callback, secp256k1_scratch *scratch, secp256k1_gej *r, const secp256k1_scalar *inp_g_sc, secp256k1_ecmult_multi_callback cb, void *cbdata, size_t n) { - return secp256k1_ecmult_strauss_batch(error_callback, scratch, r, inp_g_sc, cb, cbdata, n, 0); +/** Return the scratch size that is allocated by a call to strauss_batch + * (ignoring padding required for alignment). */ +static size_t secp256k1_strauss_scratch_size(size_t n_points) { + static const size_t point_size = (sizeof(secp256k1_ge) + sizeof(secp256k1_fe)) * ECMULT_TABLE_SIZE(WINDOW_A) + sizeof(struct secp256k1_strauss_point_state) + sizeof(secp256k1_gej) + sizeof(secp256k1_scalar); + return n_points*point_size; } +/** Return the maximum number of points that can be provided to strauss_batch + * with a given scratch space. */ static size_t secp256k1_strauss_max_points(const secp256k1_callback* error_callback, secp256k1_scratch *scratch) { return secp256k1_scratch_max_allocation(error_callback, scratch, STRAUSS_SCRATCH_OBJECTS) / secp256k1_strauss_scratch_size(1); } +/* Wrapper for secp256k1_ecmult_multi_func interface */ +static int secp256k1_ecmult_strauss_batch_single(const secp256k1_callback* error_callback, secp256k1_scratch *scratch, secp256k1_gej *r, const secp256k1_scalar *inp_g_sc, secp256k1_ecmult_multi_callback cb, void *cbdata, size_t n) { + return secp256k1_ecmult_strauss_batch(error_callback, scratch, r, inp_g_sc, cb, cbdata, n, 0); +} + /** Convert a number to WNAF notation. * The number becomes represented by sum(2^{wi} * wnaf[i], i=0..WNAF_SIZE(w)+1) - return_val. * It has the following guarantees: @@ -660,7 +698,6 @@ static int secp256k1_ecmult_pippenger_batch(const secp256k1_callback* error_call struct secp256k1_pippenger_state *state_space; size_t idx = 0; size_t point_idx = 0; - int i, j; int bucket_window; secp256k1_gej_set_infinity(r); @@ -708,18 +745,6 @@ static int secp256k1_ecmult_pippenger_batch(const secp256k1_callback* error_call } secp256k1_ecmult_pippenger_wnaf(buckets, bucket_window, state_space, r, scalars, points, idx); - - /* Clear data */ - for(i = 0; (size_t)i < idx; i++) { - secp256k1_scalar_clear(&scalars[i]); - state_space->ps[i].skew_na = 0; - for(j = 0; j < WNAF_SIZE(bucket_window+1); j++) { - state_space->wnaf_na[i * WNAF_SIZE(bucket_window+1) + j] = 0; - } - } - for(i = 0; i < 1<n[0] & 1; } -SECP256K1_INLINE static void secp256k1_fe_impl_clear(secp256k1_fe *a) { - int i; - for (i=0; i<10; i++) { - a->n[i] = 0; - } -} - static int secp256k1_fe_impl_cmp_var(const secp256k1_fe *a, const secp256k1_fe *b) { int i; for (i = 9; i >= 0; i--) { diff --git a/src/field_5x52_impl.h b/src/field_5x52_impl.h index 76031f755e2da0..46dca6b9814426 100644 --- a/src/field_5x52_impl.h +++ b/src/field_5x52_impl.h @@ -212,13 +212,6 @@ SECP256K1_INLINE static int secp256k1_fe_impl_is_odd(const secp256k1_fe *a) { return a->n[0] & 1; } -SECP256K1_INLINE static void secp256k1_fe_impl_clear(secp256k1_fe *a) { - int i; - for (i=0; i<5; i++) { - a->n[i] = 0; - } -} - static int secp256k1_fe_impl_cmp_var(const secp256k1_fe *a, const secp256k1_fe *b) { int i; for (i = 4; i >= 0; i--) { diff --git a/src/field_impl.h b/src/field_impl.h index 989e9cdb2f06d1..896507a3a491d7 100644 --- a/src/field_impl.h +++ b/src/field_impl.h @@ -18,6 +18,10 @@ #error "Please select wide multiplication implementation" #endif +SECP256K1_INLINE static void secp256k1_fe_clear(secp256k1_fe *a) { + secp256k1_memclear(a, sizeof(secp256k1_fe)); +} + SECP256K1_INLINE static int secp256k1_fe_equal(const secp256k1_fe *a, const secp256k1_fe *b) { secp256k1_fe na; SECP256K1_FE_VERIFY(a); @@ -232,15 +236,6 @@ SECP256K1_INLINE static void secp256k1_fe_add_int(secp256k1_fe *r, int a) { SECP256K1_FE_VERIFY(r); } -static void secp256k1_fe_impl_clear(secp256k1_fe *a); -SECP256K1_INLINE static void secp256k1_fe_clear(secp256k1_fe *a) { - a->magnitude = 0; - a->normalized = 1; - secp256k1_fe_impl_clear(a); - - SECP256K1_FE_VERIFY(a); -} - static int secp256k1_fe_impl_is_zero(const secp256k1_fe *a); SECP256K1_INLINE static int secp256k1_fe_is_zero(const secp256k1_fe *a) { SECP256K1_FE_VERIFY(a); diff --git a/src/group.h b/src/group.h index d81deb42649b42..992ff5c98cf060 100644 --- a/src/group.h +++ b/src/group.h @@ -174,6 +174,22 @@ static void secp256k1_ge_storage_cmov(secp256k1_ge_storage *r, const secp256k1_g /** Rescale a jacobian point by b which must be non-zero. Constant-time. */ static void secp256k1_gej_rescale(secp256k1_gej *r, const secp256k1_fe *b); +/** Convert a group element that is not infinity to a 64-byte array. The output + * array is platform-dependent. */ +static void secp256k1_ge_to_bytes(unsigned char *buf, const secp256k1_ge *a); + +/** Convert a 64-byte array into group element. This function assumes that the + * provided buffer correctly encodes a group element. */ +static void secp256k1_ge_from_bytes(secp256k1_ge *r, const unsigned char *buf); + +/** Convert a group element (that is allowed to be infinity) to a 64-byte + * array. The output array is platform-dependent. */ +static void secp256k1_ge_to_bytes_ext(unsigned char *data, const secp256k1_ge *ge); + +/** Convert a 64-byte array into a group element. This function assumes that the + * provided buffer is the output of secp256k1_ge_to_bytes_ext. */ +static void secp256k1_ge_from_bytes_ext(secp256k1_ge *ge, const unsigned char *data); + /** Determine if a point (which is assumed to be on the curve) is in the correct (sub)group of the curve. * * In normal mode, the used group is secp256k1, which has cofactor=1 meaning that every point on the curve is in the diff --git a/src/group_impl.h b/src/group_impl.h index 537be32ff64808..c668fb240105e2 100644 --- a/src/group_impl.h +++ b/src/group_impl.h @@ -7,6 +7,8 @@ #ifndef SECP256K1_GROUP_IMPL_H #define SECP256K1_GROUP_IMPL_H +#include + #include "field.h" #include "group.h" #include "util.h" @@ -281,36 +283,27 @@ static void secp256k1_ge_table_set_globalz(size_t len, secp256k1_ge *a, const se static void secp256k1_gej_set_infinity(secp256k1_gej *r) { r->infinity = 1; - secp256k1_fe_clear(&r->x); - secp256k1_fe_clear(&r->y); - secp256k1_fe_clear(&r->z); + secp256k1_fe_set_int(&r->x, 0); + secp256k1_fe_set_int(&r->y, 0); + secp256k1_fe_set_int(&r->z, 0); SECP256K1_GEJ_VERIFY(r); } static void secp256k1_ge_set_infinity(secp256k1_ge *r) { r->infinity = 1; - secp256k1_fe_clear(&r->x); - secp256k1_fe_clear(&r->y); + secp256k1_fe_set_int(&r->x, 0); + secp256k1_fe_set_int(&r->y, 0); SECP256K1_GE_VERIFY(r); } static void secp256k1_gej_clear(secp256k1_gej *r) { - r->infinity = 0; - secp256k1_fe_clear(&r->x); - secp256k1_fe_clear(&r->y); - secp256k1_fe_clear(&r->z); - - SECP256K1_GEJ_VERIFY(r); + secp256k1_memclear(r, sizeof(secp256k1_gej)); } static void secp256k1_ge_clear(secp256k1_ge *r) { - r->infinity = 0; - secp256k1_fe_clear(&r->x); - secp256k1_fe_clear(&r->y); - - SECP256K1_GE_VERIFY(r); + secp256k1_memclear(r, sizeof(secp256k1_ge)); } static int secp256k1_ge_set_xo_var(secp256k1_ge *r, const secp256k1_fe *x, int odd) { @@ -941,4 +934,41 @@ static int secp256k1_ge_x_frac_on_curve_var(const secp256k1_fe *xn, const secp25 return secp256k1_fe_is_square_var(&r); } +static void secp256k1_ge_to_bytes(unsigned char *buf, const secp256k1_ge *a) { + secp256k1_ge_storage s; + + /* We require that the secp256k1_ge_storage type is exactly 64 bytes. + * This is formally not guaranteed by the C standard, but should hold on any + * sane compiler in the real world. */ + STATIC_ASSERT(sizeof(secp256k1_ge_storage) == 64); + VERIFY_CHECK(!secp256k1_ge_is_infinity(a)); + secp256k1_ge_to_storage(&s, a); + memcpy(buf, &s, 64); +} + +static void secp256k1_ge_from_bytes(secp256k1_ge *r, const unsigned char *buf) { + secp256k1_ge_storage s; + + STATIC_ASSERT(sizeof(secp256k1_ge_storage) == 64); + memcpy(&s, buf, 64); + secp256k1_ge_from_storage(r, &s); +} + +static void secp256k1_ge_to_bytes_ext(unsigned char *data, const secp256k1_ge *ge) { + if (secp256k1_ge_is_infinity(ge)) { + memset(data, 0, 64); + } else { + secp256k1_ge_to_bytes(data, ge); + } +} + +static void secp256k1_ge_from_bytes_ext(secp256k1_ge *ge, const unsigned char *data) { + static const unsigned char zeros[64] = { 0 }; + if (secp256k1_memcmp_var(data, zeros, sizeof(zeros)) == 0) { + secp256k1_ge_set_infinity(ge); + } else { + secp256k1_ge_from_bytes(ge, data); + } +} + #endif /* SECP256K1_GROUP_IMPL_H */ diff --git a/src/hash.h b/src/hash.h index 4e0384cfbffcaa..6d903ca7e0723e 100644 --- a/src/hash.h +++ b/src/hash.h @@ -19,6 +19,7 @@ typedef struct { static void secp256k1_sha256_initialize(secp256k1_sha256 *hash); static void secp256k1_sha256_write(secp256k1_sha256 *hash, const unsigned char *data, size_t size); static void secp256k1_sha256_finalize(secp256k1_sha256 *hash, unsigned char *out32); +static void secp256k1_sha256_clear(secp256k1_sha256 *hash); typedef struct { secp256k1_sha256 inner, outer; @@ -27,6 +28,7 @@ typedef struct { static void secp256k1_hmac_sha256_initialize(secp256k1_hmac_sha256 *hash, const unsigned char *key, size_t size); static void secp256k1_hmac_sha256_write(secp256k1_hmac_sha256 *hash, const unsigned char *data, size_t size); static void secp256k1_hmac_sha256_finalize(secp256k1_hmac_sha256 *hash, unsigned char *out32); +static void secp256k1_hmac_sha256_clear(secp256k1_hmac_sha256 *hash); typedef struct { unsigned char v[32]; @@ -37,5 +39,6 @@ typedef struct { static void secp256k1_rfc6979_hmac_sha256_initialize(secp256k1_rfc6979_hmac_sha256 *rng, const unsigned char *key, size_t keylen); static void secp256k1_rfc6979_hmac_sha256_generate(secp256k1_rfc6979_hmac_sha256 *rng, unsigned char *out, size_t outlen); static void secp256k1_rfc6979_hmac_sha256_finalize(secp256k1_rfc6979_hmac_sha256 *rng); +static void secp256k1_rfc6979_hmac_sha256_clear(secp256k1_rfc6979_hmac_sha256 *rng); #endif /* SECP256K1_HASH_H */ diff --git a/src/hash_impl.h b/src/hash_impl.h index 89f75ace74a204..956e0ea48b321a 100644 --- a/src/hash_impl.h +++ b/src/hash_impl.h @@ -171,6 +171,10 @@ static void secp256k1_sha256_initialize_tagged(secp256k1_sha256 *hash, const uns secp256k1_sha256_write(hash, buf, 32); } +static void secp256k1_sha256_clear(secp256k1_sha256 *hash) { + secp256k1_memclear(hash, sizeof(*hash)); +} + static void secp256k1_hmac_sha256_initialize(secp256k1_hmac_sha256 *hash, const unsigned char *key, size_t keylen) { size_t n; unsigned char rkey[64]; @@ -196,7 +200,7 @@ static void secp256k1_hmac_sha256_initialize(secp256k1_hmac_sha256 *hash, const rkey[n] ^= 0x5c ^ 0x36; } secp256k1_sha256_write(&hash->inner, rkey, sizeof(rkey)); - memset(rkey, 0, sizeof(rkey)); + secp256k1_memclear(rkey, sizeof(rkey)); } static void secp256k1_hmac_sha256_write(secp256k1_hmac_sha256 *hash, const unsigned char *data, size_t size) { @@ -207,10 +211,13 @@ static void secp256k1_hmac_sha256_finalize(secp256k1_hmac_sha256 *hash, unsigned unsigned char temp[32]; secp256k1_sha256_finalize(&hash->inner, temp); secp256k1_sha256_write(&hash->outer, temp, 32); - memset(temp, 0, 32); + secp256k1_memclear(temp, sizeof(temp)); secp256k1_sha256_finalize(&hash->outer, out32); } +static void secp256k1_hmac_sha256_clear(secp256k1_hmac_sha256 *hash) { + secp256k1_memclear(hash, sizeof(*hash)); +} static void secp256k1_rfc6979_hmac_sha256_initialize(secp256k1_rfc6979_hmac_sha256 *rng, const unsigned char *key, size_t keylen) { secp256k1_hmac_sha256 hmac; @@ -274,9 +281,11 @@ static void secp256k1_rfc6979_hmac_sha256_generate(secp256k1_rfc6979_hmac_sha256 } static void secp256k1_rfc6979_hmac_sha256_finalize(secp256k1_rfc6979_hmac_sha256 *rng) { - memset(rng->k, 0, 32); - memset(rng->v, 0, 32); - rng->retry = 0; + (void) rng; +} + +static void secp256k1_rfc6979_hmac_sha256_clear(secp256k1_rfc6979_hmac_sha256 *rng) { + secp256k1_memclear(rng, sizeof(*rng)); } #undef Round diff --git a/src/libsecp256k1-config.h b/src/libsecp256k1-config.h new file mode 100644 index 00000000000000..8761914e35ca50 --- /dev/null +++ b/src/libsecp256k1-config.h @@ -0,0 +1,117 @@ +/* src/libsecp256k1-config.h. Generated from libsecp256k1-config.h.in by configure. */ +/* src/libsecp256k1-config.h.in. Generated from configure.ac by autoheader. */ + +#ifndef LIBSECP256K1_CONFIG_H + +#define LIBSECP256K1_CONFIG_H + +/* Define this symbol to compile out all VERIFY code */ +/* #undef COVERAGE */ + +/* Set ecmult gen precision bits */ +#define ECMULT_GEN_PREC_BITS 4 + +/* Set window size for ecmult precomputation */ +#define ECMULT_WINDOW_SIZE 15 + +/* Define this symbol to enable the batch verification module */ +#define ENABLE_MODULE_BATCH 1 + +/* Define this symbol to enable the ECDH module */ +/* #undef ENABLE_MODULE_ECDH */ + +/* Define this symbol to enable the extrakeys module */ +#define ENABLE_MODULE_EXTRAKEYS 1 + +/* Define this symbol to enable the ECDSA pubkey recovery module */ +/* #undef ENABLE_MODULE_RECOVERY */ + +/* Define this symbol to enable the schnorrsig module */ +#define ENABLE_MODULE_SCHNORRSIG 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define this symbol if valgrind is installed, and it supports the host + platform */ +/* #undef HAVE_VALGRIND */ + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "libsecp256k1" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "https://github.com/bitcoin-core/secp256k1/issues" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "libsecp256k1" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "libsecp256k1 0.1.0-pre" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "libsecp256k1" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "https://github.com/bitcoin-core/secp256k1" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "0.1.0-pre" + +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ +#define STDC_HEADERS 1 + +/* Define this symbol to enable x86_64 assembly optimizations */ +#define USE_ASM_X86_64 1 + +/* Define this symbol if an external (non-inline) assembly implementation is + used */ +/* #undef USE_EXTERNAL_ASM */ + +/* Define this symbol if an external implementation of the default callbacks + is used */ +/* #undef USE_EXTERNAL_DEFAULT_CALLBACKS */ + +/* Define this symbol to force the use of the (unsigned) __int128 based wide + multiplication implementation */ +/* #undef USE_FORCE_WIDEMUL_INT128 */ + +/* Define this symbol to force the use of the (u)int64_t based wide + multiplication implementation */ +/* #undef USE_FORCE_WIDEMUL_INT64 */ + +/* Version number of package */ +#define VERSION "0.1.0-pre" + +#endif /*LIBSECP256K1_CONFIG_H*/ diff --git a/src/libsecp256k1-config.h.in b/src/libsecp256k1-config.h.in new file mode 100644 index 00000000000000..f0c97654ecbd99 --- /dev/null +++ b/src/libsecp256k1-config.h.in @@ -0,0 +1,116 @@ +/* src/libsecp256k1-config.h.in. Generated from configure.ac by autoheader. */ + +#ifndef LIBSECP256K1_CONFIG_H + +#define LIBSECP256K1_CONFIG_H + +/* Define this symbol to compile out all VERIFY code */ +#undef COVERAGE + +/* Set ecmult gen precision bits */ +#undef ECMULT_GEN_PREC_BITS + +/* Set window size for ecmult precomputation */ +#undef ECMULT_WINDOW_SIZE + +/* Define this symbol to enable the batch verification module */ +#undef ENABLE_MODULE_BATCH + +/* Define this symbol to enable the ECDH module */ +#undef ENABLE_MODULE_ECDH + +/* Define this symbol to enable the extrakeys module */ +#undef ENABLE_MODULE_EXTRAKEYS + +/* Define this symbol to enable the ECDSA pubkey recovery module */ +#undef ENABLE_MODULE_RECOVERY + +/* Define this symbol to enable the schnorrsig module */ +#undef ENABLE_MODULE_SCHNORRSIG + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define this symbol if valgrind is installed, and it supports the host + platform */ +#undef HAVE_VALGRIND + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ +#undef STDC_HEADERS + +/* Define this symbol to enable x86_64 assembly optimizations */ +#undef USE_ASM_X86_64 + +/* Define this symbol if an external (non-inline) assembly implementation is + used */ +#undef USE_EXTERNAL_ASM + +/* Define this symbol if an external implementation of the default callbacks + is used */ +#undef USE_EXTERNAL_DEFAULT_CALLBACKS + +/* Define this symbol to force the use of the (unsigned) __int128 based wide + multiplication implementation */ +#undef USE_FORCE_WIDEMUL_INT128 + +/* Define this symbol to force the use of the (u)int64_t based wide + multiplication implementation */ +#undef USE_FORCE_WIDEMUL_INT64 + +/* Version number of package */ +#undef VERSION + +#endif /*LIBSECP256K1_CONFIG_H*/ diff --git a/src/modinv32_impl.h b/src/modinv32_impl.h index 75eb354ff08e50..981d2abc6dafa6 100644 --- a/src/modinv32_impl.h +++ b/src/modinv32_impl.h @@ -565,13 +565,12 @@ static void secp256k1_modinv32(secp256k1_modinv32_signed30 *x, const secp256k1_m /* g == 0 */ VERIFY_CHECK(secp256k1_modinv32_mul_cmp_30(&g, 9, &SECP256K1_SIGNED30_ONE, 0) == 0); - /* |f| == 1, or (x == 0 and d == 0 and |f|=modulus) */ + /* |f| == 1, or (x == 0 and d == 0 and f == modulus) */ VERIFY_CHECK(secp256k1_modinv32_mul_cmp_30(&f, 9, &SECP256K1_SIGNED30_ONE, -1) == 0 || secp256k1_modinv32_mul_cmp_30(&f, 9, &SECP256K1_SIGNED30_ONE, 1) == 0 || (secp256k1_modinv32_mul_cmp_30(x, 9, &SECP256K1_SIGNED30_ONE, 0) == 0 && secp256k1_modinv32_mul_cmp_30(&d, 9, &SECP256K1_SIGNED30_ONE, 0) == 0 && - (secp256k1_modinv32_mul_cmp_30(&f, 9, &modinfo->modulus, 1) == 0 || - secp256k1_modinv32_mul_cmp_30(&f, 9, &modinfo->modulus, -1) == 0))); + secp256k1_modinv32_mul_cmp_30(&f, 9, &modinfo->modulus, 1) == 0)); /* Optionally negate d, normalize to [0,modulus), and return it. */ secp256k1_modinv32_normalize_30(&d, f.v[8], modinfo); @@ -643,13 +642,12 @@ static void secp256k1_modinv32_var(secp256k1_modinv32_signed30 *x, const secp256 /* g == 0 */ VERIFY_CHECK(secp256k1_modinv32_mul_cmp_30(&g, len, &SECP256K1_SIGNED30_ONE, 0) == 0); - /* |f| == 1, or (x == 0 and d == 0 and |f|=modulus) */ + /* |f| == 1, or (x == 0 and d == 0 and f == modulus) */ VERIFY_CHECK(secp256k1_modinv32_mul_cmp_30(&f, len, &SECP256K1_SIGNED30_ONE, -1) == 0 || secp256k1_modinv32_mul_cmp_30(&f, len, &SECP256K1_SIGNED30_ONE, 1) == 0 || (secp256k1_modinv32_mul_cmp_30(x, 9, &SECP256K1_SIGNED30_ONE, 0) == 0 && secp256k1_modinv32_mul_cmp_30(&d, 9, &SECP256K1_SIGNED30_ONE, 0) == 0 && - (secp256k1_modinv32_mul_cmp_30(&f, len, &modinfo->modulus, 1) == 0 || - secp256k1_modinv32_mul_cmp_30(&f, len, &modinfo->modulus, -1) == 0))); + secp256k1_modinv32_mul_cmp_30(&f, len, &modinfo->modulus, 1) == 0)); /* Optionally negate d, normalize to [0,modulus), and return it. */ secp256k1_modinv32_normalize_30(&d, f.v[len - 1], modinfo); diff --git a/src/modinv64_impl.h b/src/modinv64_impl.h index 0dc1e80696000e..548787bedff2ec 100644 --- a/src/modinv64_impl.h +++ b/src/modinv64_impl.h @@ -621,13 +621,12 @@ static void secp256k1_modinv64(secp256k1_modinv64_signed62 *x, const secp256k1_m /* g == 0 */ VERIFY_CHECK(secp256k1_modinv64_mul_cmp_62(&g, 5, &SECP256K1_SIGNED62_ONE, 0) == 0); - /* |f| == 1, or (x == 0 and d == 0 and |f|=modulus) */ + /* |f| == 1, or (x == 0 and d == 0 and f == modulus) */ VERIFY_CHECK(secp256k1_modinv64_mul_cmp_62(&f, 5, &SECP256K1_SIGNED62_ONE, -1) == 0 || secp256k1_modinv64_mul_cmp_62(&f, 5, &SECP256K1_SIGNED62_ONE, 1) == 0 || (secp256k1_modinv64_mul_cmp_62(x, 5, &SECP256K1_SIGNED62_ONE, 0) == 0 && secp256k1_modinv64_mul_cmp_62(&d, 5, &SECP256K1_SIGNED62_ONE, 0) == 0 && - (secp256k1_modinv64_mul_cmp_62(&f, 5, &modinfo->modulus, 1) == 0 || - secp256k1_modinv64_mul_cmp_62(&f, 5, &modinfo->modulus, -1) == 0))); + secp256k1_modinv64_mul_cmp_62(&f, 5, &modinfo->modulus, 1) == 0)); /* Optionally negate d, normalize to [0,modulus), and return it. */ secp256k1_modinv64_normalize_62(&d, f.v[4], modinfo); @@ -698,13 +697,12 @@ static void secp256k1_modinv64_var(secp256k1_modinv64_signed62 *x, const secp256 /* g == 0 */ VERIFY_CHECK(secp256k1_modinv64_mul_cmp_62(&g, len, &SECP256K1_SIGNED62_ONE, 0) == 0); - /* |f| == 1, or (x == 0 and d == 0 and |f|=modulus) */ + /* |f| == 1, or (x == 0 and d == 0 and f == modulus) */ VERIFY_CHECK(secp256k1_modinv64_mul_cmp_62(&f, len, &SECP256K1_SIGNED62_ONE, -1) == 0 || secp256k1_modinv64_mul_cmp_62(&f, len, &SECP256K1_SIGNED62_ONE, 1) == 0 || (secp256k1_modinv64_mul_cmp_62(x, 5, &SECP256K1_SIGNED62_ONE, 0) == 0 && secp256k1_modinv64_mul_cmp_62(&d, 5, &SECP256K1_SIGNED62_ONE, 0) == 0 && - (secp256k1_modinv64_mul_cmp_62(&f, len, &modinfo->modulus, 1) == 0 || - secp256k1_modinv64_mul_cmp_62(&f, len, &modinfo->modulus, -1) == 0))); + secp256k1_modinv64_mul_cmp_62(&f, len, &modinfo->modulus, 1) == 0)); /* Optionally negate d, normalize to [0,modulus), and return it. */ secp256k1_modinv64_normalize_62(&d, f.v[len - 1], modinfo); diff --git a/src/modules/batch/Makefile.am.include b/src/modules/batch/Makefile.am.include new file mode 100644 index 00000000000000..f996e0efca7482 --- /dev/null +++ b/src/modules/batch/Makefile.am.include @@ -0,0 +1,3 @@ +include_HEADERS += include/secp256k1_batch.h +noinst_HEADERS += src/modules/batch/main_impl.h +noinst_HEADERS += src/modules/batch/tests_impl.h diff --git a/src/modules/batch/main_impl.h b/src/modules/batch/main_impl.h new file mode 100644 index 00000000000000..ef3f5d11956d87 --- /dev/null +++ b/src/modules/batch/main_impl.h @@ -0,0 +1,206 @@ +#ifndef SECP256K1_MODULE_BATCH_MAIN_H +#define SECP256K1_MODULE_BATCH_MAIN_H + +#include "../../../include/secp256k1_batch.h" + +/* Maximum number of scalar-point pairs on the batch + * for which `secp256k1_batch_verify` remains efficient */ +#define STRAUSS_MAX_TERMS_PER_BATCH 106 + +/* Assume two batch objects (batch1 and batch2) and we call + * `batch_add_tweak_check` on batch1 and `batch_add_schnorrsig` on batch2. + * In this case, the same randomizer will be generated if the input bytes to + * batch1 and batch2 are the same (even though we use different `batch_add_` funcs). + * Including this tag during randomizer generation (to differentiate btw + * `batch_add_` funcs) will prevent such mishaps. */ +enum batch_add_type {schnorrsig = 1, tweak_check = 2}; + +/** Opaque data structure that holds information required for the batch verification. + * + * Members: + * data: scratch space object that contains points (_gej) and their + * respective scalars. To be used in Multi-Scalar Multiplication + * algorithms such as Strauss and Pippenger. + * scalars: pointer to scalars allocated on the scratch space. + * points: pointer to points allocated on the scratch space. + * sc_g: scalar corresponding to the generator point (G) in Multi-Scalar + * Multiplication equation. + * sha256: contains hash of all the inputs (schnorrsig/tweaks) present in + * the batch object, expect the first input. Used for generating a random secp256k1_scalar + * for each term added by secp256k1_batch_add_*. + * sha256: contains hash of all inputs (except the first one) present in the batch. + * `secp256k1_batch_add_` APIs use these for randomizing the scalar (i.e., multiplying + * it with a newly generated scalar) before adding it to the batch. + * len: number of scalar-point pairs present in the batch. + * capacity: max number of scalar-point pairs that the batch can hold. + * result: tells whether the given set of inputs (schnorrsigs or tweak checks) is valid + * or invalid. 1 = valid and 0 = invalid. By default, this is set to 1 + * during batch object creation (i.e., `secp256k1_batch_create`). + * + * The following struct name is typdef as secp256k1_batch (in include/secp256k1_batch.h). + */ +struct secp256k1_batch_struct{ + secp256k1_scratch *data; + secp256k1_scalar *scalars; + secp256k1_gej *points; + secp256k1_scalar sc_g; + secp256k1_sha256 sha256; + size_t len; + size_t capacity; + int result; +}; + +static size_t secp256k1_batch_scratch_size(int max_terms) { + size_t ret = secp256k1_strauss_scratch_size(max_terms) + STRAUSS_SCRATCH_OBJECTS*16; + VERIFY_CHECK(ret != 0); + + return ret; +} + +/** Clears the scalar and points allocated on the batch object's scratch space */ +static void secp256k1_batch_scratch_clear(secp256k1_batch* batch) { + secp256k1_scalar_clear(&batch->sc_g); + /* setting the len = 0 will suffice (instead of clearing the memory) + * since, there are no secrets stored on the scratch space */ + batch->len = 0; +} + +/** Allocates space for `batch->capacity` number of scalars and points on batch + * object's scratch space */ +static int secp256k1_batch_scratch_alloc(const secp256k1_callback* error_callback, secp256k1_batch* batch) { + size_t checkpoint = secp256k1_scratch_checkpoint(error_callback, batch->data); + size_t count = batch->capacity; + + VERIFY_CHECK(count > 0); + + batch->scalars = (secp256k1_scalar*)secp256k1_scratch_alloc(error_callback, batch->data, count*sizeof(secp256k1_scalar)); + batch->points = (secp256k1_gej*)secp256k1_scratch_alloc(error_callback, batch->data, count*sizeof(secp256k1_gej)); + + /* If scalar or point allocation fails, restore scratch space to previous state */ + if (batch->scalars == NULL || batch->points == NULL) { + secp256k1_scratch_apply_checkpoint(error_callback, batch->data, checkpoint); + return 0; + } + + return 1; +} + +/* Initializes SHA256 with fixed midstate. This midstate was computed by applying + * SHA256 to SHA256("BIP0340/batch")||SHA256("BIP0340/batch"). */ +static void secp256k1_batch_sha256_tagged(secp256k1_sha256 *sha) { + secp256k1_sha256_initialize(sha); + sha->s[0] = 0x79e3e0d2ul; + sha->s[1] = 0x12284f32ul; + sha->s[2] = 0xd7d89e1cul; + sha->s[3] = 0x6491ea9aul; + sha->s[4] = 0xad823b2ful; + sha->s[5] = 0xfacfe0b6ul; + sha->s[6] = 0x342b78baul; + sha->s[7] = 0x12ece87cul; + + sha->bytes = 64; +} + +secp256k1_batch* secp256k1_batch_create(const secp256k1_context* ctx, size_t max_terms, const unsigned char *aux_rand16) { + size_t batch_size; + secp256k1_batch* batch; + size_t batch_scratch_size; + unsigned char zeros[16] = {0}; + /* max number of scalar-point pairs on scratch up to which Strauss multi multiplication is efficient */ + if (max_terms > STRAUSS_MAX_TERMS_PER_BATCH) { + max_terms = STRAUSS_MAX_TERMS_PER_BATCH; + } + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(max_terms != 0); + + batch_size = sizeof(secp256k1_batch); + batch = (secp256k1_batch *)checked_malloc(&ctx->error_callback, batch_size); + batch_scratch_size = secp256k1_batch_scratch_size(max_terms); + if (batch != NULL) { + /* create scratch space inside batch object, if that fails return NULL*/ + batch->data = secp256k1_scratch_create(&ctx->error_callback, batch_scratch_size); + if (batch->data == NULL) { + return NULL; + } + /* allocate memeory for `max_terms` number of scalars and points on scratch space */ + batch->capacity = max_terms; + if (!secp256k1_batch_scratch_alloc(&ctx->error_callback, batch)) { + /* if scratch memory allocation fails, free all the previous the allocated memory + and return NULL */ + secp256k1_scratch_destroy(&ctx->error_callback, batch->data); + free(batch); + return NULL; + } + + /* set remaining data members */ + secp256k1_scalar_clear(&batch->sc_g); + secp256k1_batch_sha256_tagged(&batch->sha256); + if (aux_rand16 != NULL) { + secp256k1_sha256_write(&batch->sha256, aux_rand16, 16); + } else { + /* use 16 bytes of 0x0000...000, if no fresh randomness provided */ + secp256k1_sha256_write(&batch->sha256, zeros, 16); + } + batch->len = 0; + batch->result = 1; + } + + return batch; +} + +void secp256k1_batch_destroy(const secp256k1_context *ctx, secp256k1_batch *batch) { + VERIFY_CHECK(ctx != NULL); + + if (batch != NULL) { + if(batch->data != NULL) { + /* can't destroy a scratch space with non-zero size */ + secp256k1_scratch_apply_checkpoint(&ctx->error_callback, batch->data, 0); + secp256k1_scratch_destroy(&ctx->error_callback, batch->data); + } + free(batch); + } +} + +int secp256k1_batch_usable(const secp256k1_context *ctx, const secp256k1_batch *batch) { + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(batch != NULL); + + return batch->result; +} + +/** verifies the inputs (schnorrsig or tweak_check) by performing multi-scalar point + * multiplication on the scalars (`batch->scalars`) and points (`batch->points`) + * present in the batch. Uses `secp256k1_ecmult_strauss_batch_internal` to perform + * the multi-multiplication. + * + * Fails if: + * 0 != -(s1 + a2*s2 + ... + au*su)G + * + R1 + a2*R2 + ... + au*Ru + e1*P1 + (a2*e2)P2 + ... + (au*eu)Pu. + */ +int secp256k1_batch_verify(const secp256k1_context *ctx, secp256k1_batch *batch) { + secp256k1_gej resj; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(batch != NULL); + + if(batch->result == 0) { + return 0; + } + + if (batch->len > 0) { + int strauss_ret = secp256k1_ecmult_strauss_batch_internal(&ctx->error_callback, batch->data, &resj, batch->scalars, batch->points, &batch->sc_g, batch->len); + int mid_res = secp256k1_gej_is_infinity(&resj); + + /* `_strauss_batch_internal` should not fail due to insufficient memory. + * `batch_create` will allocate memeory needed by `_strauss_batch_internal`. */ + VERIFY_CHECK(strauss_ret != 0); + + batch->result = batch->result && mid_res; + secp256k1_batch_scratch_clear(batch); + } + + return batch->result; +} + +#endif /* SECP256K1_MODULE_BATCH_MAIN_H */ diff --git a/src/modules/batch/tests_impl.h b/src/modules/batch/tests_impl.h new file mode 100644 index 00000000000000..f9a81ec942ec16 --- /dev/null +++ b/src/modules/batch/tests_impl.h @@ -0,0 +1,214 @@ +#ifndef SECP256K1_MODULE_BATCH_TESTS_H +#define SECP256K1_MODULE_BATCH_TESTS_H + +#include "../../../include/secp256k1_batch.h" +#ifdef ENABLE_MODULE_SCHNORRSIG +#include "../../../include/secp256k1_schnorrsig.h" +#include "../../../include/secp256k1_schnorrsig_batch.h" +#endif +#ifdef ENABLE_MODULE_EXTRAKEYS +#include "../../../include/secp256k1_extrakeys.h" +#include "../../../include/secp256k1_tweak_check_batch.h" +#endif + +/* Tests for the equality of two sha256 structs. This function only produces a + * correct result if an integer multiple of 64 many bytes have been written + * into the hash functions. */ +void test_batch_sha256_eq(const secp256k1_sha256 *sha1, const secp256k1_sha256 *sha2) { + /* Is buffer fully consumed? */ + CHECK((sha1->bytes & 0x3F) == 0); + + CHECK(sha1->bytes == sha2->bytes); + CHECK(secp256k1_memcmp_var(sha1->s, sha2->s, sizeof(sha1->s)) == 0); +} + +/* Checks that hash initialized by secp256k1_batch_sha256_tagged has the + * expected state. */ +void test_batch_sha256_tagged(void) { + unsigned char tag[13] = "BIP0340/batch"; + secp256k1_sha256 sha; + secp256k1_sha256 sha_optimized; + + secp256k1_sha256_initialize_tagged(&sha, (unsigned char *) tag, sizeof(tag)); + secp256k1_batch_sha256_tagged(&sha_optimized); + test_batch_sha256_eq(&sha, &sha_optimized); +} + +#define N_SIGS 10 +#define N_TWK_CHECKS 10 +#define N_TERMS (N_TWK_CHECKS + 2*N_SIGS) +void test_batch_api(void) { + secp256k1_batch *batch_none; + secp256k1_batch *batch_sign; + secp256k1_batch *batch_vrfy; + secp256k1_batch *batch_both; + secp256k1_batch *batch_sttc; + unsigned char aux_rand16[32]; + int ecount; + +#ifdef ENABLE_MODULE_EXTRAKEYS + unsigned char sk[32]; + secp256k1_keypair keypair; + secp256k1_xonly_pubkey pk; + /* xonly pubkey tweak checks data */ + unsigned char tweaked_pk[N_TWK_CHECKS][32]; + int tweaked_pk_parity[N_TWK_CHECKS]; + unsigned char tweak[N_TWK_CHECKS][32]; + secp256k1_pubkey tmp_pk; + secp256k1_xonly_pubkey tmp_xonly_pk; + size_t i; +#endif + +#ifdef ENABLE_MODULE_SCHNORRSIG + /* schnorr verification data */ + unsigned char msg[N_SIGS][32]; + unsigned char sig[N_SIGS][64]; +#endif + /* context and batch setup */ + secp256k1_context *none = secp256k1_context_create(SECP256K1_CONTEXT_NONE); + secp256k1_context *sign = secp256k1_context_create(SECP256K1_CONTEXT_SIGN); + secp256k1_context *vrfy = secp256k1_context_create(SECP256K1_CONTEXT_VERIFY); + secp256k1_context *both = secp256k1_context_create(SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY); + secp256k1_context *sttc = malloc(sizeof(*secp256k1_context_no_precomp)); + memcpy(sttc, secp256k1_context_no_precomp, sizeof(secp256k1_context)); + + secp256k1_context_set_error_callback(none, counting_callback_fn, &ecount); + secp256k1_context_set_error_callback(sign, counting_callback_fn, &ecount); + secp256k1_context_set_error_callback(vrfy, counting_callback_fn, &ecount); + secp256k1_context_set_error_callback(both, counting_callback_fn, &ecount); + secp256k1_context_set_error_callback(sttc, counting_callback_fn, &ecount); + secp256k1_context_set_illegal_callback(none, counting_callback_fn, &ecount); + secp256k1_context_set_illegal_callback(sign, counting_callback_fn, &ecount); + secp256k1_context_set_illegal_callback(vrfy, counting_callback_fn, &ecount); + secp256k1_context_set_illegal_callback(both, counting_callback_fn, &ecount); + secp256k1_context_set_illegal_callback(sttc, counting_callback_fn, &ecount); + + /* 16 byte auxiliary randomness */ + testrand256(aux_rand16); + memset(&aux_rand16[16], 0, 16); + +#ifdef ENABLE_MODULE_EXTRAKEYS + /* generate keypair data */ + testrand256(sk); + CHECK(secp256k1_keypair_create(sign, &keypair, sk) == 1); + CHECK(secp256k1_keypair_xonly_pub(sign, &pk, NULL, &keypair) == 1); + + /* generate N_TWK_CHECKS tweak check data (tweaked_pk, tweaked_pk_parity, tweak) */ + for (i = 0; i < N_TWK_CHECKS; i++) { + testrand256(tweak[i]); + CHECK(secp256k1_xonly_pubkey_tweak_add(vrfy, &tmp_pk, &pk, tweak[i])); + CHECK(secp256k1_xonly_pubkey_from_pubkey(vrfy, &tmp_xonly_pk, &tweaked_pk_parity[i], &tmp_pk)); + CHECK(secp256k1_xonly_pubkey_serialize(vrfy, tweaked_pk[i], &tmp_xonly_pk)); + CHECK(secp256k1_xonly_pubkey_tweak_add_check(vrfy, tweaked_pk[i], tweaked_pk_parity[i], &pk, tweak[i])); + } +#endif + +#ifdef ENABLE_MODULE_SCHNORRSIG + /* generate N_SIGS schnorr verify data (msg, sig) */ + for (i = 0; i < N_SIGS; i++) { + testrand256(msg[i]); + CHECK(secp256k1_schnorrsig_sign32(sign, sig[i], msg[i], &keypair, NULL) == 1); + CHECK(secp256k1_schnorrsig_verify(vrfy, sig[i], msg[i], sizeof(msg[i]), &pk)); + } +#endif + + /** main test body **/ + /* batch_create tests */ + ecount = 0; + batch_none = secp256k1_batch_create(none, 1, NULL); + CHECK(batch_none != NULL); + CHECK(ecount == 0); + /* 2*N_SIGS since one schnorrsig creates two scalar-point pair in batch */ + batch_sign = secp256k1_batch_create(sign, 2*N_SIGS, NULL); + CHECK(batch_sign != NULL); + CHECK(ecount == 0); + batch_vrfy = secp256k1_batch_create(vrfy, N_TWK_CHECKS - 1, aux_rand16); + CHECK(batch_vrfy != NULL); + CHECK(ecount == 0); + batch_both = secp256k1_batch_create(both, N_TERMS/4, aux_rand16); + CHECK(batch_both != NULL); + CHECK(ecount == 0); + /* ARG_CHECK(max_terms != 0) in `batch_create` should fail*/ + batch_sttc = secp256k1_batch_create(sttc, 0, NULL); + CHECK(batch_sttc == NULL); + CHECK(ecount == 1); + +#ifdef ENABLE_MODULE_SCHNORRSIG + ecount = 0; + for (i = 0; i < N_SIGS; i++) { + CHECK(secp256k1_batch_usable(sign, batch_sign) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_add_schnorrsig(sign, batch_sign, sig[i], msg[i], sizeof(msg[i]), &pk) == 1); + CHECK(ecount == 0); + } +#endif + +#ifdef ENABLE_MODULE_EXTRAKEYS + ecount = 0; + for (i = 0; i < N_TWK_CHECKS; i++) { + CHECK(secp256k1_batch_usable(vrfy, batch_vrfy)); + CHECK(ecount == 0); + CHECK(secp256k1_batch_add_xonlypub_tweak_check(vrfy, batch_vrfy, tweaked_pk[i], tweaked_pk_parity[i], &pk, tweak[i])); + CHECK(ecount == 0); + } +#endif + +#if defined(ENABLE_MODULE_SCHNORRSIG) && defined(ENABLE_MODULE_EXTRAKEYS) + /* secp256k1_batch_add_tests for batch_both */ + ecount = 0; + for (i = 0; i < N_SIGS; i++) { + CHECK(secp256k1_batch_usable(both, batch_both) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_add_schnorrsig(both, batch_both, sig[i], msg[i], sizeof(msg[i]), &pk) == 1); + CHECK(ecount == 0); + } + for (i = 0; i < N_TWK_CHECKS; i++) { + CHECK(secp256k1_batch_usable(both, batch_both)); + CHECK(ecount == 0); + CHECK(secp256k1_batch_add_xonlypub_tweak_check(both, batch_both, tweaked_pk[i], tweaked_pk_parity[i], &pk, tweak[i])); + CHECK(ecount == 0); + } +#endif + + /* batch_verify tests */ + ecount = 0; + CHECK(secp256k1_batch_verify(none, batch_none) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_verify(sign, batch_sign) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_verify(vrfy, batch_vrfy) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_verify(both, batch_both) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_verify(sttc, NULL) == 0); + CHECK(ecount == 1); + + ecount = 0; + secp256k1_batch_destroy(none, batch_none); + CHECK(ecount == 0); + secp256k1_batch_destroy(sign, batch_sign); + CHECK(ecount == 0); + secp256k1_batch_destroy(vrfy, batch_vrfy); + CHECK(ecount == 0); + secp256k1_batch_destroy(both, batch_both); + CHECK(ecount == 0); + secp256k1_batch_destroy(sttc, NULL); + CHECK(ecount == 0); + + secp256k1_context_destroy(none); + secp256k1_context_destroy(sign); + secp256k1_context_destroy(vrfy); + secp256k1_context_destroy(both); + secp256k1_context_destroy(sttc); +} +#undef N_SIGS +#undef N_TWK_CHECKS +#undef N_TERMS + + +void run_batch_tests(void) { + test_batch_api(); + test_batch_sha256_tagged(); +} + +#endif /* SECP256K1_MODULE_BATCH_TESTS_H */ diff --git a/src/modules/ecdh/main_impl.h b/src/modules/ecdh/main_impl.h index 82b082a9f08670..842b5359e371fb 100644 --- a/src/modules/ecdh/main_impl.h +++ b/src/modules/ecdh/main_impl.h @@ -19,6 +19,7 @@ static int ecdh_hash_function_sha256(unsigned char *output, const unsigned char secp256k1_sha256_write(&sha, &version, 1); secp256k1_sha256_write(&sha, x32, 32); secp256k1_sha256_finalize(&sha, output); + secp256k1_sha256_clear(&sha); return 1; } @@ -61,9 +62,11 @@ int secp256k1_ecdh(const secp256k1_context* ctx, unsigned char *output, const se ret = hashfp(output, x, y, data); - memset(x, 0, 32); - memset(y, 0, 32); + secp256k1_memclear(x, sizeof(x)); + secp256k1_memclear(y, sizeof(y)); secp256k1_scalar_clear(&s); + secp256k1_ge_clear(&pt); + secp256k1_gej_clear(&res); return !!ret & !overflow; } diff --git a/src/modules/ellswift/main_impl.h b/src/modules/ellswift/main_impl.h index b54ec08a2201f9..745a969139b1a4 100644 --- a/src/modules/ellswift/main_impl.h +++ b/src/modules/ellswift/main_impl.h @@ -510,6 +510,7 @@ static int ellswift_xdh_hash_function_prefix(unsigned char *output, const unsign secp256k1_sha256_write(&sha, ell_b64, 64); secp256k1_sha256_write(&sha, x32, 32); secp256k1_sha256_finalize(&sha, output); + secp256k1_sha256_clear(&sha); return 1; } @@ -539,6 +540,7 @@ static int ellswift_xdh_hash_function_bip324(unsigned char* output, const unsign secp256k1_sha256_write(&sha, ell_b64, 64); secp256k1_sha256_write(&sha, x32, 32); secp256k1_sha256_finalize(&sha, output); + secp256k1_sha256_clear(&sha); return 1; } @@ -580,7 +582,7 @@ int secp256k1_ellswift_xdh(const secp256k1_context *ctx, unsigned char *output, /* Invoke hasher */ ret = hashfp(output, sx, ell_a64, ell_b64, data); - memset(sx, 0, 32); + secp256k1_memclear(sx, sizeof(sx)); secp256k1_fe_clear(&px); secp256k1_scalar_clear(&s); diff --git a/src/modules/extrakeys/Makefile.am.include b/src/modules/extrakeys/Makefile.am.include index 0d901ec1f4495a..be6efb2d08385d 100644 --- a/src/modules/extrakeys/Makefile.am.include +++ b/src/modules/extrakeys/Makefile.am.include @@ -1,4 +1,11 @@ include_HEADERS += include/secp256k1_extrakeys.h +if ENABLE_MODULE_BATCH +include_HEADERS += include/secp256k1_tweak_check_batch.h +endif noinst_HEADERS += src/modules/extrakeys/tests_impl.h noinst_HEADERS += src/modules/extrakeys/tests_exhaustive_impl.h noinst_HEADERS += src/modules/extrakeys/main_impl.h +if ENABLE_MODULE_BATCH +noinst_HEADERS += src/modules/extrakeys/batch_add_impl.h +noinst_HEADERS += src/modules/extrakeys/batch_add_tests_impl.h +endif diff --git a/src/modules/extrakeys/batch_add_impl.h b/src/modules/extrakeys/batch_add_impl.h new file mode 100644 index 00000000000000..f8faf31d7cab0d --- /dev/null +++ b/src/modules/extrakeys/batch_add_impl.h @@ -0,0 +1,151 @@ +#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 "../batch/main_impl.h" + +/* The number of scalar-point pairs allocated on the scratch space + * by `secp256k1_batch_add_xonlypub_tweak_check` */ +#define BATCH_TWEAK_CHECK_SCRATCH_OBJS 1 + +/** Computes a 16-byte deterministic randomizer by + * SHA256(batch_add_tag || tweaked pubkey || parity || tweak || internal pubkey) */ +static void secp256k1_batch_xonlypub_tweak_randomizer_gen(unsigned char *randomizer32, secp256k1_sha256 *sha256, const unsigned char *tweaked_pubkey32, const unsigned char *tweaked_pk_parity, const unsigned char *internal_pk33, const unsigned char *tweak32) { + secp256k1_sha256 sha256_cpy; + unsigned char batch_add_type = (unsigned char) tweak_check; + + secp256k1_sha256_write(sha256, &batch_add_type, sizeof(batch_add_type)); + /* add tweaked pubkey check data to sha object */ + secp256k1_sha256_write(sha256, tweaked_pubkey32, 32); + secp256k1_sha256_write(sha256, tweaked_pk_parity, 1); + secp256k1_sha256_write(sha256, tweak32, 32); + secp256k1_sha256_write(sha256, internal_pk33, 33); + + /* generate randomizer */ + sha256_cpy = *sha256; + secp256k1_sha256_finalize(&sha256_cpy, randomizer32); + /* 16 byte randomizer is sufficient */ + memset(randomizer32, 0, 16); +} + +static int secp256k1_batch_xonlypub_tweak_randomizer_set(const secp256k1_context* ctx, secp256k1_batch *batch, secp256k1_scalar *r, const unsigned char *tweaked_pubkey32, int tweaked_pk_parity, const secp256k1_xonly_pubkey *internal_pubkey,const unsigned char *tweak32) { + unsigned char randomizer[32]; + unsigned char internal_buf[33]; + size_t internal_buflen = sizeof(internal_buf); + unsigned char parity = (unsigned char) tweaked_pk_parity; + int overflow; + /* t = 2^127 */ + secp256k1_scalar t = SECP256K1_SCALAR_CONST(0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000); + + /* We use compressed serialization here. If we would use + * xonly_pubkey serialization and a user would wrongly memcpy + * normal secp256k1_pubkeys into xonly_pubkeys then the randomizer + * would be the same for two different pubkeys. */ + if (!secp256k1_ec_pubkey_serialize(ctx, internal_buf, &internal_buflen, (const secp256k1_pubkey *) internal_pubkey, SECP256K1_EC_COMPRESSED)) { + return 0; + } + + secp256k1_batch_xonlypub_tweak_randomizer_gen(randomizer, &batch->sha256, tweaked_pubkey32, &parity, internal_buf, tweak32); + secp256k1_scalar_set_b32(r, randomizer, &overflow); + /* Shift scalar to range [-2^127, 2^127-1] */ + secp256k1_scalar_negate(&t, &t); + secp256k1_scalar_add(r, r, &t); + VERIFY_CHECK(overflow == 0); + + return 1; +} + +/** Adds the given x-only tweaked public key check to the batch. + * + * Updates the batch object by: + * 1. adding the point P-Q to the scratch space + * -> the point is of type `secp256k1_gej` + * 2. adding the scalar ai to the scratch space + * -> ai is the scalar coefficient of P-Q (in multi multiplication) + * 3. incrementing sc_g (scalar of G) by ai.tweak + * + * Conventions used above: + * -> Q (tweaked pubkey) = EC point where parity(y) = tweaked_pk_parity + * and x = tweaked_pubkey32 + * -> P (internal pubkey) = internal pubkey + * -> ai (randomizer) = sha256_tagged(batch_add_tag || tweaked_pubkey32 || + * tweaked_pk_parity || tweak32 || pubkey) + * -> tweak (challenge) = tweak32 + * + * This function is based on `secp256k1_xonly_pubkey_tweak_add_check`. + */ +int secp256k1_batch_add_xonlypub_tweak_check(const secp256k1_context* ctx, secp256k1_batch *batch, const unsigned char *tweaked_pubkey32, int tweaked_pk_parity, const secp256k1_xonly_pubkey *internal_pubkey,const unsigned char *tweak32) { + secp256k1_scalar tweak; + secp256k1_scalar ai; + secp256k1_ge pk; + secp256k1_ge q; + secp256k1_gej tmpj; + secp256k1_fe qx; + int overflow; + size_t i; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(batch != NULL); + ARG_CHECK(internal_pubkey != NULL); + ARG_CHECK(tweaked_pubkey32 != NULL); + ARG_CHECK(tweak32 != NULL); + + if(batch->result == 0) { + return 0; + } + + if (!secp256k1_fe_set_b32_limit(&qx, tweaked_pubkey32)) { + return 0; + } + + secp256k1_scalar_set_b32(&tweak, tweak32, &overflow); + if (overflow) { + return 0; + } + + if (!secp256k1_xonly_pubkey_load(ctx, &pk, internal_pubkey)) { + return 0; + } + + /* if insufficient space in batch, verify the inputs (stored in curr batch) and + * save the result. This extends the batch capacity since `secp256k1_batch_verify` + * clears the batch after verification. */ + if (batch->capacity - batch->len < BATCH_TWEAK_CHECK_SCRATCH_OBJS) { + secp256k1_batch_verify(ctx, batch); + } + + i = batch->len; + /* append point P-Q to the scratch space */ + if (!secp256k1_ge_set_xo_var(&q, &qx, tweaked_pk_parity)) { + return 0; + } + if (!secp256k1_ge_is_in_correct_subgroup(&q)) { + return 0; + } + secp256k1_ge_neg(&q, &q); + secp256k1_gej_set_ge(&tmpj, &q); + secp256k1_gej_add_ge_var(&tmpj, &tmpj, &pk, NULL); + batch->points[i] = tmpj; + + /* Compute ai (randomizer) */ + if (batch->len == 0) { + /* set randomizer as 1 for the first term in batch */ + ai = secp256k1_scalar_one; + } else if(!secp256k1_batch_xonlypub_tweak_randomizer_set(ctx, batch, &ai, tweaked_pubkey32, tweaked_pk_parity, internal_pubkey, tweak32)) { + return 0; + } + + /* append scalar ai to scratch space */ + batch->scalars[i] = ai; + + /* increment scalar of G by ai.tweak */ + secp256k1_scalar_mul(&tweak, &tweak, &ai); + secp256k1_scalar_add(&batch->sc_g, &batch->sc_g, &tweak); + + batch->len += 1; + + return 1; +} + +#endif /* SECP256K1_MODULE_EXTRAKEYS_BATCH_ADD_IMPL_H */ diff --git a/src/modules/extrakeys/batch_add_tests_impl.h b/src/modules/extrakeys/batch_add_tests_impl.h new file mode 100644 index 00000000000000..d18aafcc1bdc33 --- /dev/null +++ b/src/modules/extrakeys/batch_add_tests_impl.h @@ -0,0 +1,165 @@ +#ifndef SECP256K1_MODULE_EXTRAKEYS_BATCH_ADD_TESTS_IMPL_H +#define SECP256K1_MODULE_EXTRAKEYS_BATCH_ADD_TESTS_IMPL_H + +#include "../../../include/secp256k1_extrakeys.h" +#include "../../../include/secp256k1_batch.h" +#include "../../../include/secp256k1_tweak_check_batch.h" + +/* Checks that a bit flip in the n_flip-th argument (that has n_bytes many + * bytes) changes the hash function */ +void batch_xonlypub_tweak_randomizer_gen_bitflip(secp256k1_sha256 *sha, unsigned char **args, size_t n_flip, size_t n_bytes) { + unsigned char randomizers[2][32]; + secp256k1_sha256 sha_cpy; + sha_cpy = *sha; + secp256k1_batch_xonlypub_tweak_randomizer_gen(randomizers[0], &sha_cpy, args[0], args[1], args[2], args[3]); + testrand_flip(args[n_flip], n_bytes); + sha_cpy = *sha; + secp256k1_batch_xonlypub_tweak_randomizer_gen(randomizers[1], &sha_cpy, args[0], args[1], args[2], args[3]); + CHECK(secp256k1_memcmp_var(randomizers[0], randomizers[1], 32) != 0); +} + +void run_batch_xonlypub_tweak_randomizer_gen_tests(void) { + secp256k1_sha256 sha; + size_t n_checks = 20; + unsigned char tweaked_pk[32]; + unsigned char tweaked_pk_parity; + unsigned char tweak[32]; + unsigned char internal_pk[33]; + unsigned char *args[4]; + size_t i; /* loops through n_checks */ + int j; /* loops through count */ + + secp256k1_batch_sha256_tagged(&sha); + + for (i = 0; i < n_checks; i++) { + uint8_t temp_rand; + + /* generate i-th tweak check data */ + testrand256(tweaked_pk); + tweaked_pk_parity = (unsigned char) testrand_int(2); + testrand256(tweak); + testrand256(&internal_pk[1]); + temp_rand = testrand_int(2) + 2; /* randomly choose 2 or 3 */ + internal_pk[0] = (unsigned char)temp_rand; + + /* check bitflip in any argument results in generates randomizers */ + args[0] = tweaked_pk; + args[1] = &tweaked_pk_parity; + args[2] = internal_pk; + args[3] = tweak; + + for (j = 0; j < COUNT; j++) { + batch_xonlypub_tweak_randomizer_gen_bitflip(&sha, args, 0, 32); + batch_xonlypub_tweak_randomizer_gen_bitflip(&sha, args, 1, 1); + batch_xonlypub_tweak_randomizer_gen_bitflip(&sha, args, 2, 33); + batch_xonlypub_tweak_randomizer_gen_bitflip(&sha, args, 3, 32); + } + + /* write i-th tweak check data to the sha object + * this is required for generating the next randomizer */ + secp256k1_sha256_write(&sha, tweaked_pk, 32); + secp256k1_sha256_write(&sha, &tweaked_pk_parity, 1); + secp256k1_sha256_write(&sha, tweak, 32); + secp256k1_sha256_write(&sha, internal_pk, 33); + } + +} + +void test_batch_add_xonlypub_tweak_api(void) { + unsigned char sk[32]; + secp256k1_keypair keypair; + secp256k1_xonly_pubkey pk; + /* xonly pubkey tweak checks data */ + unsigned char tweaked_pk[32]; + int tweaked_pk_parity; + unsigned char tweak[32]; + secp256k1_pubkey tmp_pk; + secp256k1_xonly_pubkey tmp_xonly_pk; + unsigned char overflows[32]; + + /** setup **/ + secp256k1_context *none = secp256k1_context_create(SECP256K1_CONTEXT_NONE); + secp256k1_context *sign = secp256k1_context_create(SECP256K1_CONTEXT_SIGN); + secp256k1_context *vrfy = secp256k1_context_create(SECP256K1_CONTEXT_VERIFY); + secp256k1_batch *batch1 = secp256k1_batch_create(none, 1, NULL); + /* batch2 is used when batch_add_xonlypub_tweak is expected to fail */ + secp256k1_batch *batch2 = secp256k1_batch_create(none, 1, NULL); + int ecount; + + secp256k1_context_set_error_callback(none, counting_callback_fn, &ecount); + secp256k1_context_set_error_callback(sign, counting_callback_fn, &ecount); + secp256k1_context_set_error_callback(vrfy, counting_callback_fn, &ecount); + secp256k1_context_set_illegal_callback(none, counting_callback_fn, &ecount); + secp256k1_context_set_illegal_callback(sign, counting_callback_fn, &ecount); + secp256k1_context_set_illegal_callback(vrfy, counting_callback_fn, &ecount); + + /** generate keypair data **/ + testrand256(sk); + CHECK(secp256k1_keypair_create(sign, &keypair, sk) == 1); + CHECK(secp256k1_keypair_xonly_pub(sign, &pk, NULL, &keypair) == 1); + memset(overflows, 0xFF, sizeof(overflows)); + + /** generate tweak check data (tweaked_pk, tweaked_pk_parity, tweak) **/ + testrand256(tweak); + CHECK(secp256k1_xonly_pubkey_tweak_add(vrfy, &tmp_pk, &pk, tweak)); + CHECK(secp256k1_xonly_pubkey_from_pubkey(vrfy, &tmp_xonly_pk, &tweaked_pk_parity, &tmp_pk)); + CHECK(secp256k1_xonly_pubkey_serialize(vrfy, tweaked_pk, &tmp_xonly_pk)); + CHECK(secp256k1_xonly_pubkey_tweak_add_check(vrfy, tweaked_pk, tweaked_pk_parity, &pk, tweak)); + + CHECK(batch1 != NULL); + CHECK(batch2 != NULL); + + /** main test body **/ + ecount = 0; + CHECK(secp256k1_batch_add_xonlypub_tweak_check(none, batch1, tweaked_pk, tweaked_pk_parity, &pk, tweak) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_verify(none, batch1) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_add_xonlypub_tweak_check(none, batch2, NULL, tweaked_pk_parity, &pk, tweak) == 0); + CHECK(ecount == 1); + CHECK(secp256k1_batch_add_xonlypub_tweak_check(none, batch2, tweaked_pk, tweaked_pk_parity, NULL, tweak) == 0); + CHECK(ecount == 2); + CHECK(secp256k1_batch_add_xonlypub_tweak_check(none, batch2, tweaked_pk, tweaked_pk_parity, &pk, NULL) == 0); + CHECK(ecount == 3); + CHECK(secp256k1_batch_add_xonlypub_tweak_check(none, NULL, tweaked_pk, tweaked_pk_parity, &pk, tweak) == 0); + CHECK(ecount == 4); + /** overflowing tweak not allowed **/ + CHECK(secp256k1_batch_add_xonlypub_tweak_check(none, batch2, tweaked_pk, tweaked_pk_parity, &pk, overflows) == 0); + CHECK(ecount == 4); + /** x-coordinate of tweaked pubkey should be less than prime order **/ + CHECK(secp256k1_batch_add_xonlypub_tweak_check(none, batch2, overflows, tweaked_pk_parity, &pk, tweak) == 0); + CHECK(ecount == 4); + + /** batch_verify should fail for incorrect tweak **/ + ecount = 0; + CHECK(secp256k1_batch_usable(none, batch2)); + CHECK(secp256k1_batch_add_xonlypub_tweak_check(none, batch2, tweaked_pk, !tweaked_pk_parity, &pk, tweak) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_verify(none, batch2) == 0); + CHECK(ecount == 0); + + /** batch_add_ should ignore unusable batch object (i.e, batch->result = 0) **/ + ecount = 0; + CHECK(secp256k1_batch_usable(none, batch2) == 0); + CHECK(ecount == 0); + CHECK(secp256k1_batch_add_xonlypub_tweak_check(none, batch2, tweaked_pk, tweaked_pk_parity, &pk, tweak) == 0); + CHECK(ecount == 0); + + ecount = 0; + secp256k1_batch_destroy(none, batch1); + CHECK(ecount == 0); + secp256k1_batch_destroy(none, batch2); + CHECK(ecount == 0); + + secp256k1_context_destroy(none); + secp256k1_context_destroy(sign); + secp256k1_context_destroy(vrfy); +} + +void run_batch_add_xonlypub_tweak_tests(void) { + run_batch_xonlypub_tweak_randomizer_gen_tests(); + test_batch_add_xonlypub_tweak_api(); +} + + +#endif /* SECP256K1_MODULE_EXTRAKEYS_BATCH_ADD_TESTS_IMPL_H */ diff --git a/src/modules/extrakeys/bench_impl.h b/src/modules/extrakeys/bench_impl.h new file mode 100644 index 00000000000000..411fd7339c767b --- /dev/null +++ b/src/modules/extrakeys/bench_impl.h @@ -0,0 +1,139 @@ + +#ifndef SECP256K1_MODULE_EXTRAKEYS_BENCH_H +#define SECP256K1_MODULE_EXTRAKEYS_BENCH_H + +#include "../../../include/secp256k1_extrakeys.h" +#ifdef ENABLE_MODULE_BATCH +# include "../../../include/secp256k1_batch.h" +# include "../../../include/secp256k1_tweak_check_batch.h" +#endif + +typedef struct { + secp256k1_context *ctx; +#ifdef ENABLE_MODULE_BATCH + secp256k1_batch *batch; + /* number of tweak checks to batch verify. + * it varies from 1 to iters with 20% increments */ + int n; +#endif + + const secp256k1_keypair **keypairs; + const unsigned char **pks; + const unsigned char **tweaked_pks; + const int **tweaked_pk_parities; + const unsigned char **tweaks; +} bench_tweak_check_data; + +void bench_xonly_pubkey_tweak_add_check(void* arg, int iters) { + bench_tweak_check_data *data = (bench_tweak_check_data *)arg; + int i; + + for (i = 0; i < iters; i++) { + secp256k1_xonly_pubkey pk; + CHECK(secp256k1_xonly_pubkey_parse(data->ctx, &pk, data->pks[i]) == 1); + CHECK(secp256k1_xonly_pubkey_tweak_add_check(data->ctx, data->tweaked_pks[i], *data->tweaked_pk_parities[i], &pk, data->tweaks[i]) == 1); + } +} + +#ifdef ENABLE_MODULE_BATCH +void bench_xonly_pubkey_tweak_add_check_n(void* arg, int iters) { + bench_tweak_check_data *data = (bench_tweak_check_data *)arg; + int i, j; + + for (j = 0; j < iters/data->n; j++) { + for (i = 0; i < data->n; i++) { + secp256k1_xonly_pubkey pk; + CHECK(secp256k1_xonly_pubkey_parse(data->ctx, &pk, data->pks[j+i]) == 1); + CHECK(secp256k1_batch_usable(data->ctx, data->batch) == 1); + CHECK(secp256k1_batch_add_xonlypub_tweak_check(data->ctx, data->batch, data->tweaked_pks[j+i], *data->tweaked_pk_parities[j+i], &pk, data->tweaks[j+i]) == 1); + } + CHECK(secp256k1_batch_verify(data->ctx, data->batch) == 1); + } +} +#endif + +void run_extrakeys_bench(int iters, int argc, char** argv) { + int i; + bench_tweak_check_data data; + int d = argc == 1; + + data.ctx = secp256k1_context_create(SECP256K1_CONTEXT_NONE); + data.keypairs = (const secp256k1_keypair **)malloc(iters * sizeof(secp256k1_keypair *)); + data.pks = (const unsigned char **)malloc(iters * sizeof(unsigned char *)); + data.tweaked_pks = (const unsigned char **)malloc(iters * sizeof(unsigned char *)); + data.tweaked_pk_parities = (const int **)malloc(iters * sizeof(int *)); + data.tweaks = (const unsigned char **)malloc(iters * sizeof(unsigned char *)); +#ifdef ENABLE_MODULE_BATCH + data.batch = secp256k1_batch_create(data.ctx, iters, NULL); + CHECK(data.batch != NULL); +#endif + + for (i = 0; i < iters; i++) { + unsigned char sk[32]; + unsigned char *tweaked_pk_char = (unsigned char *)malloc(32); + int *tweaked_pk_parity = (int *)malloc(sizeof(int)); /*todo: use sizeof(*twk_parity) instead?*/ + unsigned char *tweak = (unsigned char *)malloc(32); + secp256k1_keypair *keypair = (secp256k1_keypair *)malloc(sizeof(*keypair)); + unsigned char *pk_char = (unsigned char *)malloc(32); + secp256k1_xonly_pubkey pk; + secp256k1_pubkey output_pk; + secp256k1_xonly_pubkey output_pk_xonly; + tweak[0] = sk[0] = i; + tweak[1] = sk[1] = i >> 8; + tweak[2] = sk[2] = i >> 16; + tweak[3] = sk[3] = i >> 24; + memset(&tweak[4], 't', 28); + memset(&sk[4], 's', 28); + + data.keypairs[i] = keypair; + data.pks[i] = pk_char; + data.tweaked_pks[i] = tweaked_pk_char; + data.tweaked_pk_parities[i] = tweaked_pk_parity; + data.tweaks[i] = tweak; + + CHECK(secp256k1_keypair_create(data.ctx, keypair, sk)); + CHECK(secp256k1_keypair_xonly_pub(data.ctx, &pk, NULL, keypair)); + CHECK(secp256k1_xonly_pubkey_tweak_add(data.ctx, &output_pk, &pk, tweak)); + CHECK(secp256k1_xonly_pubkey_from_pubkey(data.ctx, &output_pk_xonly, tweaked_pk_parity, &output_pk)); + CHECK(secp256k1_xonly_pubkey_serialize(data.ctx, tweaked_pk_char, &output_pk_xonly) == 1); + CHECK(secp256k1_xonly_pubkey_serialize(data.ctx, pk_char, &pk) == 1); + } + + if (d || have_flag(argc, argv, "extrakeys") || have_flag(argc, argv, "tweak_add_check")) run_benchmark("tweak_add_check", bench_xonly_pubkey_tweak_add_check, NULL, NULL, (void *) &data, 10, iters); +#ifdef ENABLE_MODULE_BATCH + if (d || have_flag(argc, argv, "extrakeys") || have_flag(argc, argv, "batch_verify") || have_flag(argc, argv, "tweak_check_batch_verify")) { + for (i = 1; i <= iters; i = (int)(i*1.2 + 1)) { + char name[64]; + int divisible_iters; + sprintf(name, "tweak_check_batch_verify_%d", (int) i); + + data.n = i; + divisible_iters = iters - (iters % data.n); + run_benchmark(name, bench_xonly_pubkey_tweak_add_check_n, NULL, NULL, (void *) &data, 3, divisible_iters); + fflush(stdout); + } + } +#endif + + for (i = 0; i < iters; i++) { + free((void *)data.keypairs[i]); + free((void *)data.pks[i]); + free((void *)data.tweaked_pks[i]); + free((void *)data.tweaked_pk_parities[i]); + free((void *)data.tweaks[i]); + } + + /* Casting to (void *) avoids a stupid warning in MSVC. */ + free((void *)data.keypairs); + free((void *)data.pks); + free((void *)data.tweaked_pks); + free((void *)data.tweaked_pk_parities); + free((void *)data.tweaks); + +#ifdef ENABLE_MODULE_BATCH + secp256k1_batch_destroy(data.ctx, data.batch); +#endif + secp256k1_context_destroy(data.ctx); +} + +#endif /* SECP256K1_MODULE_EXTRAKEYS_BENCH_H */ diff --git a/src/modules/musig/Makefile.am.include b/src/modules/musig/Makefile.am.include new file mode 100644 index 00000000000000..796443c93b3d99 --- /dev/null +++ b/src/modules/musig/Makefile.am.include @@ -0,0 +1,8 @@ +include_HEADERS += include/secp256k1_musig.h +noinst_HEADERS += src/modules/musig/main_impl.h +noinst_HEADERS += src/modules/musig/keyagg.h +noinst_HEADERS += src/modules/musig/keyagg_impl.h +noinst_HEADERS += src/modules/musig/session.h +noinst_HEADERS += src/modules/musig/session_impl.h +noinst_HEADERS += src/modules/musig/tests_impl.h +noinst_HEADERS += src/modules/musig/vectors.h diff --git a/src/modules/musig/keyagg.h b/src/modules/musig/keyagg.h new file mode 100644 index 00000000000000..a0b37252f8aa50 --- /dev/null +++ b/src/modules/musig/keyagg.h @@ -0,0 +1,32 @@ +/*********************************************************************** + * Distributed under the MIT software license, see the accompanying * + * file COPYING or https://www.opensource.org/licenses/mit-license.php.* + ***********************************************************************/ + +#ifndef SECP256K1_MODULE_MUSIG_KEYAGG_H +#define SECP256K1_MODULE_MUSIG_KEYAGG_H + +#include "../../../include/secp256k1.h" +#include "../../../include/secp256k1_musig.h" + +#include "../../group.h" +#include "../../scalar.h" + +typedef struct { + secp256k1_ge pk; + /* If there is no "second" public key, second_pk is set to the point at + * infinity */ + secp256k1_ge second_pk; + unsigned char pks_hash[32]; + /* tweak is identical to value tacc[v] in the specification. */ + secp256k1_scalar tweak; + /* parity_acc corresponds to (1 - gacc[v])/2 in the spec. So if gacc[v] is + * -1, parity_acc is 1. Otherwise, parity_acc is 0. */ + int parity_acc; +} secp256k1_keyagg_cache_internal; + +static int secp256k1_keyagg_cache_load(const secp256k1_context* ctx, secp256k1_keyagg_cache_internal *cache_i, const secp256k1_musig_keyagg_cache *cache); + +static void secp256k1_musig_keyaggcoef(secp256k1_scalar *r, const secp256k1_keyagg_cache_internal *cache_i, secp256k1_ge *pk); + +#endif diff --git a/src/modules/musig/keyagg_impl.h b/src/modules/musig/keyagg_impl.h new file mode 100644 index 00000000000000..0db4fce859661a --- /dev/null +++ b/src/modules/musig/keyagg_impl.h @@ -0,0 +1,291 @@ +/*********************************************************************** + * Distributed under the MIT software license, see the accompanying * + * file COPYING or https://www.opensource.org/licenses/mit-license.php.* + ***********************************************************************/ + +#ifndef SECP256K1_MODULE_MUSIG_KEYAGG_IMPL_H +#define SECP256K1_MODULE_MUSIG_KEYAGG_IMPL_H + +#include + +#include "keyagg.h" +#include "../../eckey.h" +#include "../../ecmult.h" +#include "../../field.h" +#include "../../group.h" +#include "../../hash.h" +#include "../../util.h" + +static const unsigned char secp256k1_musig_keyagg_cache_magic[4] = { 0xf4, 0xad, 0xbb, 0xdf }; + +/* A keyagg cache consists of + * - 4 byte magic set during initialization to allow detecting an uninitialized + * object. + * - 64 byte aggregate (and potentially tweaked) public key + * - 64 byte "second" public key (set to the point at infinity if not present) + * - 32 byte hash of all public keys + * - 1 byte the parity of the internal key (if tweaked, otherwise 0) + * - 32 byte tweak + */ +/* Requires that cache_i->pk is not infinity. */ +static void secp256k1_keyagg_cache_save(secp256k1_musig_keyagg_cache *cache, const secp256k1_keyagg_cache_internal *cache_i) { + unsigned char *ptr = cache->data; + memcpy(ptr, secp256k1_musig_keyagg_cache_magic, 4); + ptr += 4; + secp256k1_ge_to_bytes(ptr, &cache_i->pk); + ptr += 64; + secp256k1_ge_to_bytes_ext(ptr, &cache_i->second_pk); + ptr += 64; + memcpy(ptr, cache_i->pks_hash, 32); + ptr += 32; + *ptr = cache_i->parity_acc; + ptr += 1; + secp256k1_scalar_get_b32(ptr, &cache_i->tweak); +} + +static int secp256k1_keyagg_cache_load(const secp256k1_context* ctx, secp256k1_keyagg_cache_internal *cache_i, const secp256k1_musig_keyagg_cache *cache) { + const unsigned char *ptr = cache->data; + ARG_CHECK(secp256k1_memcmp_var(ptr, secp256k1_musig_keyagg_cache_magic, 4) == 0); + ptr += 4; + secp256k1_ge_from_bytes(&cache_i->pk, ptr); + ptr += 64; + secp256k1_ge_from_bytes_ext(&cache_i->second_pk, ptr); + ptr += 64; + memcpy(cache_i->pks_hash, ptr, 32); + ptr += 32; + cache_i->parity_acc = *ptr & 1; + ptr += 1; + secp256k1_scalar_set_b32(&cache_i->tweak, ptr, NULL); + return 1; +} + +/* Initializes SHA256 with fixed midstate. This midstate was computed by applying + * SHA256 to SHA256("KeyAgg list")||SHA256("KeyAgg list"). */ +static void secp256k1_musig_keyagglist_sha256(secp256k1_sha256 *sha) { + secp256k1_sha256_initialize(sha); + + sha->s[0] = 0xb399d5e0ul; + sha->s[1] = 0xc8fff302ul; + sha->s[2] = 0x6badac71ul; + sha->s[3] = 0x07c5b7f1ul; + sha->s[4] = 0x9701e2eful; + sha->s[5] = 0x2a72ecf8ul; + sha->s[6] = 0x201a4c7bul; + sha->s[7] = 0xab148a38ul; + sha->bytes = 64; +} + +/* Computes pks_hash = tagged_hash(pk[0], ..., pk[np-1]) */ +static int secp256k1_musig_compute_pks_hash(const secp256k1_context *ctx, unsigned char *pks_hash, const secp256k1_pubkey * const* pks, size_t np) { + secp256k1_sha256 sha; + size_t i; + + secp256k1_musig_keyagglist_sha256(&sha); + for (i = 0; i < np; i++) { + unsigned char ser[33]; + size_t ser_len = sizeof(ser); + if (!secp256k1_ec_pubkey_serialize(ctx, ser, &ser_len, pks[i], SECP256K1_EC_COMPRESSED)) { + return 0; + } + VERIFY_CHECK(ser_len == sizeof(ser)); + secp256k1_sha256_write(&sha, ser, sizeof(ser)); + } + secp256k1_sha256_finalize(&sha, pks_hash); + return 1; +} + +/* Initializes SHA256 with fixed midstate. This midstate was computed by applying + * SHA256 to SHA256("KeyAgg coefficient")||SHA256("KeyAgg coefficient"). */ +static void secp256k1_musig_keyaggcoef_sha256(secp256k1_sha256 *sha) { + secp256k1_sha256_initialize(sha); + + sha->s[0] = 0x6ef02c5aul; + sha->s[1] = 0x06a480deul; + sha->s[2] = 0x1f298665ul; + sha->s[3] = 0x1d1134f2ul; + sha->s[4] = 0x56a0b063ul; + sha->s[5] = 0x52da4147ul; + sha->s[6] = 0xf280d9d4ul; + sha->s[7] = 0x4484be15ul; + sha->bytes = 64; +} + +/* Compute KeyAgg coefficient which is constant 1 for the second pubkey and + * otherwise tagged_hash(pks_hash, pk) where pks_hash is the hash of public keys. + * second_pk is the point at infinity in case there is no second_pk. Assumes + * that pk is not the point at infinity and that the Y-coordinates of pk and + * second_pk are normalized. */ +static void secp256k1_musig_keyaggcoef_internal(secp256k1_scalar *r, const unsigned char *pks_hash, secp256k1_ge *pk, const secp256k1_ge *second_pk) { + VERIFY_CHECK(!secp256k1_ge_is_infinity(pk)); + + if (!secp256k1_ge_is_infinity(second_pk) + && secp256k1_ge_eq_var(pk, second_pk)) { + secp256k1_scalar_set_int(r, 1); + } else { + secp256k1_sha256 sha; + unsigned char buf[33]; + size_t buflen = sizeof(buf); + int ret; + secp256k1_musig_keyaggcoef_sha256(&sha); + secp256k1_sha256_write(&sha, pks_hash, 32); + ret = secp256k1_eckey_pubkey_serialize(pk, buf, &buflen, 1); +#ifdef VERIFY + /* Serialization does not fail since the pk is not the point at infinity + * (according to this function's precondition). */ + VERIFY_CHECK(ret && buflen == sizeof(buf)); +#else + (void) ret; +#endif + secp256k1_sha256_write(&sha, buf, sizeof(buf)); + secp256k1_sha256_finalize(&sha, buf); + secp256k1_scalar_set_b32(r, buf, NULL); + } +} + +/* Assumes that pk is not the point at infinity and that the Y-coordinates of pk + * and cache_i->second_pk are normalized. */ +static void secp256k1_musig_keyaggcoef(secp256k1_scalar *r, const secp256k1_keyagg_cache_internal *cache_i, secp256k1_ge *pk) { + secp256k1_musig_keyaggcoef_internal(r, cache_i->pks_hash, pk, &cache_i->second_pk); +} + +typedef struct { + const secp256k1_context *ctx; + /* pks_hash is the hash of the public keys */ + unsigned char pks_hash[32]; + const secp256k1_pubkey * const* pks; + secp256k1_ge second_pk; +} secp256k1_musig_pubkey_agg_ecmult_data; + +/* Callback for batch EC multiplication to compute keyaggcoef_0*P0 + keyaggcoef_1*P1 + ... */ +static int secp256k1_musig_pubkey_agg_callback(secp256k1_scalar *sc, secp256k1_ge *pt, size_t idx, void *data) { + secp256k1_musig_pubkey_agg_ecmult_data *ctx = (secp256k1_musig_pubkey_agg_ecmult_data *) data; + int ret; + ret = secp256k1_pubkey_load(ctx->ctx, pt, ctx->pks[idx]); +#ifdef VERIFY + /* pubkey_load can't fail because the same pks have already been loaded in + * `musig_compute_pks_hash` (and we test this). */ + VERIFY_CHECK(ret); +#else + (void) ret; +#endif + secp256k1_musig_keyaggcoef_internal(sc, ctx->pks_hash, pt, &ctx->second_pk); + return 1; +} + +int secp256k1_musig_pubkey_agg(const secp256k1_context* ctx, secp256k1_xonly_pubkey *agg_pk, secp256k1_musig_keyagg_cache *keyagg_cache, const secp256k1_pubkey * const* pubkeys, size_t n_pubkeys) { + secp256k1_musig_pubkey_agg_ecmult_data ecmult_data; + secp256k1_gej pkj; + secp256k1_ge pkp; + size_t i; + + VERIFY_CHECK(ctx != NULL); + if (agg_pk != NULL) { + memset(agg_pk, 0, sizeof(*agg_pk)); + } + ARG_CHECK(pubkeys != NULL); + ARG_CHECK(n_pubkeys > 0); + + ecmult_data.ctx = ctx; + ecmult_data.pks = pubkeys; + + secp256k1_ge_set_infinity(&ecmult_data.second_pk); + for (i = 1; i < n_pubkeys; i++) { + if (secp256k1_memcmp_var(pubkeys[0], pubkeys[i], sizeof(*pubkeys[0])) != 0) { + secp256k1_ge pk; + if (!secp256k1_pubkey_load(ctx, &pk, pubkeys[i])) { + return 0; + } + ecmult_data.second_pk = pk; + break; + } + } + + if (!secp256k1_musig_compute_pks_hash(ctx, ecmult_data.pks_hash, pubkeys, n_pubkeys)) { + return 0; + } + /* TODO: actually use optimized ecmult_multi algorithms by providing a + * scratch space */ + if (!secp256k1_ecmult_multi_var(&ctx->error_callback, NULL, &pkj, NULL, secp256k1_musig_pubkey_agg_callback, (void *) &ecmult_data, n_pubkeys)) { + /* In order to reach this line with the current implementation of + * ecmult_multi_var one would need to provide a callback that can + * fail. */ + return 0; + } + secp256k1_ge_set_gej(&pkp, &pkj); + secp256k1_fe_normalize_var(&pkp.y); + /* The resulting public key is infinity with negligible probability */ + VERIFY_CHECK(!secp256k1_ge_is_infinity(&pkp)); + if (keyagg_cache != NULL) { + secp256k1_keyagg_cache_internal cache_i = { 0 }; + cache_i.pk = pkp; + cache_i.second_pk = ecmult_data.second_pk; + memcpy(cache_i.pks_hash, ecmult_data.pks_hash, sizeof(cache_i.pks_hash)); + secp256k1_keyagg_cache_save(keyagg_cache, &cache_i); + } + + if (agg_pk != NULL) { + secp256k1_extrakeys_ge_even_y(&pkp); + secp256k1_xonly_pubkey_save(agg_pk, &pkp); + } + return 1; +} + +int secp256k1_musig_pubkey_get(const secp256k1_context* ctx, secp256k1_pubkey *agg_pk, const secp256k1_musig_keyagg_cache *keyagg_cache) { + secp256k1_keyagg_cache_internal cache_i; + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(agg_pk != NULL); + memset(agg_pk, 0, sizeof(*agg_pk)); + ARG_CHECK(keyagg_cache != NULL); + + if (!secp256k1_keyagg_cache_load(ctx, &cache_i, keyagg_cache)) { + return 0; + } + secp256k1_pubkey_save(agg_pk, &cache_i.pk); + return 1; +} + +static int secp256k1_musig_pubkey_tweak_add_internal(const secp256k1_context* ctx, secp256k1_pubkey *output_pubkey, secp256k1_musig_keyagg_cache *keyagg_cache, const unsigned char *tweak32, int xonly) { + secp256k1_keyagg_cache_internal cache_i; + int overflow = 0; + secp256k1_scalar tweak; + + VERIFY_CHECK(ctx != NULL); + if (output_pubkey != NULL) { + memset(output_pubkey, 0, sizeof(*output_pubkey)); + } + ARG_CHECK(keyagg_cache != NULL); + ARG_CHECK(tweak32 != NULL); + + if (!secp256k1_keyagg_cache_load(ctx, &cache_i, keyagg_cache)) { + return 0; + } + secp256k1_scalar_set_b32(&tweak, tweak32, &overflow); + if (overflow) { + return 0; + } + if (xonly && secp256k1_extrakeys_ge_even_y(&cache_i.pk)) { + cache_i.parity_acc ^= 1; + secp256k1_scalar_negate(&cache_i.tweak, &cache_i.tweak); + } + secp256k1_scalar_add(&cache_i.tweak, &cache_i.tweak, &tweak); + if (!secp256k1_eckey_pubkey_tweak_add(&cache_i.pk, &tweak)) { + return 0; + } + /* eckey_pubkey_tweak_add fails if cache_i.pk is infinity */ + VERIFY_CHECK(!secp256k1_ge_is_infinity(&cache_i.pk)); + secp256k1_keyagg_cache_save(keyagg_cache, &cache_i); + if (output_pubkey != NULL) { + secp256k1_pubkey_save(output_pubkey, &cache_i.pk); + } + return 1; +} + +int secp256k1_musig_pubkey_ec_tweak_add(const secp256k1_context* ctx, secp256k1_pubkey *output_pubkey, secp256k1_musig_keyagg_cache *keyagg_cache, const unsigned char *tweak32) { + return secp256k1_musig_pubkey_tweak_add_internal(ctx, output_pubkey, keyagg_cache, tweak32, 0); +} + +int secp256k1_musig_pubkey_xonly_tweak_add(const secp256k1_context* ctx, secp256k1_pubkey *output_pubkey, secp256k1_musig_keyagg_cache *keyagg_cache, const unsigned char *tweak32) { + return secp256k1_musig_pubkey_tweak_add_internal(ctx, output_pubkey, keyagg_cache, tweak32, 1); +} + +#endif diff --git a/src/modules/musig/main_impl.h b/src/modules/musig/main_impl.h new file mode 100644 index 00000000000000..a1311e419126dc --- /dev/null +++ b/src/modules/musig/main_impl.h @@ -0,0 +1,12 @@ +/********************************************************************** + * Distributed under the MIT software license, see the accompanying * + * file COPYING or http://www.opensource.org/licenses/mit-license.php.* + **********************************************************************/ + +#ifndef SECP256K1_MODULE_MUSIG_MAIN_H +#define SECP256K1_MODULE_MUSIG_MAIN_H + +#include "keyagg_impl.h" +#include "session_impl.h" + +#endif diff --git a/src/modules/musig/session.h b/src/modules/musig/session.h new file mode 100644 index 00000000000000..d6d76bc6c11d40 --- /dev/null +++ b/src/modules/musig/session.h @@ -0,0 +1,24 @@ +/*********************************************************************** + * Distributed under the MIT software license, see the accompanying * + * file COPYING or https://www.opensource.org/licenses/mit-license.php.* + ***********************************************************************/ + +#ifndef SECP256K1_MODULE_MUSIG_SESSION_H +#define SECP256K1_MODULE_MUSIG_SESSION_H + +#include "../../../include/secp256k1.h" +#include "../../../include/secp256k1_musig.h" + +#include "../../scalar.h" + +typedef struct { + int fin_nonce_parity; + unsigned char fin_nonce[32]; + secp256k1_scalar noncecoef; + secp256k1_scalar challenge; + secp256k1_scalar s_part; +} secp256k1_musig_session_internal; + +static int secp256k1_musig_session_load(const secp256k1_context* ctx, secp256k1_musig_session_internal *session_i, const secp256k1_musig_session *session); + +#endif diff --git a/src/modules/musig/session_impl.h b/src/modules/musig/session_impl.h new file mode 100644 index 00000000000000..dde380858279f4 --- /dev/null +++ b/src/modules/musig/session_impl.h @@ -0,0 +1,816 @@ +/*********************************************************************** + * Distributed under the MIT software license, see the accompanying * + * file COPYING or https://www.opensource.org/licenses/mit-license.php.* + ***********************************************************************/ + +#ifndef SECP256K1_MODULE_MUSIG_SESSION_IMPL_H +#define SECP256K1_MODULE_MUSIG_SESSION_IMPL_H + +#include + +#include "../../../include/secp256k1.h" +#include "../../../include/secp256k1_extrakeys.h" +#include "../../../include/secp256k1_musig.h" + +#include "keyagg.h" +#include "session.h" +#include "../../eckey.h" +#include "../../hash.h" +#include "../../scalar.h" +#include "../../util.h" + +/* Outputs 33 zero bytes if the given group element is the point at infinity and + * otherwise outputs the compressed serialization */ +static void secp256k1_musig_ge_serialize_ext(unsigned char *out33, secp256k1_ge* ge) { + if (secp256k1_ge_is_infinity(ge)) { + memset(out33, 0, 33); + } else { + int ret; + size_t size = 33; + ret = secp256k1_eckey_pubkey_serialize(ge, out33, &size, 1); +#ifdef VERIFY + /* Serialize must succeed because the point is not at infinity */ + VERIFY_CHECK(ret && size == 33); +#else + (void) ret; +#endif + } +} + +/* Outputs the point at infinity if the given byte array is all zero, otherwise + * attempts to parse compressed point serialization. */ +static int secp256k1_musig_ge_parse_ext(secp256k1_ge* ge, const unsigned char *in33) { + unsigned char zeros[33] = { 0 }; + + if (secp256k1_memcmp_var(in33, zeros, sizeof(zeros)) == 0) { + secp256k1_ge_set_infinity(ge); + return 1; + } + if (!secp256k1_eckey_pubkey_parse(ge, in33, 33)) { + return 0; + } + return secp256k1_ge_is_in_correct_subgroup(ge); +} + +static const unsigned char secp256k1_musig_secnonce_magic[4] = { 0x22, 0x0e, 0xdc, 0xf1 }; + +static void secp256k1_musig_secnonce_save(secp256k1_musig_secnonce *secnonce, const secp256k1_scalar *k, const secp256k1_ge *pk) { + memcpy(&secnonce->data[0], secp256k1_musig_secnonce_magic, 4); + secp256k1_scalar_get_b32(&secnonce->data[4], &k[0]); + secp256k1_scalar_get_b32(&secnonce->data[36], &k[1]); + secp256k1_ge_to_bytes(&secnonce->data[68], pk); +} + +static int secp256k1_musig_secnonce_load(const secp256k1_context* ctx, secp256k1_scalar *k, secp256k1_ge *pk, const secp256k1_musig_secnonce *secnonce) { + int is_zero; + ARG_CHECK(secp256k1_memcmp_var(&secnonce->data[0], secp256k1_musig_secnonce_magic, 4) == 0); + /* We make very sure that the nonce isn't invalidated by checking the values + * in addition to the magic. */ + is_zero = secp256k1_is_zero_array(&secnonce->data[4], 2 * 32); + secp256k1_declassify(ctx, &is_zero, sizeof(is_zero)); + ARG_CHECK(!is_zero); + + secp256k1_scalar_set_b32(&k[0], &secnonce->data[4], NULL); + secp256k1_scalar_set_b32(&k[1], &secnonce->data[36], NULL); + secp256k1_ge_from_bytes(pk, &secnonce->data[68]); + return 1; +} + +/* If flag is true, invalidate the secnonce; otherwise leave it. Constant-time. */ +static void secp256k1_musig_secnonce_invalidate(const secp256k1_context* ctx, secp256k1_musig_secnonce *secnonce, int flag) { + secp256k1_memczero(secnonce->data, sizeof(secnonce->data), flag); + /* The flag argument is usually classified. So, the line above makes the + * magic and public key classified. However, we need both to be + * declassified. Note that we don't declassify the entire object, because if + * flag is 0, then k[0] and k[1] have not been zeroed. */ + secp256k1_declassify(ctx, secnonce->data, sizeof(secp256k1_musig_secnonce_magic)); + secp256k1_declassify(ctx, &secnonce->data[68], 64); +} + +static const unsigned char secp256k1_musig_pubnonce_magic[4] = { 0xf5, 0x7a, 0x3d, 0xa0 }; + +/* Saves two group elements into a pubnonce. Requires that none of the provided + * group elements is infinity. */ +static void secp256k1_musig_pubnonce_save(secp256k1_musig_pubnonce* nonce, const secp256k1_ge* ges) { + int i; + memcpy(&nonce->data[0], secp256k1_musig_pubnonce_magic, 4); + for (i = 0; i < 2; i++) { + secp256k1_ge_to_bytes(nonce->data + 4+64*i, &ges[i]); + } +} + +/* Loads two group elements from a pubnonce. Returns 1 unless the nonce wasn't + * properly initialized */ +static int secp256k1_musig_pubnonce_load(const secp256k1_context* ctx, secp256k1_ge* ges, const secp256k1_musig_pubnonce* nonce) { + int i; + + ARG_CHECK(secp256k1_memcmp_var(&nonce->data[0], secp256k1_musig_pubnonce_magic, 4) == 0); + for (i = 0; i < 2; i++) { + secp256k1_ge_from_bytes(&ges[i], nonce->data + 4 + 64*i); + } + return 1; +} + +static const unsigned char secp256k1_musig_aggnonce_magic[4] = { 0xa8, 0xb7, 0xe4, 0x67 }; + +static void secp256k1_musig_aggnonce_save(secp256k1_musig_aggnonce* nonce, const secp256k1_ge* ges) { + int i; + memcpy(&nonce->data[0], secp256k1_musig_aggnonce_magic, 4); + for (i = 0; i < 2; i++) { + secp256k1_ge_to_bytes_ext(&nonce->data[4 + 64*i], &ges[i]); + } +} + +static int secp256k1_musig_aggnonce_load(const secp256k1_context* ctx, secp256k1_ge* ges, const secp256k1_musig_aggnonce* nonce) { + int i; + + ARG_CHECK(secp256k1_memcmp_var(&nonce->data[0], secp256k1_musig_aggnonce_magic, 4) == 0); + for (i = 0; i < 2; i++) { + secp256k1_ge_from_bytes_ext(&ges[i], &nonce->data[4 + 64*i]); + } + return 1; +} + +static const unsigned char secp256k1_musig_session_cache_magic[4] = { 0x9d, 0xed, 0xe9, 0x17 }; + +/* A session consists of + * - 4 byte session cache magic + * - 1 byte the parity of the final nonce + * - 32 byte serialized x-only final nonce + * - 32 byte nonce coefficient b + * - 32 byte signature challenge hash e + * - 32 byte scalar s that is added to the partial signatures of the signers + */ +static void secp256k1_musig_session_save(secp256k1_musig_session *session, const secp256k1_musig_session_internal *session_i) { + unsigned char *ptr = session->data; + + memcpy(ptr, secp256k1_musig_session_cache_magic, 4); + ptr += 4; + *ptr = session_i->fin_nonce_parity; + ptr += 1; + memcpy(ptr, session_i->fin_nonce, 32); + ptr += 32; + secp256k1_scalar_get_b32(ptr, &session_i->noncecoef); + ptr += 32; + secp256k1_scalar_get_b32(ptr, &session_i->challenge); + ptr += 32; + secp256k1_scalar_get_b32(ptr, &session_i->s_part); +} + +static int secp256k1_musig_session_load(const secp256k1_context* ctx, secp256k1_musig_session_internal *session_i, const secp256k1_musig_session *session) { + const unsigned char *ptr = session->data; + + ARG_CHECK(secp256k1_memcmp_var(ptr, secp256k1_musig_session_cache_magic, 4) == 0); + ptr += 4; + session_i->fin_nonce_parity = *ptr; + ptr += 1; + memcpy(session_i->fin_nonce, ptr, 32); + ptr += 32; + secp256k1_scalar_set_b32(&session_i->noncecoef, ptr, NULL); + ptr += 32; + secp256k1_scalar_set_b32(&session_i->challenge, ptr, NULL); + ptr += 32; + secp256k1_scalar_set_b32(&session_i->s_part, ptr, NULL); + return 1; +} + +static const unsigned char secp256k1_musig_partial_sig_magic[4] = { 0xeb, 0xfb, 0x1a, 0x32 }; + +static void secp256k1_musig_partial_sig_save(secp256k1_musig_partial_sig* sig, secp256k1_scalar *s) { + memcpy(&sig->data[0], secp256k1_musig_partial_sig_magic, 4); + secp256k1_scalar_get_b32(&sig->data[4], s); +} + +static int secp256k1_musig_partial_sig_load(const secp256k1_context* ctx, secp256k1_scalar *s, const secp256k1_musig_partial_sig* sig) { + int overflow; + + ARG_CHECK(secp256k1_memcmp_var(&sig->data[0], secp256k1_musig_partial_sig_magic, 4) == 0); + secp256k1_scalar_set_b32(s, &sig->data[4], &overflow); + /* Parsed signatures can not overflow */ + VERIFY_CHECK(!overflow); + return 1; +} + +int secp256k1_musig_pubnonce_parse(const secp256k1_context* ctx, secp256k1_musig_pubnonce* nonce, const unsigned char *in66) { + secp256k1_ge ges[2]; + int i; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(nonce != NULL); + ARG_CHECK(in66 != NULL); + + for (i = 0; i < 2; i++) { + if (!secp256k1_eckey_pubkey_parse(&ges[i], &in66[33*i], 33)) { + return 0; + } + if (!secp256k1_ge_is_in_correct_subgroup(&ges[i])) { + return 0; + } + } + secp256k1_musig_pubnonce_save(nonce, ges); + return 1; +} + +int secp256k1_musig_pubnonce_serialize(const secp256k1_context* ctx, unsigned char *out66, const secp256k1_musig_pubnonce* nonce) { + secp256k1_ge ges[2]; + int i; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(out66 != NULL); + memset(out66, 0, 66); + ARG_CHECK(nonce != NULL); + + if (!secp256k1_musig_pubnonce_load(ctx, ges, nonce)) { + return 0; + } + for (i = 0; i < 2; i++) { + int ret; + size_t size = 33; + ret = secp256k1_eckey_pubkey_serialize(&ges[i], &out66[33*i], &size, 1); +#ifdef VERIFY + /* serialize must succeed because the point was just loaded */ + VERIFY_CHECK(ret && size == 33); +#else + (void) ret; +#endif + } + return 1; +} + +int secp256k1_musig_aggnonce_parse(const secp256k1_context* ctx, secp256k1_musig_aggnonce* nonce, const unsigned char *in66) { + secp256k1_ge ges[2]; + int i; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(nonce != NULL); + ARG_CHECK(in66 != NULL); + + for (i = 0; i < 2; i++) { + if (!secp256k1_musig_ge_parse_ext(&ges[i], &in66[33*i])) { + return 0; + } + } + secp256k1_musig_aggnonce_save(nonce, ges); + return 1; +} + +int secp256k1_musig_aggnonce_serialize(const secp256k1_context* ctx, unsigned char *out66, const secp256k1_musig_aggnonce* nonce) { + secp256k1_ge ges[2]; + int i; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(out66 != NULL); + memset(out66, 0, 66); + ARG_CHECK(nonce != NULL); + + if (!secp256k1_musig_aggnonce_load(ctx, ges, nonce)) { + return 0; + } + for (i = 0; i < 2; i++) { + secp256k1_musig_ge_serialize_ext(&out66[33*i], &ges[i]); + } + return 1; +} + +int secp256k1_musig_partial_sig_parse(const secp256k1_context* ctx, secp256k1_musig_partial_sig* sig, const unsigned char *in32) { + secp256k1_scalar tmp; + int overflow; + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(sig != NULL); + ARG_CHECK(in32 != NULL); + + /* Ensure that using the signature will fail if parsing fails (and the user + * doesn't check the return value). */ + memset(sig, 0, sizeof(*sig)); + + secp256k1_scalar_set_b32(&tmp, in32, &overflow); + if (overflow) { + return 0; + } + secp256k1_musig_partial_sig_save(sig, &tmp); + return 1; +} + +int secp256k1_musig_partial_sig_serialize(const secp256k1_context* ctx, unsigned char *out32, const secp256k1_musig_partial_sig* sig) { + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(out32 != NULL); + ARG_CHECK(sig != NULL); + ARG_CHECK(secp256k1_memcmp_var(&sig->data[0], secp256k1_musig_partial_sig_magic, 4) == 0); + + memcpy(out32, &sig->data[4], 32); + return 1; +} + +/* Write optional inputs into the hash */ +static void secp256k1_nonce_function_musig_helper(secp256k1_sha256 *sha, unsigned int prefix_size, const unsigned char *data, unsigned char len) { + unsigned char zero[7] = { 0 }; + /* The spec requires length prefixes to be between 1 and 8 bytes + * (inclusive) */ + VERIFY_CHECK(prefix_size >= 1 && prefix_size <= 8); + /* Since the length of all input data fits in a byte, we can always pad the + * length prefix with prefix_size - 1 zero bytes. */ + secp256k1_sha256_write(sha, zero, prefix_size - 1); + if (data != NULL) { + secp256k1_sha256_write(sha, &len, 1); + secp256k1_sha256_write(sha, data, len); + } else { + len = 0; + secp256k1_sha256_write(sha, &len, 1); + } +} + +/* Initializes SHA256 with fixed midstate. This midstate was computed by applying + * SHA256 to SHA256("MuSig/aux")||SHA256("MuSig/aux"). */ +static void secp256k1_nonce_function_musig_sha256_tagged_aux(secp256k1_sha256 *sha) { + secp256k1_sha256_initialize(sha); + sha->s[0] = 0xa19e884bul; + sha->s[1] = 0xf463fe7eul; + sha->s[2] = 0x2f18f9a2ul; + sha->s[3] = 0xbeb0f9fful; + sha->s[4] = 0x0f37e8b0ul; + sha->s[5] = 0x06ebd26ful; + sha->s[6] = 0xe3b243d2ul; + sha->s[7] = 0x522fb150ul; + sha->bytes = 64; +} + +/* Initializes SHA256 with fixed midstate. This midstate was computed by applying + * SHA256 to SHA256("MuSig/nonce")||SHA256("MuSig/nonce"). */ +static void secp256k1_nonce_function_musig_sha256_tagged(secp256k1_sha256 *sha) { + secp256k1_sha256_initialize(sha); + sha->s[0] = 0x07101b64ul; + sha->s[1] = 0x18003414ul; + sha->s[2] = 0x0391bc43ul; + sha->s[3] = 0x0e6258eeul; + sha->s[4] = 0x29d26b72ul; + sha->s[5] = 0x8343937eul; + sha->s[6] = 0xb7a0a4fbul; + sha->s[7] = 0xff568a30ul; + sha->bytes = 64; +} + +static void secp256k1_nonce_function_musig(secp256k1_scalar *k, const unsigned char *session_secrand, const unsigned char *msg32, const unsigned char *seckey32, const unsigned char *pk33, const unsigned char *agg_pk32, const unsigned char *extra_input32) { + secp256k1_sha256 sha; + unsigned char rand[32]; + unsigned char i; + unsigned char msg_present; + + if (seckey32 != NULL) { + secp256k1_nonce_function_musig_sha256_tagged_aux(&sha); + secp256k1_sha256_write(&sha, session_secrand, 32); + secp256k1_sha256_finalize(&sha, rand); + for (i = 0; i < 32; i++) { + rand[i] ^= seckey32[i]; + } + } else { + memcpy(rand, session_secrand, sizeof(rand)); + } + + secp256k1_nonce_function_musig_sha256_tagged(&sha); + secp256k1_sha256_write(&sha, rand, sizeof(rand)); + secp256k1_nonce_function_musig_helper(&sha, 1, pk33, 33); + secp256k1_nonce_function_musig_helper(&sha, 1, agg_pk32, 32); + msg_present = msg32 != NULL; + secp256k1_sha256_write(&sha, &msg_present, 1); + if (msg_present) { + secp256k1_nonce_function_musig_helper(&sha, 8, msg32, 32); + } + secp256k1_nonce_function_musig_helper(&sha, 4, extra_input32, 32); + + for (i = 0; i < 2; i++) { + unsigned char buf[32]; + secp256k1_sha256 sha_tmp = sha; + secp256k1_sha256_write(&sha_tmp, &i, 1); + secp256k1_sha256_finalize(&sha_tmp, buf); + secp256k1_scalar_set_b32(&k[i], buf, NULL); + + /* Attempt to erase secret data */ + secp256k1_memclear(buf, sizeof(buf)); + secp256k1_sha256_clear(&sha_tmp); + } + secp256k1_memclear(rand, sizeof(rand)); + secp256k1_sha256_clear(&sha); +} + +static int secp256k1_musig_nonce_gen_internal(const secp256k1_context* ctx, secp256k1_musig_secnonce *secnonce, secp256k1_musig_pubnonce *pubnonce, const unsigned char *input_nonce, const unsigned char *seckey, const secp256k1_pubkey *pubkey, const unsigned char *msg32, const secp256k1_musig_keyagg_cache *keyagg_cache, const unsigned char *extra_input32) { + secp256k1_scalar k[2]; + secp256k1_ge nonce_pts[2]; + int i; + unsigned char pk_ser[33]; + size_t pk_ser_len = sizeof(pk_ser); + unsigned char aggpk_ser[32]; + unsigned char *aggpk_ser_ptr = NULL; + secp256k1_ge pk; + int pk_serialize_success; + int ret = 1; + + ARG_CHECK(pubnonce != NULL); + memset(pubnonce, 0, sizeof(*pubnonce)); + ARG_CHECK(pubkey != NULL); + ARG_CHECK(secp256k1_ecmult_gen_context_is_built(&ctx->ecmult_gen_ctx)); + + /* Check that the seckey is valid to be able to sign for it later. */ + if (seckey != NULL) { + secp256k1_scalar sk; + ret &= secp256k1_scalar_set_b32_seckey(&sk, seckey); + secp256k1_scalar_clear(&sk); + } + + if (keyagg_cache != NULL) { + secp256k1_keyagg_cache_internal cache_i; + if (!secp256k1_keyagg_cache_load(ctx, &cache_i, keyagg_cache)) { + return 0; + } + /* The loaded point cache_i.pk can not be the point at infinity. */ + secp256k1_fe_get_b32(aggpk_ser, &cache_i.pk.x); + aggpk_ser_ptr = aggpk_ser; + } + if (!secp256k1_pubkey_load(ctx, &pk, pubkey)) { + return 0; + } + pk_serialize_success = secp256k1_eckey_pubkey_serialize(&pk, pk_ser, &pk_ser_len, 1); + +#ifdef VERIFY + /* A pubkey cannot be the point at infinity */ + VERIFY_CHECK(pk_serialize_success); + VERIFY_CHECK(pk_ser_len == sizeof(pk_ser)); +#else + (void) pk_serialize_success; +#endif + + secp256k1_nonce_function_musig(k, input_nonce, msg32, seckey, pk_ser, aggpk_ser_ptr, extra_input32); + VERIFY_CHECK(!secp256k1_scalar_is_zero(&k[0])); + VERIFY_CHECK(!secp256k1_scalar_is_zero(&k[1])); + secp256k1_musig_secnonce_save(secnonce, k, &pk); + secp256k1_musig_secnonce_invalidate(ctx, secnonce, !ret); + + for (i = 0; i < 2; i++) { + secp256k1_gej nonce_ptj; + secp256k1_ecmult_gen(&ctx->ecmult_gen_ctx, &nonce_ptj, &k[i]); + secp256k1_ge_set_gej(&nonce_pts[i], &nonce_ptj); + secp256k1_declassify(ctx, &nonce_pts[i], sizeof(nonce_pts[i])); + secp256k1_scalar_clear(&k[i]); + secp256k1_gej_clear(&nonce_ptj); + } + /* None of the nonce_pts will be infinity because k != 0 with overwhelming + * probability */ + secp256k1_musig_pubnonce_save(pubnonce, nonce_pts); + return ret; +} + +int secp256k1_musig_nonce_gen(const secp256k1_context* ctx, secp256k1_musig_secnonce *secnonce, secp256k1_musig_pubnonce *pubnonce, unsigned char *session_secrand32, const unsigned char *seckey, const secp256k1_pubkey *pubkey, const unsigned char *msg32, const secp256k1_musig_keyagg_cache *keyagg_cache, const unsigned char *extra_input32) { + int ret = 1; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(secnonce != NULL); + memset(secnonce, 0, sizeof(*secnonce)); + ARG_CHECK(session_secrand32 != NULL); + + /* Check in constant time that the session_secrand32 is not 0 as a + * defense-in-depth measure that may protect against a faulty RNG. */ + ret &= !secp256k1_is_zero_array(session_secrand32, 32); + + /* We can declassify because branching on ret is only relevant when this + * function called with an invalid session_secrand32 argument */ + secp256k1_declassify(ctx, &ret, sizeof(ret)); + if (ret == 0) { + secp256k1_musig_secnonce_invalidate(ctx, secnonce, 1); + return 0; + } + + ret &= secp256k1_musig_nonce_gen_internal(ctx, secnonce, pubnonce, session_secrand32, seckey, pubkey, msg32, keyagg_cache, extra_input32); + + /* Set the session_secrand32 buffer to zero to prevent the caller from using + * nonce_gen multiple times with the same buffer. */ + secp256k1_memczero(session_secrand32, 32, ret); + return ret; +} + +int secp256k1_musig_nonce_gen_counter(const secp256k1_context* ctx, secp256k1_musig_secnonce *secnonce, secp256k1_musig_pubnonce *pubnonce, uint64_t nonrepeating_cnt, const secp256k1_keypair *keypair, const unsigned char *msg32, const secp256k1_musig_keyagg_cache *keyagg_cache, const unsigned char *extra_input32) { + unsigned char buf[32] = { 0 }; + unsigned char seckey[32]; + secp256k1_pubkey pubkey; + int ret; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(secnonce != NULL); + memset(secnonce, 0, sizeof(*secnonce)); + ARG_CHECK(keypair != NULL); + + secp256k1_write_be64(buf, nonrepeating_cnt); + /* keypair_sec and keypair_pub do not fail if the arguments are not NULL */ + ret = secp256k1_keypair_sec(ctx, seckey, keypair); + VERIFY_CHECK(ret); + ret = secp256k1_keypair_pub(ctx, &pubkey, keypair); + VERIFY_CHECK(ret); +#ifndef VERIFY + (void) ret; +#endif + + if (!secp256k1_musig_nonce_gen_internal(ctx, secnonce, pubnonce, buf, seckey, &pubkey, msg32, keyagg_cache, extra_input32)) { + return 0; + } + secp256k1_memclear(seckey, sizeof(seckey)); + return 1; +} + +static int secp256k1_musig_sum_pubnonces(const secp256k1_context* ctx, secp256k1_gej *summed_pubnonces, const secp256k1_musig_pubnonce * const* pubnonces, size_t n_pubnonces) { + size_t i; + int j; + + secp256k1_gej_set_infinity(&summed_pubnonces[0]); + secp256k1_gej_set_infinity(&summed_pubnonces[1]); + + for (i = 0; i < n_pubnonces; i++) { + secp256k1_ge nonce_pts[2]; + if (!secp256k1_musig_pubnonce_load(ctx, nonce_pts, pubnonces[i])) { + return 0; + } + for (j = 0; j < 2; j++) { + secp256k1_gej_add_ge_var(&summed_pubnonces[j], &summed_pubnonces[j], &nonce_pts[j], NULL); + } + } + return 1; +} + +int secp256k1_musig_nonce_agg(const secp256k1_context* ctx, secp256k1_musig_aggnonce *aggnonce, const secp256k1_musig_pubnonce * const* pubnonces, size_t n_pubnonces) { + secp256k1_gej aggnonce_ptsj[2]; + secp256k1_ge aggnonce_pts[2]; + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(aggnonce != NULL); + ARG_CHECK(pubnonces != NULL); + ARG_CHECK(n_pubnonces > 0); + + if (!secp256k1_musig_sum_pubnonces(ctx, aggnonce_ptsj, pubnonces, n_pubnonces)) { + return 0; + } + secp256k1_ge_set_all_gej_var(aggnonce_pts, aggnonce_ptsj, 2); + secp256k1_musig_aggnonce_save(aggnonce, aggnonce_pts); + return 1; +} + +/* Initializes SHA256 with fixed midstate. This midstate was computed by applying + * SHA256 to SHA256("MuSig/noncecoef")||SHA256("MuSig/noncecoef"). */ +static void secp256k1_musig_compute_noncehash_sha256_tagged(secp256k1_sha256 *sha) { + secp256k1_sha256_initialize(sha); + sha->s[0] = 0x2c7d5a45ul; + sha->s[1] = 0x06bf7e53ul; + sha->s[2] = 0x89be68a6ul; + sha->s[3] = 0x971254c0ul; + sha->s[4] = 0x60ac12d2ul; + sha->s[5] = 0x72846dcdul; + sha->s[6] = 0x6c81212ful; + sha->s[7] = 0xde7a2500ul; + sha->bytes = 64; +} + +/* tagged_hash(aggnonce[0], aggnonce[1], agg_pk, msg) */ +static void secp256k1_musig_compute_noncehash(unsigned char *noncehash, secp256k1_ge *aggnonce, const unsigned char *agg_pk32, const unsigned char *msg) { + unsigned char buf[33]; + secp256k1_sha256 sha; + int i; + + secp256k1_musig_compute_noncehash_sha256_tagged(&sha); + for (i = 0; i < 2; i++) { + secp256k1_musig_ge_serialize_ext(buf, &aggnonce[i]); + secp256k1_sha256_write(&sha, buf, sizeof(buf)); + } + secp256k1_sha256_write(&sha, agg_pk32, 32); + secp256k1_sha256_write(&sha, msg, 32); + secp256k1_sha256_finalize(&sha, noncehash); +} + +/* out_nonce = nonce_pts[0] + b*nonce_pts[1] */ +static void secp256k1_effective_nonce(secp256k1_gej *out_nonce, const secp256k1_ge *nonce_pts, const secp256k1_scalar *b) { + secp256k1_gej tmp; + + secp256k1_gej_set_ge(&tmp, &nonce_pts[1]); + secp256k1_ecmult(out_nonce, &tmp, b, NULL); + secp256k1_gej_add_ge_var(out_nonce, out_nonce, &nonce_pts[0], NULL); +} + +static void secp256k1_musig_nonce_process_internal(int *fin_nonce_parity, unsigned char *fin_nonce, secp256k1_scalar *b, secp256k1_ge *aggnonce_pts, const unsigned char *agg_pk32, const unsigned char *msg) { + unsigned char noncehash[32]; + secp256k1_ge fin_nonce_pt; + secp256k1_gej fin_nonce_ptj; + + secp256k1_musig_compute_noncehash(noncehash, aggnonce_pts, agg_pk32, msg); + secp256k1_scalar_set_b32(b, noncehash, NULL); + /* fin_nonce = aggnonce_pts[0] + b*aggnonce_pts[1] */ + secp256k1_effective_nonce(&fin_nonce_ptj, aggnonce_pts, b); + secp256k1_ge_set_gej(&fin_nonce_pt, &fin_nonce_ptj); + if (secp256k1_ge_is_infinity(&fin_nonce_pt)) { + fin_nonce_pt = secp256k1_ge_const_g; + } + /* fin_nonce_pt is not the point at infinity */ + secp256k1_fe_normalize_var(&fin_nonce_pt.x); + secp256k1_fe_get_b32(fin_nonce, &fin_nonce_pt.x); + secp256k1_fe_normalize_var(&fin_nonce_pt.y); + *fin_nonce_parity = secp256k1_fe_is_odd(&fin_nonce_pt.y); +} + +int secp256k1_musig_nonce_process(const secp256k1_context* ctx, secp256k1_musig_session *session, const secp256k1_musig_aggnonce *aggnonce, const unsigned char *msg32, const secp256k1_musig_keyagg_cache *keyagg_cache) { + secp256k1_keyagg_cache_internal cache_i; + secp256k1_ge aggnonce_pts[2]; + unsigned char fin_nonce[32]; + secp256k1_musig_session_internal session_i; + unsigned char agg_pk32[32]; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(session != NULL); + ARG_CHECK(aggnonce != NULL); + ARG_CHECK(msg32 != NULL); + ARG_CHECK(keyagg_cache != NULL); + + if (!secp256k1_keyagg_cache_load(ctx, &cache_i, keyagg_cache)) { + return 0; + } + secp256k1_fe_get_b32(agg_pk32, &cache_i.pk.x); + + if (!secp256k1_musig_aggnonce_load(ctx, aggnonce_pts, aggnonce)) { + return 0; + } + + secp256k1_musig_nonce_process_internal(&session_i.fin_nonce_parity, fin_nonce, &session_i.noncecoef, aggnonce_pts, agg_pk32, msg32); + secp256k1_schnorrsig_challenge(&session_i.challenge, fin_nonce, msg32, 32, agg_pk32); + + /* If there is a tweak then set `challenge` times `tweak` to the `s`-part.*/ + secp256k1_scalar_set_int(&session_i.s_part, 0); + if (!secp256k1_scalar_is_zero(&cache_i.tweak)) { + secp256k1_scalar e_tmp; + secp256k1_scalar_mul(&e_tmp, &session_i.challenge, &cache_i.tweak); + if (secp256k1_fe_is_odd(&cache_i.pk.y)) { + secp256k1_scalar_negate(&e_tmp, &e_tmp); + } + session_i.s_part = e_tmp; + } + memcpy(session_i.fin_nonce, fin_nonce, sizeof(session_i.fin_nonce)); + secp256k1_musig_session_save(session, &session_i); + return 1; +} + +static void secp256k1_musig_partial_sign_clear(secp256k1_scalar *sk, secp256k1_scalar *k) { + secp256k1_scalar_clear(sk); + secp256k1_scalar_clear(&k[0]); + secp256k1_scalar_clear(&k[1]); +} + +int secp256k1_musig_partial_sign(const secp256k1_context* ctx, secp256k1_musig_partial_sig *partial_sig, secp256k1_musig_secnonce *secnonce, const secp256k1_keypair *keypair, const secp256k1_musig_keyagg_cache *keyagg_cache, const secp256k1_musig_session *session) { + secp256k1_scalar sk; + secp256k1_ge pk, keypair_pk; + secp256k1_scalar k[2]; + secp256k1_scalar mu, s; + secp256k1_keyagg_cache_internal cache_i; + secp256k1_musig_session_internal session_i; + int ret; + + VERIFY_CHECK(ctx != NULL); + + ARG_CHECK(secnonce != NULL); + /* Fails if the magic doesn't match */ + ret = secp256k1_musig_secnonce_load(ctx, k, &pk, secnonce); + /* Set nonce to zero to avoid nonce reuse. This will cause subsequent calls + * of this function to fail */ + memset(secnonce, 0, sizeof(*secnonce)); + if (!ret) { + secp256k1_musig_partial_sign_clear(&sk, k); + return 0; + } + + ARG_CHECK(partial_sig != NULL); + ARG_CHECK(keypair != NULL); + ARG_CHECK(keyagg_cache != NULL); + ARG_CHECK(session != NULL); + + if (!secp256k1_keypair_load(ctx, &sk, &keypair_pk, keypair)) { + secp256k1_musig_partial_sign_clear(&sk, k); + return 0; + } + ARG_CHECK(secp256k1_fe_equal(&pk.x, &keypair_pk.x) + && secp256k1_fe_equal(&pk.y, &keypair_pk.y)); + if (!secp256k1_keyagg_cache_load(ctx, &cache_i, keyagg_cache)) { + secp256k1_musig_partial_sign_clear(&sk, k); + return 0; + } + + /* Negate sk if secp256k1_fe_is_odd(&cache_i.pk.y)) XOR cache_i.parity_acc. + * This corresponds to the line "Let d = gâ‹…gaccâ‹…d' mod n" in the + * specification. */ + if ((secp256k1_fe_is_odd(&cache_i.pk.y) + != cache_i.parity_acc)) { + secp256k1_scalar_negate(&sk, &sk); + } + + /* Multiply KeyAgg coefficient */ + secp256k1_musig_keyaggcoef(&mu, &cache_i, &pk); + secp256k1_scalar_mul(&sk, &sk, &mu); + + if (!secp256k1_musig_session_load(ctx, &session_i, session)) { + secp256k1_musig_partial_sign_clear(&sk, k); + return 0; + } + + if (session_i.fin_nonce_parity) { + secp256k1_scalar_negate(&k[0], &k[0]); + secp256k1_scalar_negate(&k[1], &k[1]); + } + + /* Sign */ + secp256k1_scalar_mul(&s, &session_i.challenge, &sk); + secp256k1_scalar_mul(&k[1], &session_i.noncecoef, &k[1]); + secp256k1_scalar_add(&k[0], &k[0], &k[1]); + secp256k1_scalar_add(&s, &s, &k[0]); + secp256k1_musig_partial_sig_save(partial_sig, &s); + secp256k1_musig_partial_sign_clear(&sk, k); + return 1; +} + +int secp256k1_musig_partial_sig_verify(const secp256k1_context* ctx, const secp256k1_musig_partial_sig *partial_sig, const secp256k1_musig_pubnonce *pubnonce, const secp256k1_pubkey *pubkey, const secp256k1_musig_keyagg_cache *keyagg_cache, const secp256k1_musig_session *session) { + secp256k1_keyagg_cache_internal cache_i; + secp256k1_musig_session_internal session_i; + secp256k1_scalar mu, e, s; + secp256k1_gej pkj; + secp256k1_ge nonce_pts[2]; + secp256k1_gej rj; + secp256k1_gej tmp; + secp256k1_ge pkp; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(partial_sig != NULL); + ARG_CHECK(pubnonce != NULL); + ARG_CHECK(pubkey != NULL); + ARG_CHECK(keyagg_cache != NULL); + ARG_CHECK(session != NULL); + + if (!secp256k1_musig_session_load(ctx, &session_i, session)) { + return 0; + } + + if (!secp256k1_musig_pubnonce_load(ctx, nonce_pts, pubnonce)) { + return 0; + } + /* Compute "effective" nonce rj = nonce_pts[0] + b*nonce_pts[1] */ + /* TODO: use multiexp to compute -s*G + e*mu*pubkey + nonce_pts[0] + b*nonce_pts[1] */ + secp256k1_effective_nonce(&rj, nonce_pts, &session_i.noncecoef); + + if (!secp256k1_pubkey_load(ctx, &pkp, pubkey)) { + return 0; + } + if (!secp256k1_keyagg_cache_load(ctx, &cache_i, keyagg_cache)) { + return 0; + } + /* Multiplying the challenge by the KeyAgg coefficient is equivalent + * to multiplying the signer's public key by the coefficient, except + * much easier to do. */ + secp256k1_musig_keyaggcoef(&mu, &cache_i, &pkp); + secp256k1_scalar_mul(&e, &session_i.challenge, &mu); + + /* Negate e if secp256k1_fe_is_odd(&cache_i.pk.y)) XOR cache_i.parity_acc. + * This corresponds to the line "Let g' = gâ‹…gacc mod n" and the multiplication "g'â‹…e" + * in the specification. */ + if (secp256k1_fe_is_odd(&cache_i.pk.y) + != cache_i.parity_acc) { + secp256k1_scalar_negate(&e, &e); + } + + if (!secp256k1_musig_partial_sig_load(ctx, &s, partial_sig)) { + return 0; + } + /* Compute -s*G + e*pkj + rj (e already includes the keyagg coefficient mu) */ + secp256k1_scalar_negate(&s, &s); + secp256k1_gej_set_ge(&pkj, &pkp); + secp256k1_ecmult(&tmp, &pkj, &e, &s); + if (session_i.fin_nonce_parity) { + secp256k1_gej_neg(&rj, &rj); + } + secp256k1_gej_add_var(&tmp, &tmp, &rj, NULL); + + return secp256k1_gej_is_infinity(&tmp); +} + +int secp256k1_musig_partial_sig_agg(const secp256k1_context* ctx, unsigned char *sig64, const secp256k1_musig_session *session, const secp256k1_musig_partial_sig * const* partial_sigs, size_t n_sigs) { + size_t i; + secp256k1_musig_session_internal session_i; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(sig64 != NULL); + ARG_CHECK(session != NULL); + ARG_CHECK(partial_sigs != NULL); + ARG_CHECK(n_sigs > 0); + + if (!secp256k1_musig_session_load(ctx, &session_i, session)) { + return 0; + } + for (i = 0; i < n_sigs; i++) { + secp256k1_scalar term; + if (!secp256k1_musig_partial_sig_load(ctx, &term, partial_sigs[i])) { + return 0; + } + secp256k1_scalar_add(&session_i.s_part, &session_i.s_part, &term); + } + secp256k1_scalar_get_b32(&sig64[32], &session_i.s_part); + memcpy(&sig64[0], session_i.fin_nonce, 32); + return 1; +} + +#endif diff --git a/src/modules/musig/tests_impl.h b/src/modules/musig/tests_impl.h new file mode 100644 index 00000000000000..ce6ae1784d1b77 --- /dev/null +++ b/src/modules/musig/tests_impl.h @@ -0,0 +1,1143 @@ +/*********************************************************************** + * Distributed under the MIT software license, see the accompanying * + * file COPYING or https://www.opensource.org/licenses/mit-license.php.* + ***********************************************************************/ + +#ifndef SECP256K1_MODULE_MUSIG_TESTS_IMPL_H +#define SECP256K1_MODULE_MUSIG_TESTS_IMPL_H + +#include +#include + +#include "../../../include/secp256k1.h" +#include "../../../include/secp256k1_extrakeys.h" +#include "../../../include/secp256k1_musig.h" + +#include "session.h" +#include "keyagg.h" +#include "../../scalar.h" +#include "../../field.h" +#include "../../group.h" +#include "../../hash.h" +#include "../../util.h" + +#include "vectors.h" + +static int create_keypair_and_pk(secp256k1_keypair *keypair, secp256k1_pubkey *pk, const unsigned char *sk) { + int ret; + secp256k1_keypair keypair_tmp; + ret = secp256k1_keypair_create(CTX, &keypair_tmp, sk); + ret &= secp256k1_keypair_pub(CTX, pk, &keypair_tmp); + if (keypair != NULL) { + *keypair = keypair_tmp; + } + return ret; +} + +/* Just a simple (non-tweaked) 2-of-2 MuSig aggregate, sign, verify + * test. */ +static void musig_simple_test(void) { + unsigned char sk[2][32]; + secp256k1_keypair keypair[2]; + secp256k1_musig_pubnonce pubnonce[2]; + const secp256k1_musig_pubnonce *pubnonce_ptr[2]; + secp256k1_musig_aggnonce aggnonce; + unsigned char msg[32]; + secp256k1_xonly_pubkey agg_pk; + secp256k1_musig_keyagg_cache keyagg_cache; + unsigned char session_secrand[2][32]; + secp256k1_musig_secnonce secnonce[2]; + secp256k1_pubkey pk[2]; + const secp256k1_pubkey *pk_ptr[2]; + secp256k1_musig_partial_sig partial_sig[2]; + const secp256k1_musig_partial_sig *partial_sig_ptr[2]; + unsigned char final_sig[64]; + secp256k1_musig_session session; + int i; + + testrand256(msg); + for (i = 0; i < 2; i++) { + testrand256(sk[i]); + pk_ptr[i] = &pk[i]; + pubnonce_ptr[i] = &pubnonce[i]; + partial_sig_ptr[i] = &partial_sig[i]; + + CHECK(create_keypair_and_pk(&keypair[i], &pk[i], sk[i])); + if (i == 0) { + testrand256(session_secrand[i]); + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[i], &pubnonce[i], session_secrand[i], sk[i], &pk[i], NULL, NULL, NULL) == 1); + } else { + uint64_t nonrepeating_cnt = 0; + CHECK(secp256k1_musig_nonce_gen_counter(CTX, &secnonce[i], &pubnonce[i], nonrepeating_cnt, &keypair[i], NULL, NULL, NULL) == 1); + } + } + + CHECK(secp256k1_musig_pubkey_agg(CTX, &agg_pk, &keyagg_cache, pk_ptr, 2) == 1); + CHECK(secp256k1_musig_nonce_agg(CTX, &aggnonce, pubnonce_ptr, 2) == 1); + CHECK(secp256k1_musig_nonce_process(CTX, &session, &aggnonce, msg, &keyagg_cache) == 1); + + for (i = 0; i < 2; i++) { + CHECK(secp256k1_musig_partial_sign(CTX, &partial_sig[i], &secnonce[i], &keypair[i], &keyagg_cache, &session) == 1); + CHECK(secp256k1_musig_partial_sig_verify(CTX, &partial_sig[i], &pubnonce[i], &pk[i], &keyagg_cache, &session) == 1); + } + + CHECK(secp256k1_musig_partial_sig_agg(CTX, final_sig, &session, partial_sig_ptr, 2) == 1); + CHECK(secp256k1_schnorrsig_verify(CTX, final_sig, msg, sizeof(msg), &agg_pk) == 1); +} + +/* Generate two pubnonces such that both group elements of their sum (calculated + * with secp256k1_musig_sum_pubnonces) are infinity. */ +static void pubnonce_summing_to_inf(secp256k1_musig_pubnonce *pubnonce) { + secp256k1_ge ge[2]; + int i; + secp256k1_gej summed_pubnonces[2]; + const secp256k1_musig_pubnonce *pubnonce_ptr[2]; + + testutil_random_ge_test(&ge[0]); + testutil_random_ge_test(&ge[1]); + + for (i = 0; i < 2; i++) { + secp256k1_musig_pubnonce_save(&pubnonce[i], ge); + pubnonce_ptr[i] = &pubnonce[i]; + secp256k1_ge_neg(&ge[0], &ge[0]); + secp256k1_ge_neg(&ge[1], &ge[1]); + } + + secp256k1_musig_sum_pubnonces(CTX, summed_pubnonces, pubnonce_ptr, 2); + CHECK(secp256k1_gej_is_infinity(&summed_pubnonces[0])); + CHECK(secp256k1_gej_is_infinity(&summed_pubnonces[1])); +} + +int memcmp_and_randomize(unsigned char *value, const unsigned char *expected, size_t len) { + int ret; + size_t i; + ret = secp256k1_memcmp_var(value, expected, len); + for (i = 0; i < len; i++) { + value[i] = testrand_bits(8); + } + return ret; +} + +static void musig_api_tests(void) { + secp256k1_musig_partial_sig partial_sig[2]; + const secp256k1_musig_partial_sig *partial_sig_ptr[2]; + secp256k1_musig_partial_sig invalid_partial_sig; + const secp256k1_musig_partial_sig *invalid_partial_sig_ptr[2]; + unsigned char pre_sig[64]; + unsigned char buf[32]; + unsigned char sk[2][32]; + secp256k1_keypair keypair[2]; + secp256k1_keypair invalid_keypair; + unsigned char max64[64]; + unsigned char zeros132[132] = { 0 }; + unsigned char session_secrand[2][32]; + unsigned char nonrepeating_cnt = 0; + secp256k1_musig_secnonce secnonce[2]; + secp256k1_musig_secnonce secnonce_tmp; + secp256k1_musig_secnonce invalid_secnonce; + secp256k1_musig_pubnonce pubnonce[2]; + const secp256k1_musig_pubnonce *pubnonce_ptr[2]; + unsigned char pubnonce_ser[66]; + secp256k1_musig_pubnonce inf_pubnonce[2]; + const secp256k1_musig_pubnonce *inf_pubnonce_ptr[2]; + secp256k1_musig_pubnonce invalid_pubnonce; + const secp256k1_musig_pubnonce *invalid_pubnonce_ptr[1]; + secp256k1_musig_aggnonce aggnonce; + unsigned char aggnonce_ser[66]; + unsigned char msg[32]; + secp256k1_xonly_pubkey agg_pk; + secp256k1_pubkey full_agg_pk; + secp256k1_musig_keyagg_cache keyagg_cache; + secp256k1_musig_keyagg_cache invalid_keyagg_cache; + secp256k1_musig_session session; + secp256k1_musig_session invalid_session; + secp256k1_pubkey pk[2]; + const secp256k1_pubkey *pk_ptr[2]; + secp256k1_pubkey invalid_pk; + const secp256k1_pubkey *invalid_pk_ptr2[2]; + const secp256k1_pubkey *invalid_pk_ptr3[3]; + unsigned char tweak[32]; + int i; + + /** setup **/ + memset(max64, 0xff, sizeof(max64)); + memset(&invalid_keypair, 0, sizeof(invalid_keypair)); + memset(&invalid_pk, 0, sizeof(invalid_pk)); + memset(&invalid_secnonce, 0, sizeof(invalid_secnonce)); + memset(&invalid_partial_sig, 0, sizeof(invalid_partial_sig)); + pubnonce_summing_to_inf(inf_pubnonce); + /* Simulate structs being uninitialized by setting it to 0s. We don't want + * to produce undefined behavior by actually providing uninitialized + * structs. */ + memset(&invalid_keyagg_cache, 0, sizeof(invalid_keyagg_cache)); + memset(&invalid_pk, 0, sizeof(invalid_pk)); + memset(&invalid_pubnonce, 0, sizeof(invalid_pubnonce)); + memset(&invalid_session, 0, sizeof(invalid_session)); + + testrand256(msg); + testrand256(tweak); + for (i = 0; i < 2; i++) { + pk_ptr[i] = &pk[i]; + invalid_pk_ptr2[i] = &invalid_pk; + invalid_pk_ptr3[i] = &pk[i]; + pubnonce_ptr[i] = &pubnonce[i]; + inf_pubnonce_ptr[i] = &inf_pubnonce[i]; + partial_sig_ptr[i] = &partial_sig[i]; + invalid_partial_sig_ptr[i] = &partial_sig[i]; + testrand256(session_secrand[i]); + testrand256(sk[i]); + CHECK(create_keypair_and_pk(&keypair[i], &pk[i], sk[i])); + } + invalid_pubnonce_ptr[0] = &invalid_pubnonce; + invalid_partial_sig_ptr[0] = &invalid_partial_sig; + /* invalid_pk_ptr3 has two valid, one invalid pk, which is important to test + * musig_pubkey_agg */ + invalid_pk_ptr3[2] = &invalid_pk; + + /** main test body **/ + + /** Key aggregation **/ + CHECK(secp256k1_musig_pubkey_agg(CTX, &agg_pk, &keyagg_cache, pk_ptr, 2) == 1); + CHECK(secp256k1_musig_pubkey_agg(CTX, NULL, &keyagg_cache, pk_ptr, 2) == 1); + CHECK(secp256k1_musig_pubkey_agg(CTX, &agg_pk, NULL, pk_ptr, 2) == 1); + CHECK_ILLEGAL(CTX, secp256k1_musig_pubkey_agg(CTX, &agg_pk, &keyagg_cache, NULL, 2)); + CHECK(memcmp_and_randomize(agg_pk.data, zeros132, sizeof(agg_pk.data)) == 0); + CHECK_ILLEGAL(CTX, secp256k1_musig_pubkey_agg(CTX, &agg_pk, &keyagg_cache, invalid_pk_ptr2, 2)); + CHECK(memcmp_and_randomize(agg_pk.data, zeros132, sizeof(agg_pk.data)) == 0); + CHECK_ILLEGAL(CTX, secp256k1_musig_pubkey_agg(CTX, &agg_pk, &keyagg_cache, invalid_pk_ptr3, 3)); + CHECK(memcmp_and_randomize(agg_pk.data, zeros132, sizeof(agg_pk.data)) == 0); + CHECK_ILLEGAL(CTX, secp256k1_musig_pubkey_agg(CTX, &agg_pk, &keyagg_cache, pk_ptr, 0)); + CHECK(memcmp_and_randomize(agg_pk.data, zeros132, sizeof(agg_pk.data)) == 0); + CHECK_ILLEGAL(CTX, secp256k1_musig_pubkey_agg(CTX, &agg_pk, &keyagg_cache, NULL, 0)); + CHECK(memcmp_and_randomize(agg_pk.data, zeros132, sizeof(agg_pk.data)) == 0); + + CHECK(secp256k1_musig_pubkey_agg(CTX, &agg_pk, &keyagg_cache, pk_ptr, 2) == 1); + + /* pubkey_get */ + CHECK(secp256k1_musig_pubkey_get(CTX, &full_agg_pk, &keyagg_cache) == 1); + CHECK_ILLEGAL(CTX, secp256k1_musig_pubkey_get(CTX, NULL, &keyagg_cache)); + CHECK_ILLEGAL(CTX, secp256k1_musig_pubkey_get(CTX, &full_agg_pk, NULL)); + CHECK(secp256k1_memcmp_var(&full_agg_pk, zeros132, sizeof(full_agg_pk)) == 0); + + /** Tweaking **/ + { + int (*tweak_func[2]) (const secp256k1_context* ctx, secp256k1_pubkey *output_pubkey, secp256k1_musig_keyagg_cache *keyagg_cache, const unsigned char *tweak32); + tweak_func[0] = secp256k1_musig_pubkey_ec_tweak_add; + tweak_func[1] = secp256k1_musig_pubkey_xonly_tweak_add; + for (i = 0; i < 2; i++) { + secp256k1_pubkey tmp_output_pk; + secp256k1_musig_keyagg_cache tmp_keyagg_cache = keyagg_cache; + CHECK((*tweak_func[i])(CTX, &tmp_output_pk, &tmp_keyagg_cache, tweak) == 1); + /* Reset keyagg_cache */ + tmp_keyagg_cache = keyagg_cache; + CHECK((*tweak_func[i])(CTX, NULL, &tmp_keyagg_cache, tweak) == 1); + tmp_keyagg_cache = keyagg_cache; + CHECK_ILLEGAL(CTX, (*tweak_func[i])(CTX, &tmp_output_pk, NULL, tweak)); + CHECK(memcmp_and_randomize(tmp_output_pk.data, zeros132, sizeof(tmp_output_pk.data)) == 0); + tmp_keyagg_cache = keyagg_cache; + CHECK_ILLEGAL(CTX, (*tweak_func[i])(CTX, &tmp_output_pk, &tmp_keyagg_cache, NULL)); + CHECK(memcmp_and_randomize(tmp_output_pk.data, zeros132, sizeof(tmp_output_pk.data)) == 0); + tmp_keyagg_cache = keyagg_cache; + CHECK((*tweak_func[i])(CTX, &tmp_output_pk, &tmp_keyagg_cache, max64) == 0); + CHECK(memcmp_and_randomize(tmp_output_pk.data, zeros132, sizeof(tmp_output_pk.data)) == 0); + tmp_keyagg_cache = keyagg_cache; + /* Uninitialized keyagg_cache */ + CHECK_ILLEGAL(CTX, (*tweak_func[i])(CTX, &tmp_output_pk, &invalid_keyagg_cache, tweak)); + CHECK(memcmp_and_randomize(tmp_output_pk.data, zeros132, sizeof(tmp_output_pk.data)) == 0); + } + } + + /** Session creation with nonce_gen **/ + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], session_secrand[0], sk[0], &pk[0], msg, &keyagg_cache, max64) == 1); + /* nonce_gen, if successful, sets session_secrand to the zero array, which + * makes subsequent nonce_gen calls with the same session_secrand fail. So + * check that session_secrand is indeed the zero array and fill it with + * random values again. */ + CHECK(memcmp_and_randomize(session_secrand[0], zeros132, sizeof(session_secrand[0])) == 0); + + CHECK_ILLEGAL(STATIC_CTX, secp256k1_musig_nonce_gen(STATIC_CTX, &secnonce[0], &pubnonce[0], session_secrand[0], sk[0], &pk[0], msg, &keyagg_cache, max64)); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_gen(CTX, NULL, &pubnonce[0], session_secrand[0], sk[0], &pk[0], msg, &keyagg_cache, max64)); + + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_gen(CTX, &secnonce[0], NULL, session_secrand[0], sk[0], &pk[0], msg, &keyagg_cache, max64)); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], NULL, sk[0], &pk[0], msg, &keyagg_cache, max64)); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + + /* session_secrand = 0 is disallowed because it indicates a faulty RNG */ + memcpy(&session_secrand[0], zeros132, sizeof(session_secrand[0])); + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], zeros132, sk[0], &pk[0], msg, &keyagg_cache, max64) == 0); + CHECK(memcmp_and_randomize(session_secrand[0], zeros132, sizeof(session_secrand[0])) == 0); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], session_secrand[0], NULL, &pk[0], msg, &keyagg_cache, max64) == 1); + CHECK(memcmp_and_randomize(session_secrand[0], zeros132, sizeof(session_secrand[0])) == 0); + + /* invalid seckey */ + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], session_secrand[0], max64, &pk[0], msg, &keyagg_cache, max64) == 0); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], session_secrand[0], sk[0], NULL, msg, &keyagg_cache, max64)); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], session_secrand[0], sk[0], &invalid_pk, msg, &keyagg_cache, max64)); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], session_secrand[0], sk[0], &pk[0], NULL, &keyagg_cache, max64) == 1); + CHECK(memcmp_and_randomize(session_secrand[0], zeros132, sizeof(session_secrand[0])) == 0); + + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], session_secrand[0], sk[0], &pk[0], msg, NULL, max64) == 1); + CHECK(memcmp_and_randomize(session_secrand[0], zeros132, sizeof(session_secrand[0])) == 0); + + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], session_secrand[0], sk[0], &pk[0], msg, &invalid_keyagg_cache, max64)); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], session_secrand[0], sk[0], &pk[0], msg, &keyagg_cache, NULL) == 1); + CHECK(memcmp_and_randomize(session_secrand[0], zeros132, sizeof(session_secrand[0])) == 0); + + /* Every in-argument except session_secrand and pubkey can be NULL */ + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], session_secrand[0], NULL, &pk[0], NULL, NULL, NULL) == 1); + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[1], &pubnonce[1], session_secrand[1], sk[1], &pk[1], NULL, NULL, NULL) == 1); + + /** Session creation with nonce_gen_counter **/ + CHECK(secp256k1_musig_nonce_gen_counter(CTX, &secnonce[0], &pubnonce[0], nonrepeating_cnt, &keypair[0], msg, &keyagg_cache, max64) == 1); + CHECK_ILLEGAL(STATIC_CTX, secp256k1_musig_nonce_gen_counter(STATIC_CTX, &secnonce[0], &pubnonce[0], nonrepeating_cnt, &keypair[0], msg, &keyagg_cache, max64)); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_gen_counter(CTX, NULL, &pubnonce[0], nonrepeating_cnt, &keypair[0], msg, &keyagg_cache, max64)); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_gen_counter(CTX, &secnonce[0], NULL, nonrepeating_cnt, &keypair[0], msg, &keyagg_cache, max64)); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + /* using nonce_gen_counter requires keypair */ + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_gen_counter(CTX, &secnonce[0], &pubnonce[0], nonrepeating_cnt, NULL, msg, &keyagg_cache, max64)); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + /* invalid keypair */ + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_gen_counter(CTX, &secnonce[0], &pubnonce[0], nonrepeating_cnt, &invalid_keypair, msg, &keyagg_cache, max64)); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + CHECK(secp256k1_musig_nonce_gen_counter(CTX, &secnonce[0], &pubnonce[0], nonrepeating_cnt, &keypair[0], NULL, &keyagg_cache, max64) == 1); + CHECK(secp256k1_musig_nonce_gen_counter(CTX, &secnonce[0], &pubnonce[0], nonrepeating_cnt, &keypair[0], msg, NULL, max64) == 1); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_gen_counter(CTX, &secnonce[0], &pubnonce[0], nonrepeating_cnt, &keypair[0], msg, &invalid_keyagg_cache, max64)); + CHECK(memcmp_and_randomize(secnonce[0].data, zeros132, sizeof(secnonce[0].data)) == 0); + CHECK(secp256k1_musig_nonce_gen_counter(CTX, &secnonce[0], &pubnonce[0], nonrepeating_cnt,&keypair[0], msg, &keyagg_cache, NULL) == 1); + + /* Every in-argument except nonrepeating_cnt and keypair can be NULL */ + CHECK(secp256k1_musig_nonce_gen_counter(CTX, &secnonce[0], &pubnonce[0], nonrepeating_cnt, &keypair[0], NULL, NULL, NULL) == 1); + CHECK(secp256k1_musig_nonce_gen_counter(CTX, &secnonce[1], &pubnonce[1], nonrepeating_cnt, &keypair[1], NULL, NULL, NULL) == 1); + + + /** Serialize and parse public nonces **/ + CHECK_ILLEGAL(CTX, secp256k1_musig_pubnonce_serialize(CTX, NULL, &pubnonce[0])); + CHECK_ILLEGAL(CTX, secp256k1_musig_pubnonce_serialize(CTX, pubnonce_ser, NULL)); + CHECK(memcmp_and_randomize(pubnonce_ser, zeros132, sizeof(pubnonce_ser)) == 0); + CHECK_ILLEGAL(CTX, secp256k1_musig_pubnonce_serialize(CTX, pubnonce_ser, &invalid_pubnonce)); + CHECK(memcmp_and_randomize(pubnonce_ser, zeros132, sizeof(pubnonce_ser)) == 0); + CHECK(secp256k1_musig_pubnonce_serialize(CTX, pubnonce_ser, &pubnonce[0]) == 1); + + CHECK(secp256k1_musig_pubnonce_parse(CTX, &pubnonce[0], pubnonce_ser) == 1); + CHECK_ILLEGAL(CTX, secp256k1_musig_pubnonce_parse(CTX, NULL, pubnonce_ser)); + CHECK_ILLEGAL(CTX, secp256k1_musig_pubnonce_parse(CTX, &pubnonce[0], NULL)); + CHECK(secp256k1_musig_pubnonce_parse(CTX, &pubnonce[0], zeros132) == 0); + CHECK(secp256k1_musig_pubnonce_parse(CTX, &pubnonce[0], pubnonce_ser) == 1); + + { + /* Check that serialize and parse results in the same value */ + secp256k1_musig_pubnonce tmp; + CHECK(secp256k1_musig_pubnonce_serialize(CTX, pubnonce_ser, &pubnonce[0]) == 1); + CHECK(secp256k1_musig_pubnonce_parse(CTX, &tmp, pubnonce_ser) == 1); + CHECK(secp256k1_memcmp_var(&tmp, &pubnonce[0], sizeof(tmp)) == 0); + } + + /** Receive nonces and aggregate **/ + CHECK(secp256k1_musig_nonce_agg(CTX, &aggnonce, pubnonce_ptr, 2) == 1); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_agg(CTX, NULL, pubnonce_ptr, 2)); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_agg(CTX, &aggnonce, NULL, 2)); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_agg(CTX, &aggnonce, pubnonce_ptr, 0)); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_agg(CTX, &aggnonce, invalid_pubnonce_ptr, 1)); + CHECK(secp256k1_musig_nonce_agg(CTX, &aggnonce, inf_pubnonce_ptr, 2) == 1); + { + /* Check that the aggnonce encodes two points at infinity */ + secp256k1_ge aggnonce_pt[2]; + secp256k1_musig_aggnonce_load(CTX, aggnonce_pt, &aggnonce); + for (i = 0; i < 2; i++) { + secp256k1_ge_is_infinity(&aggnonce_pt[i]); + } + } + CHECK(secp256k1_musig_nonce_agg(CTX, &aggnonce, pubnonce_ptr, 2) == 1); + + /** Serialize and parse aggregate nonces **/ + CHECK(secp256k1_musig_aggnonce_serialize(CTX, aggnonce_ser, &aggnonce) == 1); + CHECK_ILLEGAL(CTX, secp256k1_musig_aggnonce_serialize(CTX, NULL, &aggnonce)); + CHECK_ILLEGAL(CTX, secp256k1_musig_aggnonce_serialize(CTX, aggnonce_ser, NULL)); + CHECK(memcmp_and_randomize(aggnonce_ser, zeros132, sizeof(aggnonce_ser)) == 0); + CHECK_ILLEGAL(CTX, secp256k1_musig_aggnonce_serialize(CTX, aggnonce_ser, (secp256k1_musig_aggnonce*) &invalid_pubnonce)); + CHECK(memcmp_and_randomize(aggnonce_ser, zeros132, sizeof(aggnonce_ser)) == 0); + CHECK(secp256k1_musig_aggnonce_serialize(CTX, aggnonce_ser, &aggnonce) == 1); + + CHECK(secp256k1_musig_aggnonce_parse(CTX, &aggnonce, aggnonce_ser) == 1); + CHECK_ILLEGAL(CTX, secp256k1_musig_aggnonce_parse(CTX, NULL, aggnonce_ser)); + CHECK_ILLEGAL(CTX, secp256k1_musig_aggnonce_parse(CTX, &aggnonce, NULL)); + CHECK(secp256k1_musig_aggnonce_parse(CTX, &aggnonce, zeros132) == 1); + CHECK(secp256k1_musig_aggnonce_parse(CTX, &aggnonce, aggnonce_ser) == 1); + + { + /* Check that serialize and parse results in the same value */ + secp256k1_musig_aggnonce tmp; + CHECK(secp256k1_musig_aggnonce_serialize(CTX, aggnonce_ser, &aggnonce) == 1); + CHECK(secp256k1_musig_aggnonce_parse(CTX, &tmp, aggnonce_ser) == 1); + CHECK(secp256k1_memcmp_var(&tmp, &aggnonce, sizeof(tmp)) == 0); + } + + /** Process nonces **/ + CHECK(secp256k1_musig_nonce_process(CTX, &session, &aggnonce, msg, &keyagg_cache) == 1); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_process(CTX, NULL, &aggnonce, msg, &keyagg_cache)); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_process(CTX, &session, NULL, msg, &keyagg_cache)); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_process(CTX, &session, (secp256k1_musig_aggnonce*) &invalid_pubnonce, msg, &keyagg_cache)); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_process(CTX, &session, &aggnonce, NULL, &keyagg_cache)); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_process(CTX, &session, &aggnonce, msg, NULL)); + CHECK_ILLEGAL(CTX, secp256k1_musig_nonce_process(CTX, &session, &aggnonce, msg, &invalid_keyagg_cache)); + + CHECK(secp256k1_musig_nonce_process(CTX, &session, &aggnonce, msg, &keyagg_cache) == 1); + + memcpy(&secnonce_tmp, &secnonce[0], sizeof(secnonce_tmp)); + CHECK(secp256k1_musig_partial_sign(CTX, &partial_sig[0], &secnonce_tmp, &keypair[0], &keyagg_cache, &session) == 1); + /* The secnonce is set to 0 and subsequent signing attempts fail */ + CHECK(secp256k1_memcmp_var(&secnonce_tmp, zeros132, sizeof(secnonce_tmp)) == 0); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, &partial_sig[0], &secnonce_tmp, &keypair[0], &keyagg_cache, &session)); + memcpy(&secnonce_tmp, &secnonce[0], sizeof(secnonce_tmp)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, NULL, &secnonce_tmp, &keypair[0], &keyagg_cache, &session)); + memcpy(&secnonce_tmp, &secnonce[0], sizeof(secnonce_tmp)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, &partial_sig[0], NULL, &keypair[0], &keyagg_cache, &session)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, &partial_sig[0], &invalid_secnonce, &keypair[0], &keyagg_cache, &session)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, &partial_sig[0], &secnonce_tmp, NULL, &keyagg_cache, &session)); + memcpy(&secnonce_tmp, &secnonce[0], sizeof(secnonce_tmp)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, &partial_sig[0], &secnonce_tmp, &invalid_keypair, &keyagg_cache, &session)); + memcpy(&secnonce_tmp, &secnonce[0], sizeof(secnonce_tmp)); + { + unsigned char sk_tmp[32]; + secp256k1_keypair keypair_tmp; + testrand256(sk_tmp); + CHECK(secp256k1_keypair_create(CTX, &keypair_tmp, sk_tmp)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, &partial_sig[0], &secnonce_tmp, &keypair_tmp, &keyagg_cache, &session)); + memcpy(&secnonce_tmp, &secnonce[0], sizeof(secnonce_tmp)); + } + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, &partial_sig[0], &secnonce_tmp, &keypair[0], NULL, &session)); + memcpy(&secnonce_tmp, &secnonce[0], sizeof(secnonce_tmp)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, &partial_sig[0], &secnonce_tmp, &keypair[0], &invalid_keyagg_cache, &session)); + memcpy(&secnonce_tmp, &secnonce[0], sizeof(secnonce_tmp)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, &partial_sig[0], &secnonce_tmp, &keypair[0], &keyagg_cache, NULL)); + memcpy(&secnonce_tmp, &secnonce[0], sizeof(secnonce_tmp)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, &partial_sig[0], &secnonce_tmp, &keypair[0], &keyagg_cache, &invalid_session)); + memcpy(&secnonce_tmp, &secnonce[0], sizeof(secnonce_tmp)); + + CHECK(secp256k1_musig_partial_sign(CTX, &partial_sig[0], &secnonce[0], &keypair[0], &keyagg_cache, &session) == 1); + CHECK(secp256k1_musig_partial_sign(CTX, &partial_sig[1], &secnonce[1], &keypair[1], &keyagg_cache, &session) == 1); + + CHECK(secp256k1_musig_partial_sig_serialize(CTX, buf, &partial_sig[0]) == 1); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_serialize(CTX, NULL, &partial_sig[0])); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_serialize(CTX, buf, NULL)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_serialize(CTX, buf, &invalid_partial_sig)); + CHECK(secp256k1_musig_partial_sig_parse(CTX, &partial_sig[0], buf) == 1); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_parse(CTX, NULL, buf)); + { + /* Check that parsing failure results in an invalid sig */ + secp256k1_musig_partial_sig tmp; + CHECK(secp256k1_musig_partial_sig_parse(CTX, &tmp, max64) == 0); + CHECK(secp256k1_memcmp_var(&tmp, zeros132, sizeof(partial_sig[0])) == 0); + } + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_parse(CTX, &partial_sig[0], NULL)); + + { + /* Check that serialize and parse results in the same value */ + secp256k1_musig_partial_sig tmp; + CHECK(secp256k1_musig_partial_sig_serialize(CTX, buf, &partial_sig[0]) == 1); + CHECK(secp256k1_musig_partial_sig_parse(CTX, &tmp, buf) == 1); + CHECK(secp256k1_memcmp_var(&tmp, &partial_sig[0], sizeof(tmp)) == 0); + } + + /** Partial signature verification */ + CHECK(secp256k1_musig_partial_sig_verify(CTX, &partial_sig[0], &pubnonce[0], &pk[0], &keyagg_cache, &session) == 1); + CHECK(secp256k1_musig_partial_sig_verify(CTX, &partial_sig[1], &pubnonce[0], &pk[0], &keyagg_cache, &session) == 0); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_verify(CTX, NULL, &pubnonce[0], &pk[0], &keyagg_cache, &session)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_verify(CTX, &invalid_partial_sig, &pubnonce[0], &pk[0], &keyagg_cache, &session)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_verify(CTX, &partial_sig[0], NULL, &pk[0], &keyagg_cache, &session)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_verify(CTX, &partial_sig[0], &invalid_pubnonce, &pk[0], &keyagg_cache, &session)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_verify(CTX, &partial_sig[0], &pubnonce[0], NULL, &keyagg_cache, &session)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_verify(CTX, &partial_sig[0], &pubnonce[0], &invalid_pk, &keyagg_cache, &session)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_verify(CTX, &partial_sig[0], &pubnonce[0], &pk[0], NULL, &session)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_verify(CTX, &partial_sig[0], &pubnonce[0], &pk[0], &invalid_keyagg_cache, &session)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_verify(CTX, &partial_sig[0], &pubnonce[0], &pk[0], &keyagg_cache, NULL)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_verify(CTX, &partial_sig[0], &pubnonce[0], &pk[0], &keyagg_cache, &invalid_session)); + + CHECK(secp256k1_musig_partial_sig_verify(CTX, &partial_sig[0], &pubnonce[0], &pk[0], &keyagg_cache, &session) == 1); + CHECK(secp256k1_musig_partial_sig_verify(CTX, &partial_sig[1], &pubnonce[1], &pk[1], &keyagg_cache, &session) == 1); + + /** Signature aggregation and verification */ + CHECK(secp256k1_musig_partial_sig_agg(CTX, pre_sig, &session, partial_sig_ptr, 2) == 1); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_agg(CTX, NULL, &session, partial_sig_ptr, 2)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_agg(CTX, pre_sig, NULL, partial_sig_ptr, 2)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_agg(CTX, pre_sig, &invalid_session, partial_sig_ptr, 2)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_agg(CTX, pre_sig, &session, NULL, 2)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_agg(CTX, pre_sig, &session, invalid_partial_sig_ptr, 2)); + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sig_agg(CTX, pre_sig, &session, partial_sig_ptr, 0)); + CHECK(secp256k1_musig_partial_sig_agg(CTX, pre_sig, &session, partial_sig_ptr, 1) == 1); + CHECK(secp256k1_musig_partial_sig_agg(CTX, pre_sig, &session, partial_sig_ptr, 2) == 1); +} + +static void musig_nonce_bitflip(unsigned char **args, size_t n_flip, size_t n_bytes) { + secp256k1_scalar k1[2], k2[2]; + + secp256k1_nonce_function_musig(k1, args[0], args[1], args[2], args[3], args[4], args[5]); + testrand_flip(args[n_flip], n_bytes); + secp256k1_nonce_function_musig(k2, args[0], args[1], args[2], args[3], args[4], args[5]); + CHECK(secp256k1_scalar_eq(&k1[0], &k2[0]) == 0); + CHECK(secp256k1_scalar_eq(&k1[1], &k2[1]) == 0); +} + +static void musig_nonce_test(void) { + unsigned char *args[6]; + unsigned char session_secrand[32]; + unsigned char sk[32]; + unsigned char pk[33]; + unsigned char msg[32]; + unsigned char agg_pk[32]; + unsigned char extra_input[32]; + int i, j; + secp256k1_scalar k[6][2]; + + testrand_bytes_test(session_secrand, sizeof(session_secrand)); + testrand_bytes_test(sk, sizeof(sk)); + testrand_bytes_test(pk, sizeof(pk)); + testrand_bytes_test(msg, sizeof(msg)); + testrand_bytes_test(agg_pk, sizeof(agg_pk)); + testrand_bytes_test(extra_input, sizeof(extra_input)); + + /* Check that a bitflip in an argument results in different nonces. */ + args[0] = session_secrand; + args[1] = msg; + args[2] = sk; + args[3] = pk; + args[4] = agg_pk; + args[5] = extra_input; + for (i = 0; i < COUNT; i++) { + musig_nonce_bitflip(args, 0, sizeof(session_secrand)); + musig_nonce_bitflip(args, 1, sizeof(msg)); + musig_nonce_bitflip(args, 2, sizeof(sk)); + musig_nonce_bitflip(args, 3, sizeof(pk)); + musig_nonce_bitflip(args, 4, sizeof(agg_pk)); + musig_nonce_bitflip(args, 5, sizeof(extra_input)); + } + /* Check that if any argument is NULL, a different nonce is produced than if + * any other argument is NULL. */ + memcpy(msg, session_secrand, sizeof(msg)); + memcpy(sk, session_secrand, sizeof(sk)); + memcpy(pk, session_secrand, sizeof(session_secrand)); + memcpy(agg_pk, session_secrand, sizeof(agg_pk)); + memcpy(extra_input, session_secrand, sizeof(extra_input)); + secp256k1_nonce_function_musig(k[0], args[0], args[1], args[2], args[3], args[4], args[5]); + secp256k1_nonce_function_musig(k[1], args[0], NULL, args[2], args[3], args[4], args[5]); + secp256k1_nonce_function_musig(k[2], args[0], args[1], NULL, args[3], args[4], args[5]); + secp256k1_nonce_function_musig(k[3], args[0], args[1], args[2], NULL, args[4], args[5]); + secp256k1_nonce_function_musig(k[4], args[0], args[1], args[2], args[3], NULL, args[5]); + secp256k1_nonce_function_musig(k[5], args[0], args[1], args[2], args[3], args[4], NULL); + for (i = 0; i < 6; i++) { + CHECK(!secp256k1_scalar_eq(&k[i][0], &k[i][1])); + for (j = i+1; j < 6; j++) { + CHECK(!secp256k1_scalar_eq(&k[i][0], &k[j][0])); + CHECK(!secp256k1_scalar_eq(&k[i][1], &k[j][1])); + } + } +} + +static void sha256_tag_test_internal(secp256k1_sha256 *sha_tagged, unsigned char *tag, size_t taglen) { + secp256k1_sha256 sha; + secp256k1_sha256_initialize_tagged(&sha, tag, taglen); + test_sha256_eq(&sha, sha_tagged); +} + +/* Checks that the initialized tagged hashes have the expected + * state. */ +static void sha256_tag_test(void) { + secp256k1_sha256 sha; + { + char tag[] = "KeyAgg list"; + secp256k1_musig_keyagglist_sha256(&sha); + sha256_tag_test_internal(&sha, (unsigned char*)tag, sizeof(tag) - 1); + } + { + char tag[] = "KeyAgg coefficient"; + secp256k1_musig_keyaggcoef_sha256(&sha); + sha256_tag_test_internal(&sha, (unsigned char*)tag, sizeof(tag) - 1); + } + { + unsigned char tag[] = "MuSig/aux"; + secp256k1_nonce_function_musig_sha256_tagged_aux(&sha); + sha256_tag_test_internal(&sha, (unsigned char*)tag, sizeof(tag) - 1); + } + { + unsigned char tag[] = "MuSig/nonce"; + secp256k1_nonce_function_musig_sha256_tagged(&sha); + sha256_tag_test_internal(&sha, (unsigned char*)tag, sizeof(tag) - 1); + } + { + unsigned char tag[] = "MuSig/noncecoef"; + secp256k1_musig_compute_noncehash_sha256_tagged(&sha); + sha256_tag_test_internal(&sha, (unsigned char*)tag, sizeof(tag) - 1); + } +} + +/* Attempts to create a signature for the aggregate public key using given secret + * keys and keyagg_cache. */ +static void musig_tweak_test_helper(const secp256k1_xonly_pubkey* agg_pk, const unsigned char *sk0, const unsigned char *sk1, secp256k1_musig_keyagg_cache *keyagg_cache) { + secp256k1_pubkey pk[2]; + unsigned char session_secrand[2][32]; + unsigned char msg[32]; + secp256k1_musig_secnonce secnonce[2]; + secp256k1_musig_pubnonce pubnonce[2]; + const secp256k1_musig_pubnonce *pubnonce_ptr[2]; + secp256k1_musig_aggnonce aggnonce; + secp256k1_keypair keypair[2]; + secp256k1_musig_session session; + secp256k1_musig_partial_sig partial_sig[2]; + const secp256k1_musig_partial_sig *partial_sig_ptr[2]; + unsigned char final_sig[64]; + int i; + + for (i = 0; i < 2; i++) { + pubnonce_ptr[i] = &pubnonce[i]; + partial_sig_ptr[i] = &partial_sig[i]; + + testrand256(session_secrand[i]); + } + CHECK(create_keypair_and_pk(&keypair[0], &pk[0], sk0) == 1); + CHECK(create_keypair_and_pk(&keypair[1], &pk[1], sk1) == 1); + testrand256(msg); + + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[0], &pubnonce[0], session_secrand[0], sk0, &pk[0], NULL, NULL, NULL) == 1); + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce[1], &pubnonce[1], session_secrand[1], sk1, &pk[1], NULL, NULL, NULL) == 1); + + CHECK(secp256k1_musig_nonce_agg(CTX, &aggnonce, pubnonce_ptr, 2) == 1); + CHECK(secp256k1_musig_nonce_process(CTX, &session, &aggnonce, msg, keyagg_cache) == 1); + + CHECK(secp256k1_musig_partial_sign(CTX, &partial_sig[0], &secnonce[0], &keypair[0], keyagg_cache, &session) == 1); + CHECK(secp256k1_musig_partial_sign(CTX, &partial_sig[1], &secnonce[1], &keypair[1], keyagg_cache, &session) == 1); + + CHECK(secp256k1_musig_partial_sig_verify(CTX, &partial_sig[0], &pubnonce[0], &pk[0], keyagg_cache, &session) == 1); + CHECK(secp256k1_musig_partial_sig_verify(CTX, &partial_sig[1], &pubnonce[1], &pk[1], keyagg_cache, &session) == 1); + + CHECK(secp256k1_musig_partial_sig_agg(CTX, final_sig, &session, partial_sig_ptr, 2) == 1); + CHECK(secp256k1_schnorrsig_verify(CTX, final_sig, msg, sizeof(msg), agg_pk) == 1); +} + +/* Create aggregate public key P[0], tweak multiple times (using xonly and + * plain tweaking) and test signing. */ +static void musig_tweak_test(void) { + unsigned char sk[2][32]; + secp256k1_pubkey pk[2]; + const secp256k1_pubkey *pk_ptr[2]; + secp256k1_musig_keyagg_cache keyagg_cache; + enum { N_TWEAKS = 8 }; + secp256k1_pubkey P[N_TWEAKS + 1]; + secp256k1_xonly_pubkey P_xonly[N_TWEAKS + 1]; + int i; + + /* Key Setup */ + for (i = 0; i < 2; i++) { + pk_ptr[i] = &pk[i]; + testrand256(sk[i]); + CHECK(create_keypair_and_pk(NULL, &pk[i], sk[i]) == 1); + } + /* Compute P0 = keyagg(pk0, pk1) and test signing for it */ + CHECK(secp256k1_musig_pubkey_agg(CTX, &P_xonly[0], &keyagg_cache, pk_ptr, 2) == 1); + musig_tweak_test_helper(&P_xonly[0], sk[0], sk[1], &keyagg_cache); + CHECK(secp256k1_musig_pubkey_get(CTX, &P[0], &keyagg_cache)); + + /* Compute Pi = f(Pj) + tweaki*G where where j = i-1 and try signing for + * that key. If xonly is set to true, the function f normalizes the input + * point to have an even X-coordinate ("xonly-tweaking"). + * Otherwise, the function f is the identity function. */ + for (i = 1; i <= N_TWEAKS; i++) { + unsigned char tweak[32]; + int P_parity; + int xonly = testrand_bits(1); + + testrand256(tweak); + if (xonly) { + CHECK(secp256k1_musig_pubkey_xonly_tweak_add(CTX, &P[i], &keyagg_cache, tweak) == 1); + } else { + CHECK(secp256k1_musig_pubkey_ec_tweak_add(CTX, &P[i], &keyagg_cache, tweak) == 1); + } + CHECK(secp256k1_xonly_pubkey_from_pubkey(CTX, &P_xonly[i], &P_parity, &P[i])); + /* Check that musig_pubkey_tweak_add produces same result as + * xonly_pubkey_tweak_add or ec_pubkey_tweak_add. */ + if (xonly) { + unsigned char P_serialized[32]; + CHECK(secp256k1_xonly_pubkey_serialize(CTX, P_serialized, &P_xonly[i])); + CHECK(secp256k1_xonly_pubkey_tweak_add_check(CTX, P_serialized, P_parity, &P_xonly[i-1], tweak) == 1); + } else { + secp256k1_pubkey tmp_key = P[i-1]; + CHECK(secp256k1_ec_pubkey_tweak_add(CTX, &tmp_key, tweak)); + CHECK(secp256k1_memcmp_var(&tmp_key, &P[i], sizeof(tmp_key)) == 0); + } + /* Test signing for P[i] */ + musig_tweak_test_helper(&P_xonly[i], sk[0], sk[1], &keyagg_cache); + } +} + +int musig_vectors_keyagg_and_tweak(enum MUSIG_ERROR *error, + secp256k1_musig_keyagg_cache *keyagg_cache, + unsigned char *agg_pk_ser, + const unsigned char pubkeys33[][33], + const unsigned char tweaks32[][32], + size_t key_indices_len, + const size_t *key_indices, + size_t tweak_indices_len, + const size_t *tweak_indices, + const int *is_xonly) { + secp256k1_pubkey pubkeys[MUSIG_VECTORS_MAX_PUBKEYS]; + const secp256k1_pubkey *pk_ptr[MUSIG_VECTORS_MAX_PUBKEYS]; + int i; + secp256k1_pubkey agg_pk; + secp256k1_xonly_pubkey agg_pk_xonly; + + for (i = 0; i < (int)key_indices_len; i++) { + if (!secp256k1_ec_pubkey_parse(CTX, &pubkeys[i], pubkeys33[key_indices[i]], 33)) { + *error = MUSIG_PUBKEY; + return 0; + } + pk_ptr[i] = &pubkeys[i]; + } + if (!secp256k1_musig_pubkey_agg(CTX, NULL, keyagg_cache, pk_ptr, key_indices_len)) { + *error = MUSIG_OTHER; + return 0; + } + + for (i = 0; i < (int)tweak_indices_len; i++) { + if (is_xonly[i]) { + if (!secp256k1_musig_pubkey_xonly_tweak_add(CTX, NULL, keyagg_cache, tweaks32[tweak_indices[i]])) { + *error = MUSIG_TWEAK; + return 0; + } + } else { + if (!secp256k1_musig_pubkey_ec_tweak_add(CTX, NULL, keyagg_cache, tweaks32[tweak_indices[i]])) { + *error = MUSIG_TWEAK; + return 0; + } + } + } + if (!secp256k1_musig_pubkey_get(CTX, &agg_pk, keyagg_cache)) { + *error = MUSIG_OTHER; + return 0; + } + + if (!secp256k1_xonly_pubkey_from_pubkey(CTX, &agg_pk_xonly, NULL, &agg_pk)) { + *error = MUSIG_OTHER; + return 0; + } + + if (agg_pk_ser != NULL) { + if (!secp256k1_xonly_pubkey_serialize(CTX, agg_pk_ser, &agg_pk_xonly)) { + *error = MUSIG_OTHER; + return 0; + } + } + + return 1; +} + +static void musig_test_vectors_keyagg(void) { + size_t i; + const struct musig_key_agg_vector *vector = &musig_key_agg_vector; + + for (i = 0; i < sizeof(vector->valid_case)/sizeof(vector->valid_case[0]); i++) { + const struct musig_key_agg_valid_test_case *c = &vector->valid_case[i]; + enum MUSIG_ERROR error; + secp256k1_musig_keyagg_cache keyagg_cache; + unsigned char agg_pk[32]; + + CHECK(musig_vectors_keyagg_and_tweak(&error, &keyagg_cache, agg_pk, vector->pubkeys, vector->tweaks, c->key_indices_len, c->key_indices, 0, NULL, NULL)); + CHECK(secp256k1_memcmp_var(agg_pk, c->expected, sizeof(agg_pk)) == 0); + } + + for (i = 0; i < sizeof(vector->error_case)/sizeof(vector->error_case[0]); i++) { + const struct musig_key_agg_error_test_case *c = &vector->error_case[i]; + enum MUSIG_ERROR error; + secp256k1_musig_keyagg_cache keyagg_cache; + + CHECK(!musig_vectors_keyagg_and_tweak(&error, &keyagg_cache, NULL, vector->pubkeys, vector->tweaks, c->key_indices_len, c->key_indices, c->tweak_indices_len, c->tweak_indices, c->is_xonly)); + CHECK(c->error == error); + } +} + +static void musig_test_vectors_noncegen(void) { + size_t i; + const struct musig_nonce_gen_vector *vector = &musig_nonce_gen_vector; + + for (i = 0; i < sizeof(vector->test_case)/sizeof(vector->test_case[0]); i++) { + const struct musig_nonce_gen_test_case *c = &vector->test_case[i]; + secp256k1_musig_keyagg_cache keyagg_cache; + secp256k1_musig_keyagg_cache *keyagg_cache_ptr = NULL; + unsigned char session_secrand32[32]; + secp256k1_musig_secnonce secnonce; + secp256k1_musig_pubnonce pubnonce; + const unsigned char *sk = NULL; + const unsigned char *msg = NULL; + const unsigned char *extra_in = NULL; + secp256k1_pubkey pk; + unsigned char pubnonce66[66]; + + memcpy(session_secrand32, c->rand_, 32); + if (c->has_sk) { + sk = c->sk; + } + if (c->has_aggpk) { + /* Create keyagg_cache from aggpk */ + secp256k1_keyagg_cache_internal cache_i; + secp256k1_xonly_pubkey aggpk; + memset(&cache_i, 0, sizeof(cache_i)); + CHECK(secp256k1_xonly_pubkey_parse(CTX, &aggpk, c->aggpk)); + CHECK(secp256k1_xonly_pubkey_load(CTX, &cache_i.pk, &aggpk)); + secp256k1_keyagg_cache_save(&keyagg_cache, &cache_i); + keyagg_cache_ptr = &keyagg_cache; + } + if (c->has_msg) { + msg = c->msg; + } + if (c->has_extra_in) { + extra_in = c->extra_in; + } + + CHECK(secp256k1_ec_pubkey_parse(CTX, &pk, c->pk, sizeof(c->pk))); + CHECK(secp256k1_musig_nonce_gen(CTX, &secnonce, &pubnonce, session_secrand32, sk, &pk, msg, keyagg_cache_ptr, extra_in) == 1); + CHECK(secp256k1_memcmp_var(&secnonce.data[4], c->expected_secnonce, 2*32) == 0); + /* The last element of the secnonce is the public key (uncompressed in + * secp256k1_musig_secnonce, compressed in the test vector secnonce). */ + CHECK(secp256k1_memcmp_var(&secnonce.data[4+2*32], &pk, sizeof(pk)) == 0); + CHECK(secp256k1_memcmp_var(&c->expected_secnonce[2*32], c->pk, sizeof(c->pk)) == 0); + + CHECK(secp256k1_musig_pubnonce_serialize(CTX, pubnonce66, &pubnonce) == 1); + CHECK(sizeof(c->expected_pubnonce) == sizeof(pubnonce66)); + CHECK(secp256k1_memcmp_var(pubnonce66, c->expected_pubnonce, sizeof(pubnonce66)) == 0); + } +} + + +static void musig_test_vectors_nonceagg(void) { + size_t i; + int j; + const struct musig_nonce_agg_vector *vector = &musig_nonce_agg_vector; + + for (i = 0; i < sizeof(vector->valid_case)/sizeof(vector->valid_case[0]); i++) { + const struct musig_nonce_agg_test_case *c = &vector->valid_case[i]; + secp256k1_musig_pubnonce pubnonce[2]; + const secp256k1_musig_pubnonce *pubnonce_ptr[2]; + secp256k1_musig_aggnonce aggnonce; + unsigned char aggnonce66[66]; + + for (j = 0; j < 2; j++) { + CHECK(secp256k1_musig_pubnonce_parse(CTX, &pubnonce[j], vector->pnonces[c->pnonce_indices[j]]) == 1); + pubnonce_ptr[j] = &pubnonce[j]; + } + CHECK(secp256k1_musig_nonce_agg(CTX, &aggnonce, pubnonce_ptr, 2)); + CHECK(secp256k1_musig_aggnonce_serialize(CTX, aggnonce66, &aggnonce)); + CHECK(secp256k1_memcmp_var(aggnonce66, c->expected, 33) == 0); + } + for (i = 0; i < sizeof(vector->error_case)/sizeof(vector->error_case[0]); i++) { + const struct musig_nonce_agg_test_case *c = &vector->error_case[i]; + secp256k1_musig_pubnonce pubnonce[2]; + for (j = 0; j < 2; j++) { + int expected = c->invalid_nonce_idx != j; + CHECK(expected == secp256k1_musig_pubnonce_parse(CTX, &pubnonce[j], vector->pnonces[c->pnonce_indices[j]])); + } + } +} + +static void musig_test_set_secnonce(secp256k1_musig_secnonce *secnonce, const unsigned char *secnonce64, const secp256k1_pubkey *pubkey) { + secp256k1_ge pk; + secp256k1_scalar k[2]; + + secp256k1_scalar_set_b32(&k[0], &secnonce64[0], NULL); + secp256k1_scalar_set_b32(&k[1], &secnonce64[32], NULL); + CHECK(secp256k1_pubkey_load(CTX, &pk, pubkey)); + secp256k1_musig_secnonce_save(secnonce, k, &pk); +} + +static void musig_test_vectors_signverify(void) { + size_t i; + const struct musig_sign_verify_vector *vector = &musig_sign_verify_vector; + + for (i = 0; i < sizeof(vector->valid_case)/sizeof(vector->valid_case[0]); i++) { + const struct musig_valid_case *c = &vector->valid_case[i]; + enum MUSIG_ERROR error; + secp256k1_musig_keyagg_cache keyagg_cache; + secp256k1_pubkey pubkey; + secp256k1_musig_pubnonce pubnonce; + secp256k1_musig_aggnonce aggnonce; + secp256k1_musig_session session; + secp256k1_musig_partial_sig partial_sig; + secp256k1_musig_secnonce secnonce; + secp256k1_keypair keypair; + unsigned char partial_sig32[32]; + + CHECK(secp256k1_keypair_create(CTX, &keypair, vector->sk)); + CHECK(musig_vectors_keyagg_and_tweak(&error, &keyagg_cache, NULL, vector->pubkeys, NULL, c->key_indices_len, c->key_indices, 0, NULL, NULL)); + + CHECK(secp256k1_musig_aggnonce_parse(CTX, &aggnonce, vector->aggnonces[c->aggnonce_index])); + CHECK(secp256k1_musig_nonce_process(CTX, &session, &aggnonce, vector->msgs[c->msg_index], &keyagg_cache)); + + CHECK(secp256k1_ec_pubkey_parse(CTX, &pubkey, vector->pubkeys[0], sizeof(vector->pubkeys[0]))); + musig_test_set_secnonce(&secnonce, vector->secnonces[0], &pubkey); + CHECK(secp256k1_musig_partial_sign(CTX, &partial_sig, &secnonce, &keypair, &keyagg_cache, &session)); + CHECK(secp256k1_musig_partial_sig_serialize(CTX, partial_sig32, &partial_sig)); + CHECK(secp256k1_memcmp_var(partial_sig32, c->expected, sizeof(partial_sig32)) == 0); + + CHECK(secp256k1_musig_pubnonce_parse(CTX, &pubnonce, vector->pubnonces[0])); + CHECK(secp256k1_musig_partial_sig_verify(CTX, &partial_sig, &pubnonce, &pubkey, &keyagg_cache, &session)); + } + for (i = 0; i < sizeof(vector->sign_error_case)/sizeof(vector->sign_error_case[0]); i++) { + const struct musig_sign_error_case *c = &vector->sign_error_case[i]; + enum MUSIG_ERROR error; + secp256k1_musig_keyagg_cache keyagg_cache; + secp256k1_pubkey pubkey; + secp256k1_musig_aggnonce aggnonce; + secp256k1_musig_session session; + secp256k1_musig_partial_sig partial_sig; + secp256k1_musig_secnonce secnonce; + secp256k1_keypair keypair; + int expected; + + if (i == 0) { + /* Skip this vector since the implementation does not error out when + * the signing key does not belong to any pubkey. */ + continue; + } + expected = c->error != MUSIG_PUBKEY; + CHECK(expected == musig_vectors_keyagg_and_tweak(&error, &keyagg_cache, NULL, vector->pubkeys, NULL, c->key_indices_len, c->key_indices, 0, NULL, NULL)); + CHECK(expected || c->error == error); + if (!expected) { + continue; + } + + expected = c->error != MUSIG_AGGNONCE; + CHECK(expected == secp256k1_musig_aggnonce_parse(CTX, &aggnonce, vector->aggnonces[c->aggnonce_index])); + if (!expected) { + continue; + } + CHECK(secp256k1_musig_nonce_process(CTX, &session, &aggnonce, vector->msgs[c->msg_index], &keyagg_cache)); + + CHECK(secp256k1_ec_pubkey_parse(CTX, &pubkey, vector->pubkeys[0], sizeof(vector->pubkeys[0]))); + musig_test_set_secnonce(&secnonce, vector->secnonces[c->secnonce_index], &pubkey); + expected = c->error != MUSIG_SECNONCE; + if (expected) { + CHECK(secp256k1_musig_partial_sign(CTX, &partial_sig, &secnonce, &keypair, &keyagg_cache, &session)); + } else { + CHECK_ILLEGAL(CTX, secp256k1_musig_partial_sign(CTX, &partial_sig, &secnonce, &keypair, &keyagg_cache, &session)); + } + } + for (i = 0; i < sizeof(vector->verify_fail_case)/sizeof(vector->verify_fail_case[0]); i++) { + const struct musig_verify_fail_error_case *c = &vector->verify_fail_case[i]; + enum MUSIG_ERROR error; + secp256k1_musig_keyagg_cache keyagg_cache; + secp256k1_musig_aggnonce aggnonce; + secp256k1_musig_session session; + secp256k1_musig_partial_sig partial_sig; + enum { NUM_PUBNONCES = 3 }; + secp256k1_musig_pubnonce pubnonce[NUM_PUBNONCES]; + const secp256k1_musig_pubnonce *pubnonce_ptr[NUM_PUBNONCES]; + secp256k1_pubkey pubkey; + int expected; + size_t j; + + CHECK(NUM_PUBNONCES <= c->nonce_indices_len); + for (j = 0; j < c->nonce_indices_len; j++) { + CHECK(secp256k1_musig_pubnonce_parse(CTX, &pubnonce[j], vector->pubnonces[c->nonce_indices[j]])); + pubnonce_ptr[j] = &pubnonce[j]; + } + + CHECK(musig_vectors_keyagg_and_tweak(&error, &keyagg_cache, NULL, vector->pubkeys, NULL, c->key_indices_len, c->key_indices, 0, NULL, NULL)); + CHECK(secp256k1_musig_nonce_agg(CTX, &aggnonce, pubnonce_ptr, c->nonce_indices_len) == 1); + CHECK(secp256k1_musig_nonce_process(CTX, &session, &aggnonce, vector->msgs[c->msg_index], &keyagg_cache)); + + CHECK(secp256k1_ec_pubkey_parse(CTX, &pubkey, vector->pubkeys[c->signer_index], sizeof(vector->pubkeys[0]))); + + expected = c->error != MUSIG_SIG; + CHECK(expected == secp256k1_musig_partial_sig_parse(CTX, &partial_sig, c->sig)); + if (!expected) { + continue; + } + expected = c->error != MUSIG_SIG_VERIFY; + CHECK(expected == secp256k1_musig_partial_sig_verify(CTX, &partial_sig, pubnonce, &pubkey, &keyagg_cache, &session)); + } + for (i = 0; i < sizeof(vector->verify_error_case)/sizeof(vector->verify_error_case[0]); i++) { + const struct musig_verify_fail_error_case *c = &vector->verify_error_case[i]; + enum MUSIG_ERROR error; + secp256k1_musig_keyagg_cache keyagg_cache; + secp256k1_musig_pubnonce pubnonce; + int expected; + + expected = c->error != MUSIG_PUBKEY; + CHECK(expected == musig_vectors_keyagg_and_tweak(&error, &keyagg_cache, NULL, vector->pubkeys, NULL, c->key_indices_len, c->key_indices, 0, NULL, NULL)); + CHECK(expected || c->error == error); + if (!expected) { + continue; + } + expected = c->error != MUSIG_PUBNONCE; + CHECK(expected == secp256k1_musig_pubnonce_parse(CTX, &pubnonce, vector->pubnonces[c->nonce_indices[c->signer_index]])); + } +} + +static void musig_test_vectors_tweak(void) { + size_t i; + const struct musig_tweak_vector *vector = &musig_tweak_vector; + secp256k1_pubkey pubkey; + secp256k1_musig_aggnonce aggnonce; + secp256k1_musig_secnonce secnonce; + + CHECK(secp256k1_musig_aggnonce_parse(CTX, &aggnonce, vector->aggnonce)); + CHECK(secp256k1_ec_pubkey_parse(CTX, &pubkey, vector->pubkeys[0], sizeof(vector->pubkeys[0]))); + + for (i = 0; i < sizeof(vector->valid_case)/sizeof(vector->valid_case[0]); i++) { + const struct musig_tweak_case *c = &vector->valid_case[i]; + enum MUSIG_ERROR error; + secp256k1_musig_keyagg_cache keyagg_cache; + secp256k1_musig_pubnonce pubnonce; + secp256k1_musig_session session; + secp256k1_musig_partial_sig partial_sig; + secp256k1_keypair keypair; + unsigned char partial_sig32[32]; + + musig_test_set_secnonce(&secnonce, vector->secnonce, &pubkey); + + CHECK(secp256k1_keypair_create(CTX, &keypair, vector->sk)); + CHECK(musig_vectors_keyagg_and_tweak(&error, &keyagg_cache, NULL, vector->pubkeys, vector->tweaks, c->key_indices_len, c->key_indices, c->tweak_indices_len, c->tweak_indices, c->is_xonly)); + + CHECK(secp256k1_musig_nonce_process(CTX, &session, &aggnonce, vector->msg, &keyagg_cache)); + + CHECK(secp256k1_musig_partial_sign(CTX, &partial_sig, &secnonce, &keypair, &keyagg_cache, &session)); + CHECK(secp256k1_musig_partial_sig_serialize(CTX, partial_sig32, &partial_sig)); + CHECK(secp256k1_memcmp_var(partial_sig32, c->expected, sizeof(partial_sig32)) == 0); + + CHECK(secp256k1_musig_pubnonce_parse(CTX, &pubnonce, vector->pubnonces[c->nonce_indices[c->signer_index]])); + CHECK(secp256k1_musig_partial_sig_verify(CTX, &partial_sig, &pubnonce, &pubkey, &keyagg_cache, &session)); + } + for (i = 0; i < sizeof(vector->error_case)/sizeof(vector->error_case[0]); i++) { + const struct musig_tweak_case *c = &vector->error_case[i]; + enum MUSIG_ERROR error; + secp256k1_musig_keyagg_cache keyagg_cache; + CHECK(!musig_vectors_keyagg_and_tweak(&error, &keyagg_cache, NULL, vector->pubkeys, vector->tweaks, c->key_indices_len, c->key_indices, c->tweak_indices_len, c->tweak_indices, c->is_xonly)); + CHECK(error == MUSIG_TWEAK); + } +} + +static void musig_test_vectors_sigagg(void) { + size_t i, j; + const struct musig_sig_agg_vector *vector = &musig_sig_agg_vector; + + for (i = 0; i < sizeof(vector->valid_case)/sizeof(vector->valid_case[0]); i++) { + const struct musig_sig_agg_case *c = &vector->valid_case[i]; + enum MUSIG_ERROR error; + unsigned char final_sig[64]; + secp256k1_musig_keyagg_cache keyagg_cache; + unsigned char agg_pk32[32]; + secp256k1_xonly_pubkey agg_pk; + secp256k1_musig_aggnonce aggnonce; + secp256k1_musig_session session; + secp256k1_musig_partial_sig partial_sig[(sizeof(vector->psigs)/sizeof(vector->psigs[0]))]; + const secp256k1_musig_partial_sig *partial_sig_ptr[(sizeof(vector->psigs)/sizeof(vector->psigs[0]))]; + + CHECK(musig_vectors_keyagg_and_tweak(&error, &keyagg_cache, agg_pk32, vector->pubkeys, vector->tweaks, c->key_indices_len, c->key_indices, c->tweak_indices_len, c->tweak_indices, c->is_xonly)); + CHECK(secp256k1_musig_aggnonce_parse(CTX, &aggnonce, c->aggnonce)); + CHECK(secp256k1_musig_nonce_process(CTX, &session, &aggnonce, vector->msg, &keyagg_cache)); + for (j = 0; j < c->psig_indices_len; j++) { + CHECK(secp256k1_musig_partial_sig_parse(CTX, &partial_sig[j], vector->psigs[c->psig_indices[j]])); + partial_sig_ptr[j] = &partial_sig[j]; + } + + CHECK(secp256k1_musig_partial_sig_agg(CTX, final_sig, &session, partial_sig_ptr, c->psig_indices_len) == 1); + CHECK(secp256k1_memcmp_var(final_sig, c->expected, sizeof(final_sig)) == 0); + + CHECK(secp256k1_xonly_pubkey_parse(CTX, &agg_pk, agg_pk32)); + CHECK(secp256k1_schnorrsig_verify(CTX, final_sig, vector->msg, sizeof(vector->msg), &agg_pk) == 1); + } + for (i = 0; i < sizeof(vector->error_case)/sizeof(vector->error_case[0]); i++) { + const struct musig_sig_agg_case *c = &vector->error_case[i]; + secp256k1_musig_partial_sig partial_sig[(sizeof(vector->psigs)/sizeof(vector->psigs[0]))]; + for (j = 0; j < c->psig_indices_len; j++) { + int expected = c->invalid_sig_idx != (int)j; + CHECK(expected == secp256k1_musig_partial_sig_parse(CTX, &partial_sig[j], vector->psigs[c->psig_indices[j]])); + } + } +} + +/* Since the BIP doesn't provide static test vectors for nonce_gen_counter, we + * define a static test here */ +static void musig_test_static_nonce_gen_counter(void) { + secp256k1_musig_secnonce secnonce; + secp256k1_musig_pubnonce pubnonce; + unsigned char pubnonce66[66]; + secp256k1_pubkey pk; + secp256k1_keypair keypair; + uint64_t nonrepeating_cnt = 0; + unsigned char sk[32] = { + 0xEE, 0xC1, 0xCB, 0x7D, 0x1B, 0x72, 0x54, 0xC5, + 0xCA, 0xB0, 0xD9, 0xC6, 0x1A, 0xB0, 0x2E, 0x64, + 0x3D, 0x46, 0x4A, 0x59, 0xFE, 0x6C, 0x96, 0xA7, + 0xEF, 0xE8, 0x71, 0xF0, 0x7C, 0x5A, 0xEF, 0x54, + }; + unsigned char expected_secnonce[64] = { + 0x84, 0x2F, 0x13, 0x80, 0xCD, 0x17, 0xA1, 0x98, + 0xFC, 0x3D, 0xAD, 0x3B, 0x7D, 0xA7, 0x49, 0x29, + 0x41, 0xF4, 0x69, 0x76, 0xF2, 0x70, 0x2F, 0xF7, + 0xC6, 0x6F, 0x24, 0xF4, 0x72, 0x03, 0x6A, 0xF1, + 0xDA, 0x3F, 0x95, 0x2D, 0xDE, 0x4A, 0x2D, 0xA6, + 0xB6, 0x32, 0x57, 0x07, 0xCE, 0x87, 0xA4, 0xE3, + 0x61, 0x6D, 0x06, 0xFC, 0x5F, 0x81, 0xA9, 0xC9, + 0x93, 0x86, 0xD2, 0x0A, 0x99, 0xCE, 0xCF, 0x99, + }; + unsigned char expected_pubnonce[66] = { + 0x03, 0xA5, 0xB9, 0xB6, 0x90, 0x79, 0x42, 0xEA, + 0xCD, 0xDA, 0x49, 0xA3, 0x66, 0x01, 0x6E, 0xC2, + 0xE6, 0x24, 0x04, 0xA1, 0xBF, 0x4A, 0xB6, 0xD4, + 0xDB, 0x82, 0x06, 0x7B, 0xC3, 0xAD, 0xF0, 0x86, + 0xD7, 0x03, 0x32, 0x05, 0xDB, 0x9E, 0xB3, 0x4D, + 0x5C, 0x7C, 0xE0, 0x28, 0x48, 0xCA, 0xC6, 0x8A, + 0x83, 0xED, 0x73, 0xE3, 0x88, 0x34, 0x77, 0xF5, + 0x63, 0xF2, 0x3C, 0xE9, 0xA1, 0x1A, 0x77, 0x21, + 0xEC, 0x64, + }; + + CHECK(secp256k1_keypair_create(CTX, &keypair, sk)); + CHECK(secp256k1_keypair_pub(CTX, &pk, &keypair)); + CHECK(secp256k1_musig_nonce_gen_counter(CTX, &secnonce, &pubnonce, nonrepeating_cnt, &keypair, NULL, NULL, NULL) == 1); + + CHECK(secp256k1_memcmp_var(&secnonce.data[4], expected_secnonce, 2*32) == 0); + CHECK(secp256k1_memcmp_var(&secnonce.data[4+2*32], &pk, sizeof(pk)) == 0); + + CHECK(secp256k1_musig_pubnonce_serialize(CTX, pubnonce66, &pubnonce) == 1); + CHECK(secp256k1_memcmp_var(pubnonce66, expected_pubnonce, sizeof(pubnonce66)) == 0); +} + +static void run_musig_tests(void) { + int i; + + for (i = 0; i < COUNT; i++) { + musig_simple_test(); + } + musig_api_tests(); + musig_nonce_test(); + for (i = 0; i < COUNT; i++) { + /* Run multiple times to ensure that pk and nonce have different y + * parities */ + musig_tweak_test(); + } + sha256_tag_test(); + musig_test_vectors_keyagg(); + musig_test_vectors_noncegen(); + musig_test_vectors_nonceagg(); + musig_test_vectors_signverify(); + musig_test_vectors_tweak(); + musig_test_vectors_sigagg(); + + musig_test_static_nonce_gen_counter(); +} + +#endif diff --git a/src/modules/musig/vectors.h b/src/modules/musig/vectors.h new file mode 100644 index 00000000000000..8407c2a69a9fd9 --- /dev/null +++ b/src/modules/musig/vectors.h @@ -0,0 +1,346 @@ +/** + * Automatically generated by ./tools/test_vectors_musig2_generate.py. + * + * The test vectors for the KeySort function are included in this file. They can + * be found in src/modules/extrakeys/tests_impl.h. */ + +enum MUSIG_ERROR { + MUSIG_PUBKEY, + MUSIG_TWEAK, + MUSIG_PUBNONCE, + MUSIG_AGGNONCE, + MUSIG_SECNONCE, + MUSIG_SIG, + MUSIG_SIG_VERIFY, + MUSIG_OTHER +}; + +struct musig_key_agg_valid_test_case { + size_t key_indices_len; + size_t key_indices[4]; + unsigned char expected[32]; +}; + +struct musig_key_agg_error_test_case { + size_t key_indices_len; + size_t key_indices[4]; + size_t tweak_indices_len; + size_t tweak_indices[1]; + int is_xonly[1]; + enum MUSIG_ERROR error; +}; + +struct musig_key_agg_vector { + unsigned char pubkeys[7][33]; + unsigned char tweaks[2][32]; + struct musig_key_agg_valid_test_case valid_case[4]; + struct musig_key_agg_error_test_case error_case[5]; +}; + +static const struct musig_key_agg_vector musig_key_agg_vector = { + { + { 0x02, 0xF9, 0x30, 0x8A, 0x01, 0x92, 0x58, 0xC3, 0x10, 0x49, 0x34, 0x4F, 0x85, 0xF8, 0x9D, 0x52, 0x29, 0xB5, 0x31, 0xC8, 0x45, 0x83, 0x6F, 0x99, 0xB0, 0x86, 0x01, 0xF1, 0x13, 0xBC, 0xE0, 0x36, 0xF9 }, + { 0x03, 0xDF, 0xF1, 0xD7, 0x7F, 0x2A, 0x67, 0x1C, 0x5F, 0x36, 0x18, 0x37, 0x26, 0xDB, 0x23, 0x41, 0xBE, 0x58, 0xFE, 0xAE, 0x1D, 0xA2, 0xDE, 0xCE, 0xD8, 0x43, 0x24, 0x0F, 0x7B, 0x50, 0x2B, 0xA6, 0x59 }, + { 0x02, 0x35, 0x90, 0xA9, 0x4E, 0x76, 0x8F, 0x8E, 0x18, 0x15, 0xC2, 0xF2, 0x4B, 0x4D, 0x80, 0xA8, 0xE3, 0x14, 0x93, 0x16, 0xC3, 0x51, 0x8C, 0xE7, 0xB7, 0xAD, 0x33, 0x83, 0x68, 0xD0, 0x38, 0xCA, 0x66 }, + { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05 }, + { 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFC, 0x30 }, + { 0x04, 0xF9, 0x30, 0x8A, 0x01, 0x92, 0x58, 0xC3, 0x10, 0x49, 0x34, 0x4F, 0x85, 0xF8, 0x9D, 0x52, 0x29, 0xB5, 0x31, 0xC8, 0x45, 0x83, 0x6F, 0x99, 0xB0, 0x86, 0x01, 0xF1, 0x13, 0xBC, 0xE0, 0x36, 0xF9 }, + { 0x03, 0x93, 0x5F, 0x97, 0x2D, 0xA0, 0x13, 0xF8, 0x0A, 0xE0, 0x11, 0x89, 0x0F, 0xA8, 0x9B, 0x67, 0xA2, 0x7B, 0x7B, 0xE6, 0xCC, 0xB2, 0x4D, 0x32, 0x74, 0xD1, 0x8B, 0x2D, 0x40, 0x67, 0xF2, 0x61, 0xA9 } + }, + { + { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xBA, 0xAE, 0xDC, 0xE6, 0xAF, 0x48, 0xA0, 0x3B, 0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41 }, + { 0x25, 0x2E, 0x4B, 0xD6, 0x74, 0x10, 0xA7, 0x6C, 0xDF, 0x93, 0x3D, 0x30, 0xEA, 0xA1, 0x60, 0x82, 0x14, 0x03, 0x7F, 0x1B, 0x10, 0x5A, 0x01, 0x3E, 0xCC, 0xD3, 0xC5, 0xC1, 0x84, 0xA6, 0x11, 0x0B } + }, + { + { 3, { 0, 1, 2 }, { 0x90, 0x53, 0x9E, 0xED, 0xE5, 0x65, 0xF5, 0xD0, 0x54, 0xF3, 0x2C, 0xC0, 0xC2, 0x20, 0x12, 0x68, 0x89, 0xED, 0x1E, 0x5D, 0x19, 0x3B, 0xAF, 0x15, 0xAE, 0xF3, 0x44, 0xFE, 0x59, 0xD4, 0x61, 0x0C }}, + { 3, { 2, 1, 0 }, { 0x62, 0x04, 0xDE, 0x8B, 0x08, 0x34, 0x26, 0xDC, 0x6E, 0xAF, 0x95, 0x02, 0xD2, 0x70, 0x24, 0xD5, 0x3F, 0xC8, 0x26, 0xBF, 0x7D, 0x20, 0x12, 0x14, 0x8A, 0x05, 0x75, 0x43, 0x5D, 0xF5, 0x4B, 0x2B }}, + { 3, { 0, 0, 0 }, { 0xB4, 0x36, 0xE3, 0xBA, 0xD6, 0x2B, 0x8C, 0xD4, 0x09, 0x96, 0x9A, 0x22, 0x47, 0x31, 0xC1, 0x93, 0xD0, 0x51, 0x16, 0x2D, 0x8C, 0x5A, 0xE8, 0xB1, 0x09, 0x30, 0x61, 0x27, 0xDA, 0x3A, 0xA9, 0x35 }}, + { 4, { 0, 0, 1, 1 }, { 0x69, 0xBC, 0x22, 0xBF, 0xA5, 0xD1, 0x06, 0x30, 0x6E, 0x48, 0xA2, 0x06, 0x79, 0xDE, 0x1D, 0x73, 0x89, 0x38, 0x61, 0x24, 0xD0, 0x75, 0x71, 0xD0, 0xD8, 0x72, 0x68, 0x60, 0x28, 0xC2, 0x6A, 0x3E }}, + }, + { + { 2, { 0, 3 }, 0, { 0 }, { 0 }, MUSIG_PUBKEY }, + { 2, { 0, 4 }, 0, { 0 }, { 0 }, MUSIG_PUBKEY }, + { 2, { 5, 0 }, 0, { 0 }, { 0 }, MUSIG_PUBKEY }, + { 2, { 0, 1 }, 1, { 0 }, { 1 }, MUSIG_TWEAK }, + { 1, { 6 }, 1, { 1 }, { 0 }, MUSIG_TWEAK }, + }, +}; + +struct musig_nonce_gen_test_case { + unsigned char rand_[32]; + int has_sk; + unsigned char sk[32]; + unsigned char pk[33]; + int has_aggpk; + unsigned char aggpk[32]; + int has_msg; + unsigned char msg[32]; + int has_extra_in; + unsigned char extra_in[32]; + unsigned char expected_secnonce[97]; + unsigned char expected_pubnonce[66]; +}; + +struct musig_nonce_gen_vector { + struct musig_nonce_gen_test_case test_case[2]; +}; + +static const struct musig_nonce_gen_vector musig_nonce_gen_vector = { + { + { { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F }, 1 , { 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 }, { 0x02, 0x4D, 0x4B, 0x6C, 0xD1, 0x36, 0x10, 0x32, 0xCA, 0x9B, 0xD2, 0xAE, 0xB9, 0xD9, 0x00, 0xAA, 0x4D, 0x45, 0xD9, 0xEA, 0xD8, 0x0A, 0xC9, 0x42, 0x33, 0x74, 0xC4, 0x51, 0xA7, 0x25, 0x4D, 0x07, 0x66 }, 1 , { 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 }, 1 , { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, 1 , { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 }, { 0xB1, 0x14, 0xE5, 0x02, 0xBE, 0xAA, 0x4E, 0x30, 0x1D, 0xD0, 0x8A, 0x50, 0x26, 0x41, 0x72, 0xC8, 0x4E, 0x41, 0x65, 0x0E, 0x6C, 0xB7, 0x26, 0xB4, 0x10, 0xC0, 0x69, 0x4D, 0x59, 0xEF, 0xFB, 0x64, 0x95, 0xB5, 0xCA, 0xF2, 0x8D, 0x04, 0x5B, 0x97, 0x3D, 0x63, 0xE3, 0xC9, 0x9A, 0x44, 0xB8, 0x07, 0xBD, 0xE3, 0x75, 0xFD, 0x6C, 0xB3, 0x9E, 0x46, 0xDC, 0x4A, 0x51, 0x17, 0x08, 0xD0, 0xE9, 0xD2, 0x02, 0x4D, 0x4B, 0x6C, 0xD1, 0x36, 0x10, 0x32, 0xCA, 0x9B, 0xD2, 0xAE, 0xB9, 0xD9, 0x00, 0xAA, 0x4D, 0x45, 0xD9, 0xEA, 0xD8, 0x0A, 0xC9, 0x42, 0x33, 0x74, 0xC4, 0x51, 0xA7, 0x25, 0x4D, 0x07, 0x66 }, { 0x02, 0xF7, 0xBE, 0x70, 0x89, 0xE8, 0x37, 0x6E, 0xB3, 0x55, 0x27, 0x23, 0x68, 0x76, 0x6B, 0x17, 0xE8, 0x8E, 0x7D, 0xB7, 0x20, 0x47, 0xD0, 0x5E, 0x56, 0xAA, 0x88, 0x1E, 0xA5, 0x2B, 0x3B, 0x35, 0xDF, 0x02, 0xC2, 0x9C, 0x80, 0x46, 0xFD, 0xD0, 0xDE, 0xD4, 0xC7, 0xE5, 0x58, 0x69, 0x13, 0x72, 0x00, 0xFB, 0xDB, 0xFE, 0x2E, 0xB6, 0x54, 0x26, 0x7B, 0x6D, 0x70, 0x13, 0x60, 0x2C, 0xAE, 0xD3, 0x11, 0x5A } }, + { { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F }, 0 , { 0 }, { 0x02, 0xF9, 0x30, 0x8A, 0x01, 0x92, 0x58, 0xC3, 0x10, 0x49, 0x34, 0x4F, 0x85, 0xF8, 0x9D, 0x52, 0x29, 0xB5, 0x31, 0xC8, 0x45, 0x83, 0x6F, 0x99, 0xB0, 0x86, 0x01, 0xF1, 0x13, 0xBC, 0xE0, 0x36, 0xF9 }, 0 , { 0 }, 0 , { 0 }, 0 , { 0 }, { 0x89, 0xBD, 0xD7, 0x87, 0xD0, 0x28, 0x4E, 0x5E, 0x4D, 0x5F, 0xC5, 0x72, 0xE4, 0x9E, 0x31, 0x6B, 0xAB, 0x7E, 0x21, 0xE3, 0xB1, 0x83, 0x0D, 0xE3, 0x7D, 0xFE, 0x80, 0x15, 0x6F, 0xA4, 0x1A, 0x6D, 0x0B, 0x17, 0xAE, 0x8D, 0x02, 0x4C, 0x53, 0x67, 0x96, 0x99, 0xA6, 0xFD, 0x79, 0x44, 0xD9, 0xC4, 0xA3, 0x66, 0xB5, 0x14, 0xBA, 0xF4, 0x30, 0x88, 0xE0, 0x70, 0x8B, 0x10, 0x23, 0xDD, 0x28, 0x97, 0x02, 0xF9, 0x30, 0x8A, 0x01, 0x92, 0x58, 0xC3, 0x10, 0x49, 0x34, 0x4F, 0x85, 0xF8, 0x9D, 0x52, 0x29, 0xB5, 0x31, 0xC8, 0x45, 0x83, 0x6F, 0x99, 0xB0, 0x86, 0x01, 0xF1, 0x13, 0xBC, 0xE0, 0x36, 0xF9 }, { 0x02, 0xC9, 0x6E, 0x7C, 0xB1, 0xE8, 0xAA, 0x5D, 0xAC, 0x64, 0xD8, 0x72, 0x94, 0x79, 0x14, 0x19, 0x8F, 0x60, 0x7D, 0x90, 0xEC, 0xDE, 0x52, 0x00, 0xDE, 0x52, 0x97, 0x8A, 0xD5, 0xDE, 0xD6, 0x3C, 0x00, 0x02, 0x99, 0xEC, 0x51, 0x17, 0xC2, 0xD2, 0x9E, 0xDE, 0xE8, 0xA2, 0x09, 0x25, 0x87, 0xC3, 0x90, 0x9B, 0xE6, 0x94, 0xD5, 0xCF, 0xF0, 0x66, 0x7D, 0x6C, 0x02, 0xEA, 0x40, 0x59, 0xF7, 0xCD, 0x97, 0x86 } }, + }, +}; + +struct musig_nonce_agg_test_case { + size_t pnonce_indices[2]; + /* if valid case */ + unsigned char expected[66]; + /* if error case */ + int invalid_nonce_idx; +}; + +struct musig_nonce_agg_vector { + unsigned char pnonces[7][66]; + struct musig_nonce_agg_test_case valid_case[2]; + struct musig_nonce_agg_test_case error_case[3]; +}; + +static const struct musig_nonce_agg_vector musig_nonce_agg_vector = { + { + { 0x02, 0x01, 0x51, 0xC8, 0x0F, 0x43, 0x56, 0x48, 0xDF, 0x67, 0xA2, 0x2B, 0x74, 0x9C, 0xD7, 0x98, 0xCE, 0x54, 0xE0, 0x32, 0x1D, 0x03, 0x4B, 0x92, 0xB7, 0x09, 0xB5, 0x67, 0xD6, 0x0A, 0x42, 0xE6, 0x66, 0x03, 0xBA, 0x47, 0xFB, 0xC1, 0x83, 0x44, 0x37, 0xB3, 0x21, 0x2E, 0x89, 0xA8, 0x4D, 0x84, 0x25, 0xE7, 0xBF, 0x12, 0xE0, 0x24, 0x5D, 0x98, 0x26, 0x22, 0x68, 0xEB, 0xDC, 0xB3, 0x85, 0xD5, 0x06, 0x41 }, + { 0x03, 0xFF, 0x40, 0x6F, 0xFD, 0x8A, 0xDB, 0x9C, 0xD2, 0x98, 0x77, 0xE4, 0x98, 0x50, 0x14, 0xF6, 0x6A, 0x59, 0xF6, 0xCD, 0x01, 0xC0, 0xE8, 0x8C, 0xAA, 0x8E, 0x5F, 0x31, 0x66, 0xB1, 0xF6, 0x76, 0xA6, 0x02, 0x48, 0xC2, 0x64, 0xCD, 0xD5, 0x7D, 0x3C, 0x24, 0xD7, 0x99, 0x90, 0xB0, 0xF8, 0x65, 0x67, 0x4E, 0xB6, 0x2A, 0x0F, 0x90, 0x18, 0x27, 0x7A, 0x95, 0x01, 0x1B, 0x41, 0xBF, 0xC1, 0x93, 0xB8, 0x33 }, + { 0x02, 0x01, 0x51, 0xC8, 0x0F, 0x43, 0x56, 0x48, 0xDF, 0x67, 0xA2, 0x2B, 0x74, 0x9C, 0xD7, 0x98, 0xCE, 0x54, 0xE0, 0x32, 0x1D, 0x03, 0x4B, 0x92, 0xB7, 0x09, 0xB5, 0x67, 0xD6, 0x0A, 0x42, 0xE6, 0x66, 0x02, 0x79, 0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95, 0xCE, 0x87, 0x0B, 0x07, 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9, 0x59, 0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98 }, + { 0x03, 0xFF, 0x40, 0x6F, 0xFD, 0x8A, 0xDB, 0x9C, 0xD2, 0x98, 0x77, 0xE4, 0x98, 0x50, 0x14, 0xF6, 0x6A, 0x59, 0xF6, 0xCD, 0x01, 0xC0, 0xE8, 0x8C, 0xAA, 0x8E, 0x5F, 0x31, 0x66, 0xB1, 0xF6, 0x76, 0xA6, 0x03, 0x79, 0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95, 0xCE, 0x87, 0x0B, 0x07, 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9, 0x59, 0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98 }, + { 0x04, 0xFF, 0x40, 0x6F, 0xFD, 0x8A, 0xDB, 0x9C, 0xD2, 0x98, 0x77, 0xE4, 0x98, 0x50, 0x14, 0xF6, 0x6A, 0x59, 0xF6, 0xCD, 0x01, 0xC0, 0xE8, 0x8C, 0xAA, 0x8E, 0x5F, 0x31, 0x66, 0xB1, 0xF6, 0x76, 0xA6, 0x02, 0x48, 0xC2, 0x64, 0xCD, 0xD5, 0x7D, 0x3C, 0x24, 0xD7, 0x99, 0x90, 0xB0, 0xF8, 0x65, 0x67, 0x4E, 0xB6, 0x2A, 0x0F, 0x90, 0x18, 0x27, 0x7A, 0x95, 0x01, 0x1B, 0x41, 0xBF, 0xC1, 0x93, 0xB8, 0x33 }, + { 0x03, 0xFF, 0x40, 0x6F, 0xFD, 0x8A, 0xDB, 0x9C, 0xD2, 0x98, 0x77, 0xE4, 0x98, 0x50, 0x14, 0xF6, 0x6A, 0x59, 0xF6, 0xCD, 0x01, 0xC0, 0xE8, 0x8C, 0xAA, 0x8E, 0x5F, 0x31, 0x66, 0xB1, 0xF6, 0x76, 0xA6, 0x02, 0x48, 0xC2, 0x64, 0xCD, 0xD5, 0x7D, 0x3C, 0x24, 0xD7, 0x99, 0x90, 0xB0, 0xF8, 0x65, 0x67, 0x4E, 0xB6, 0x2A, 0x0F, 0x90, 0x18, 0x27, 0x7A, 0x95, 0x01, 0x1B, 0x41, 0xBF, 0xC1, 0x93, 0xB8, 0x31 }, + { 0x03, 0xFF, 0x40, 0x6F, 0xFD, 0x8A, 0xDB, 0x9C, 0xD2, 0x98, 0x77, 0xE4, 0x98, 0x50, 0x14, 0xF6, 0x6A, 0x59, 0xF6, 0xCD, 0x01, 0xC0, 0xE8, 0x8C, 0xAA, 0x8E, 0x5F, 0x31, 0x66, 0xB1, 0xF6, 0x76, 0xA6, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFC, 0x30 } + }, + { + { { 0, 1 }, { 0x03, 0x5F, 0xE1, 0x87, 0x3B, 0x4F, 0x29, 0x67, 0xF5, 0x2F, 0xEA, 0x4A, 0x06, 0xAD, 0x5A, 0x8E, 0xCC, 0xBE, 0x9D, 0x0F, 0xD7, 0x30, 0x68, 0x01, 0x2C, 0x89, 0x4E, 0x2E, 0x87, 0xCC, 0xB5, 0x80, 0x4B, 0x02, 0x47, 0x25, 0x37, 0x73, 0x45, 0xBD, 0xE0, 0xE9, 0xC3, 0x3A, 0xF3, 0xC4, 0x3C, 0x0A, 0x29, 0xA9, 0x24, 0x9F, 0x2F, 0x29, 0x56, 0xFA, 0x8C, 0xFE, 0xB5, 0x5C, 0x85, 0x73, 0xD0, 0x26, 0x2D, 0xC8 }, 0 }, + { { 2, 3 }, { 0x03, 0x5F, 0xE1, 0x87, 0x3B, 0x4F, 0x29, 0x67, 0xF5, 0x2F, 0xEA, 0x4A, 0x06, 0xAD, 0x5A, 0x8E, 0xCC, 0xBE, 0x9D, 0x0F, 0xD7, 0x30, 0x68, 0x01, 0x2C, 0x89, 0x4E, 0x2E, 0x87, 0xCC, 0xB5, 0x80, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, 0 }, + }, + { + { { 0, 4 }, { 0 }, 1 }, + { { 5, 1 }, { 0 }, 0 }, + { { 6, 1 }, { 0 }, 0 }, + }, +}; + +/* Omit pubnonces in the test vectors because our partial signature verification + * implementation is able to accept the aggnonce directly. */ +struct musig_valid_case { + size_t key_indices_len; + size_t key_indices[3]; + size_t aggnonce_index; + size_t msg_index; + size_t signer_index; + unsigned char expected[32]; +}; + +struct musig_sign_error_case { + size_t key_indices_len; + size_t key_indices[3]; + size_t aggnonce_index; + size_t msg_index; + size_t secnonce_index; + enum MUSIG_ERROR error; +}; + +struct musig_verify_fail_error_case { + unsigned char sig[32]; + size_t key_indices_len; + size_t key_indices[3]; + size_t nonce_indices_len; + size_t nonce_indices[3]; + size_t msg_index; + size_t signer_index; + enum MUSIG_ERROR error; +}; + +struct musig_sign_verify_vector { + unsigned char sk[32]; + unsigned char pubkeys[4][33]; + unsigned char secnonces[2][194]; + unsigned char pubnonces[5][194]; + unsigned char aggnonces[5][66]; + unsigned char msgs[1][32]; + struct musig_valid_case valid_case[4]; + struct musig_sign_error_case sign_error_case[6]; + struct musig_verify_fail_error_case verify_fail_case[3]; + struct musig_verify_fail_error_case verify_error_case[2]; +}; + +static const struct musig_sign_verify_vector musig_sign_verify_vector = { + { 0x7F, 0xB9, 0xE0, 0xE6, 0x87, 0xAD, 0xA1, 0xEE, 0xBF, 0x7E, 0xCF, 0xE2, 0xF2, 0x1E, 0x73, 0xEB, 0xDB, 0x51, 0xA7, 0xD4, 0x50, 0x94, 0x8D, 0xFE, 0x8D, 0x76, 0xD7, 0xF2, 0xD1, 0x00, 0x76, 0x71 }, + { + { 0x03, 0x93, 0x5F, 0x97, 0x2D, 0xA0, 0x13, 0xF8, 0x0A, 0xE0, 0x11, 0x89, 0x0F, 0xA8, 0x9B, 0x67, 0xA2, 0x7B, 0x7B, 0xE6, 0xCC, 0xB2, 0x4D, 0x32, 0x74, 0xD1, 0x8B, 0x2D, 0x40, 0x67, 0xF2, 0x61, 0xA9 }, + { 0x02, 0xF9, 0x30, 0x8A, 0x01, 0x92, 0x58, 0xC3, 0x10, 0x49, 0x34, 0x4F, 0x85, 0xF8, 0x9D, 0x52, 0x29, 0xB5, 0x31, 0xC8, 0x45, 0x83, 0x6F, 0x99, 0xB0, 0x86, 0x01, 0xF1, 0x13, 0xBC, 0xE0, 0x36, 0xF9 }, + { 0x02, 0xDF, 0xF1, 0xD7, 0x7F, 0x2A, 0x67, 0x1C, 0x5F, 0x36, 0x18, 0x37, 0x26, 0xDB, 0x23, 0x41, 0xBE, 0x58, 0xFE, 0xAE, 0x1D, 0xA2, 0xDE, 0xCE, 0xD8, 0x43, 0x24, 0x0F, 0x7B, 0x50, 0x2B, 0xA6, 0x61 }, + { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07 } + }, + { + { 0x50, 0x8B, 0x81, 0xA6, 0x11, 0xF1, 0x00, 0xA6, 0xB2, 0xB6, 0xB2, 0x96, 0x56, 0x59, 0x08, 0x98, 0xAF, 0x48, 0x8B, 0xCF, 0x2E, 0x1F, 0x55, 0xCF, 0x22, 0xE5, 0xCF, 0xB8, 0x44, 0x21, 0xFE, 0x61, 0xFA, 0x27, 0xFD, 0x49, 0xB1, 0xD5, 0x00, 0x85, 0xB4, 0x81, 0x28, 0x5E, 0x1C, 0xA2, 0x05, 0xD5, 0x5C, 0x82, 0xCC, 0x1B, 0x31, 0xFF, 0x5C, 0xD5, 0x4A, 0x48, 0x98, 0x29, 0x35, 0x59, 0x01, 0xF7, 0x03, 0x93, 0x5F, 0x97, 0x2D, 0xA0, 0x13, 0xF8, 0x0A, 0xE0, 0x11, 0x89, 0x0F, 0xA8, 0x9B, 0x67, 0xA2, 0x7B, 0x7B, 0xE6, 0xCC, 0xB2, 0x4D, 0x32, 0x74, 0xD1, 0x8B, 0x2D, 0x40, 0x67, 0xF2, 0x61, 0xA9 }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x93, 0x5F, 0x97, 0x2D, 0xA0, 0x13, 0xF8, 0x0A, 0xE0, 0x11, 0x89, 0x0F, 0xA8, 0x9B, 0x67, 0xA2, 0x7B, 0x7B, 0xE6, 0xCC, 0xB2, 0x4D, 0x32, 0x74, 0xD1, 0x8B, 0x2D, 0x40, 0x67, 0xF2, 0x61, 0xA9 } + }, + { + { 0x03, 0x37, 0xC8, 0x78, 0x21, 0xAF, 0xD5, 0x0A, 0x86, 0x44, 0xD8, 0x20, 0xA8, 0xF3, 0xE0, 0x2E, 0x49, 0x9C, 0x93, 0x18, 0x65, 0xC2, 0x36, 0x0F, 0xB4, 0x3D, 0x0A, 0x0D, 0x20, 0xDA, 0xFE, 0x07, 0xEA, 0x02, 0x87, 0xBF, 0x89, 0x1D, 0x2A, 0x6D, 0xEA, 0xEB, 0xAD, 0xC9, 0x09, 0x35, 0x2A, 0xA9, 0x40, 0x5D, 0x14, 0x28, 0xC1, 0x5F, 0x4B, 0x75, 0xF0, 0x4D, 0xAE, 0x64, 0x2A, 0x95, 0xC2, 0x54, 0x84, 0x80 }, + { 0x02, 0x79, 0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95, 0xCE, 0x87, 0x0B, 0x07, 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9, 0x59, 0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98, 0x02, 0x79, 0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95, 0xCE, 0x87, 0x0B, 0x07, 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9, 0x59, 0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98 }, + { 0x03, 0x2D, 0xE2, 0x66, 0x26, 0x28, 0xC9, 0x0B, 0x03, 0xF5, 0xE7, 0x20, 0x28, 0x4E, 0xB5, 0x2F, 0xF7, 0xD7, 0x1F, 0x42, 0x84, 0xF6, 0x27, 0xB6, 0x8A, 0x85, 0x3D, 0x78, 0xC7, 0x8E, 0x1F, 0xFE, 0x93, 0x03, 0xE4, 0xC5, 0x52, 0x4E, 0x83, 0xFF, 0xE1, 0x49, 0x3B, 0x90, 0x77, 0xCF, 0x1C, 0xA6, 0xBE, 0xB2, 0x09, 0x0C, 0x93, 0xD9, 0x30, 0x32, 0x10, 0x71, 0xAD, 0x40, 0xB2, 0xF4, 0x4E, 0x59, 0x90, 0x46 }, + { 0x02, 0x37, 0xC8, 0x78, 0x21, 0xAF, 0xD5, 0x0A, 0x86, 0x44, 0xD8, 0x20, 0xA8, 0xF3, 0xE0, 0x2E, 0x49, 0x9C, 0x93, 0x18, 0x65, 0xC2, 0x36, 0x0F, 0xB4, 0x3D, 0x0A, 0x0D, 0x20, 0xDA, 0xFE, 0x07, 0xEA, 0x03, 0x87, 0xBF, 0x89, 0x1D, 0x2A, 0x6D, 0xEA, 0xEB, 0xAD, 0xC9, 0x09, 0x35, 0x2A, 0xA9, 0x40, 0x5D, 0x14, 0x28, 0xC1, 0x5F, 0x4B, 0x75, 0xF0, 0x4D, 0xAE, 0x64, 0x2A, 0x95, 0xC2, 0x54, 0x84, 0x80 }, + { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x02, 0x87, 0xBF, 0x89, 0x1D, 0x2A, 0x6D, 0xEA, 0xEB, 0xAD, 0xC9, 0x09, 0x35, 0x2A, 0xA9, 0x40, 0x5D, 0x14, 0x28, 0xC1, 0x5F, 0x4B, 0x75, 0xF0, 0x4D, 0xAE, 0x64, 0x2A, 0x95, 0xC2, 0x54, 0x84, 0x80 } + }, + { + { 0x02, 0x84, 0x65, 0xFC, 0xF0, 0xBB, 0xDB, 0xCF, 0x44, 0x3A, 0xAB, 0xCC, 0xE5, 0x33, 0xD4, 0x2B, 0x4B, 0x5A, 0x10, 0x96, 0x6A, 0xC0, 0x9A, 0x49, 0x65, 0x5E, 0x8C, 0x42, 0xDA, 0xAB, 0x8F, 0xCD, 0x61, 0x03, 0x74, 0x96, 0xA3, 0xCC, 0x86, 0x92, 0x6D, 0x45, 0x2C, 0xAF, 0xCF, 0xD5, 0x5D, 0x25, 0x97, 0x2C, 0xA1, 0x67, 0x5D, 0x54, 0x93, 0x10, 0xDE, 0x29, 0x6B, 0xFF, 0x42, 0xF7, 0x2E, 0xEE, 0xA8, 0xC9 }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + { 0x04, 0x84, 0x65, 0xFC, 0xF0, 0xBB, 0xDB, 0xCF, 0x44, 0x3A, 0xAB, 0xCC, 0xE5, 0x33, 0xD4, 0x2B, 0x4B, 0x5A, 0x10, 0x96, 0x6A, 0xC0, 0x9A, 0x49, 0x65, 0x5E, 0x8C, 0x42, 0xDA, 0xAB, 0x8F, 0xCD, 0x61, 0x03, 0x74, 0x96, 0xA3, 0xCC, 0x86, 0x92, 0x6D, 0x45, 0x2C, 0xAF, 0xCF, 0xD5, 0x5D, 0x25, 0x97, 0x2C, 0xA1, 0x67, 0x5D, 0x54, 0x93, 0x10, 0xDE, 0x29, 0x6B, 0xFF, 0x42, 0xF7, 0x2E, 0xEE, 0xA8, 0xC9 }, + { 0x02, 0x84, 0x65, 0xFC, 0xF0, 0xBB, 0xDB, 0xCF, 0x44, 0x3A, 0xAB, 0xCC, 0xE5, 0x33, 0xD4, 0x2B, 0x4B, 0x5A, 0x10, 0x96, 0x6A, 0xC0, 0x9A, 0x49, 0x65, 0x5E, 0x8C, 0x42, 0xDA, 0xAB, 0x8F, 0xCD, 0x61, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09 }, + { 0x02, 0x84, 0x65, 0xFC, 0xF0, 0xBB, 0xDB, 0xCF, 0x44, 0x3A, 0xAB, 0xCC, 0xE5, 0x33, 0xD4, 0x2B, 0x4B, 0x5A, 0x10, 0x96, 0x6A, 0xC0, 0x9A, 0x49, 0x65, 0x5E, 0x8C, 0x42, 0xDA, 0xAB, 0x8F, 0xCD, 0x61, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFC, 0x30 } + }, + { + { 0xF9, 0x54, 0x66, 0xD0, 0x86, 0x77, 0x0E, 0x68, 0x99, 0x64, 0x66, 0x42, 0x19, 0x26, 0x6F, 0xE5, 0xED, 0x21, 0x5C, 0x92, 0xAE, 0x20, 0xBA, 0xB5, 0xC9, 0xD7, 0x9A, 0xDD, 0xDD, 0xF3, 0xC0, 0xCF } + }, + { + { 3, { 0, 1, 2 }, 0, 0, 0, { 0x01, 0x2A, 0xBB, 0xCB, 0x52, 0xB3, 0x01, 0x6A, 0xC0, 0x3A, 0xD8, 0x23, 0x95, 0xA1, 0xA4, 0x15, 0xC4, 0x8B, 0x93, 0xDE, 0xF7, 0x87, 0x18, 0xE6, 0x2A, 0x7A, 0x90, 0x05, 0x2F, 0xE2, 0x24, 0xFB }}, + { 3, { 1, 0, 2 }, 0, 0, 1, { 0x9F, 0xF2, 0xF7, 0xAA, 0xA8, 0x56, 0x15, 0x0C, 0xC8, 0x81, 0x92, 0x54, 0x21, 0x8D, 0x3A, 0xDE, 0xEB, 0x05, 0x35, 0x26, 0x90, 0x51, 0x89, 0x77, 0x24, 0xF9, 0xDB, 0x37, 0x89, 0x51, 0x3A, 0x52 }}, + { 3, { 1, 2, 0 }, 0, 0, 2, { 0xFA, 0x23, 0xC3, 0x59, 0xF6, 0xFA, 0xC4, 0xE7, 0x79, 0x6B, 0xB9, 0x3B, 0xC9, 0xF0, 0x53, 0x2A, 0x95, 0x46, 0x8C, 0x53, 0x9B, 0xA2, 0x0F, 0xF8, 0x6D, 0x7C, 0x76, 0xED, 0x92, 0x22, 0x79, 0x00 }}, + { 2, { 0, 1 }, 1, 0, 0, { 0xAE, 0x38, 0x60, 0x64, 0xB2, 0x61, 0x05, 0x40, 0x47, 0x98, 0xF7, 0x5D, 0xE2, 0xEB, 0x9A, 0xF5, 0xED, 0xA5, 0x38, 0x7B, 0x06, 0x4B, 0x83, 0xD0, 0x49, 0xCB, 0x7C, 0x5E, 0x08, 0x87, 0x95, 0x31 }}, + }, + { + { 2, { 1, 2 }, 0, 0, 0, MUSIG_PUBKEY }, + { 3, { 1, 0, 3 }, 0, 0, 0, MUSIG_PUBKEY }, + { 3, { 1, 2, 0 }, 2, 0, 0, MUSIG_AGGNONCE }, + { 3, { 1, 2, 0 }, 3, 0, 0, MUSIG_AGGNONCE }, + { 3, { 1, 2, 0 }, 4, 0, 0, MUSIG_AGGNONCE }, + { 3, { 0, 1, 2 }, 0, 0, 1, MUSIG_SECNONCE }, + }, + { + { { 0xFE, 0xD5, 0x44, 0x34, 0xAD, 0x4C, 0xFE, 0x95, 0x3F, 0xC5, 0x27, 0xDC, 0x6A, 0x5E, 0x5B, 0xE8, 0xF6, 0x23, 0x49, 0x07, 0xB7, 0xC1, 0x87, 0x55, 0x95, 0x57, 0xCE, 0x87, 0xA0, 0x54, 0x1C, 0x46 }, 3, { 0, 1, 2 }, 3, { 0, 1, 2 }, 0, 0, MUSIG_SIG_VERIFY }, + { { 0x01, 0x2A, 0xBB, 0xCB, 0x52, 0xB3, 0x01, 0x6A, 0xC0, 0x3A, 0xD8, 0x23, 0x95, 0xA1, 0xA4, 0x15, 0xC4, 0x8B, 0x93, 0xDE, 0xF7, 0x87, 0x18, 0xE6, 0x2A, 0x7A, 0x90, 0x05, 0x2F, 0xE2, 0x24, 0xFB }, 3, { 0, 1, 2 }, 3, { 0, 1, 2 }, 0, 1, MUSIG_SIG_VERIFY }, + { { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xBA, 0xAE, 0xDC, 0xE6, 0xAF, 0x48, 0xA0, 0x3B, 0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41 }, 3, { 0, 1, 2 }, 3, { 0, 1, 2 }, 0, 0, MUSIG_SIG }, + }, + { + { { 0x01, 0x2A, 0xBB, 0xCB, 0x52, 0xB3, 0x01, 0x6A, 0xC0, 0x3A, 0xD8, 0x23, 0x95, 0xA1, 0xA4, 0x15, 0xC4, 0x8B, 0x93, 0xDE, 0xF7, 0x87, 0x18, 0xE6, 0x2A, 0x7A, 0x90, 0x05, 0x2F, 0xE2, 0x24, 0xFB }, 3, { 0, 1, 2 }, 3, { 4, 1, 2 }, 0, 0, MUSIG_PUBNONCE }, + { { 0x01, 0x2A, 0xBB, 0xCB, 0x52, 0xB3, 0x01, 0x6A, 0xC0, 0x3A, 0xD8, 0x23, 0x95, 0xA1, 0xA4, 0x15, 0xC4, 0x8B, 0x93, 0xDE, 0xF7, 0x87, 0x18, 0xE6, 0x2A, 0x7A, 0x90, 0x05, 0x2F, 0xE2, 0x24, 0xFB }, 3, { 3, 1, 2 }, 3, { 0, 1, 2 }, 0, 0, MUSIG_PUBKEY }, + }, +}; + +struct musig_tweak_case { + size_t key_indices_len; + size_t key_indices[3]; + size_t nonce_indices_len; + size_t nonce_indices[3]; + size_t tweak_indices_len; + size_t tweak_indices[4]; + int is_xonly[4]; + size_t signer_index; + unsigned char expected[32]; +}; + +struct musig_tweak_vector { + unsigned char sk[32]; + unsigned char secnonce[97]; + unsigned char aggnonce[66]; + unsigned char msg[32]; + unsigned char pubkeys[3][33]; + unsigned char pubnonces[3][194]; + unsigned char tweaks[5][32]; + struct musig_tweak_case valid_case[5]; + struct musig_tweak_case error_case[1]; +}; + +static const struct musig_tweak_vector musig_tweak_vector = { + { 0x7F, 0xB9, 0xE0, 0xE6, 0x87, 0xAD, 0xA1, 0xEE, 0xBF, 0x7E, 0xCF, 0xE2, 0xF2, 0x1E, 0x73, 0xEB, 0xDB, 0x51, 0xA7, 0xD4, 0x50, 0x94, 0x8D, 0xFE, 0x8D, 0x76, 0xD7, 0xF2, 0xD1, 0x00, 0x76, 0x71 }, + { 0x50, 0x8B, 0x81, 0xA6, 0x11, 0xF1, 0x00, 0xA6, 0xB2, 0xB6, 0xB2, 0x96, 0x56, 0x59, 0x08, 0x98, 0xAF, 0x48, 0x8B, 0xCF, 0x2E, 0x1F, 0x55, 0xCF, 0x22, 0xE5, 0xCF, 0xB8, 0x44, 0x21, 0xFE, 0x61, 0xFA, 0x27, 0xFD, 0x49, 0xB1, 0xD5, 0x00, 0x85, 0xB4, 0x81, 0x28, 0x5E, 0x1C, 0xA2, 0x05, 0xD5, 0x5C, 0x82, 0xCC, 0x1B, 0x31, 0xFF, 0x5C, 0xD5, 0x4A, 0x48, 0x98, 0x29, 0x35, 0x59, 0x01, 0xF7, 0x03, 0x93, 0x5F, 0x97, 0x2D, 0xA0, 0x13, 0xF8, 0x0A, 0xE0, 0x11, 0x89, 0x0F, 0xA8, 0x9B, 0x67, 0xA2, 0x7B, 0x7B, 0xE6, 0xCC, 0xB2, 0x4D, 0x32, 0x74, 0xD1, 0x8B, 0x2D, 0x40, 0x67, 0xF2, 0x61, 0xA9 }, + { 0x02, 0x84, 0x65, 0xFC, 0xF0, 0xBB, 0xDB, 0xCF, 0x44, 0x3A, 0xAB, 0xCC, 0xE5, 0x33, 0xD4, 0x2B, 0x4B, 0x5A, 0x10, 0x96, 0x6A, 0xC0, 0x9A, 0x49, 0x65, 0x5E, 0x8C, 0x42, 0xDA, 0xAB, 0x8F, 0xCD, 0x61, 0x03, 0x74, 0x96, 0xA3, 0xCC, 0x86, 0x92, 0x6D, 0x45, 0x2C, 0xAF, 0xCF, 0xD5, 0x5D, 0x25, 0x97, 0x2C, 0xA1, 0x67, 0x5D, 0x54, 0x93, 0x10, 0xDE, 0x29, 0x6B, 0xFF, 0x42, 0xF7, 0x2E, 0xEE, 0xA8, 0xC9 }, + { 0xF9, 0x54, 0x66, 0xD0, 0x86, 0x77, 0x0E, 0x68, 0x99, 0x64, 0x66, 0x42, 0x19, 0x26, 0x6F, 0xE5, 0xED, 0x21, 0x5C, 0x92, 0xAE, 0x20, 0xBA, 0xB5, 0xC9, 0xD7, 0x9A, 0xDD, 0xDD, 0xF3, 0xC0, 0xCF }, + { + { 0x03, 0x93, 0x5F, 0x97, 0x2D, 0xA0, 0x13, 0xF8, 0x0A, 0xE0, 0x11, 0x89, 0x0F, 0xA8, 0x9B, 0x67, 0xA2, 0x7B, 0x7B, 0xE6, 0xCC, 0xB2, 0x4D, 0x32, 0x74, 0xD1, 0x8B, 0x2D, 0x40, 0x67, 0xF2, 0x61, 0xA9 }, + { 0x02, 0xF9, 0x30, 0x8A, 0x01, 0x92, 0x58, 0xC3, 0x10, 0x49, 0x34, 0x4F, 0x85, 0xF8, 0x9D, 0x52, 0x29, 0xB5, 0x31, 0xC8, 0x45, 0x83, 0x6F, 0x99, 0xB0, 0x86, 0x01, 0xF1, 0x13, 0xBC, 0xE0, 0x36, 0xF9 }, + { 0x02, 0xDF, 0xF1, 0xD7, 0x7F, 0x2A, 0x67, 0x1C, 0x5F, 0x36, 0x18, 0x37, 0x26, 0xDB, 0x23, 0x41, 0xBE, 0x58, 0xFE, 0xAE, 0x1D, 0xA2, 0xDE, 0xCE, 0xD8, 0x43, 0x24, 0x0F, 0x7B, 0x50, 0x2B, 0xA6, 0x59 } + }, + { + { 0x03, 0x37, 0xC8, 0x78, 0x21, 0xAF, 0xD5, 0x0A, 0x86, 0x44, 0xD8, 0x20, 0xA8, 0xF3, 0xE0, 0x2E, 0x49, 0x9C, 0x93, 0x18, 0x65, 0xC2, 0x36, 0x0F, 0xB4, 0x3D, 0x0A, 0x0D, 0x20, 0xDA, 0xFE, 0x07, 0xEA, 0x02, 0x87, 0xBF, 0x89, 0x1D, 0x2A, 0x6D, 0xEA, 0xEB, 0xAD, 0xC9, 0x09, 0x35, 0x2A, 0xA9, 0x40, 0x5D, 0x14, 0x28, 0xC1, 0x5F, 0x4B, 0x75, 0xF0, 0x4D, 0xAE, 0x64, 0x2A, 0x95, 0xC2, 0x54, 0x84, 0x80 }, + { 0x02, 0x79, 0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95, 0xCE, 0x87, 0x0B, 0x07, 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9, 0x59, 0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98, 0x02, 0x79, 0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95, 0xCE, 0x87, 0x0B, 0x07, 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9, 0x59, 0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98 }, + { 0x03, 0x2D, 0xE2, 0x66, 0x26, 0x28, 0xC9, 0x0B, 0x03, 0xF5, 0xE7, 0x20, 0x28, 0x4E, 0xB5, 0x2F, 0xF7, 0xD7, 0x1F, 0x42, 0x84, 0xF6, 0x27, 0xB6, 0x8A, 0x85, 0x3D, 0x78, 0xC7, 0x8E, 0x1F, 0xFE, 0x93, 0x03, 0xE4, 0xC5, 0x52, 0x4E, 0x83, 0xFF, 0xE1, 0x49, 0x3B, 0x90, 0x77, 0xCF, 0x1C, 0xA6, 0xBE, 0xB2, 0x09, 0x0C, 0x93, 0xD9, 0x30, 0x32, 0x10, 0x71, 0xAD, 0x40, 0xB2, 0xF4, 0x4E, 0x59, 0x90, 0x46 } + }, + { + { 0xE8, 0xF7, 0x91, 0xFF, 0x92, 0x25, 0xA2, 0xAF, 0x01, 0x02, 0xAF, 0xFF, 0x4A, 0x9A, 0x72, 0x3D, 0x96, 0x12, 0xA6, 0x82, 0xA2, 0x5E, 0xBE, 0x79, 0x80, 0x2B, 0x26, 0x3C, 0xDF, 0xCD, 0x83, 0xBB }, + { 0xAE, 0x2E, 0xA7, 0x97, 0xCC, 0x0F, 0xE7, 0x2A, 0xC5, 0xB9, 0x7B, 0x97, 0xF3, 0xC6, 0x95, 0x7D, 0x7E, 0x41, 0x99, 0xA1, 0x67, 0xA5, 0x8E, 0xB0, 0x8B, 0xCA, 0xFF, 0xDA, 0x70, 0xAC, 0x04, 0x55 }, + { 0xF5, 0x2E, 0xCB, 0xC5, 0x65, 0xB3, 0xD8, 0xBE, 0xA2, 0xDF, 0xD5, 0xB7, 0x5A, 0x4F, 0x45, 0x7E, 0x54, 0x36, 0x98, 0x09, 0x32, 0x2E, 0x41, 0x20, 0x83, 0x16, 0x26, 0xF2, 0x90, 0xFA, 0x87, 0xE0 }, + { 0x19, 0x69, 0xAD, 0x73, 0xCC, 0x17, 0x7F, 0xA0, 0xB4, 0xFC, 0xED, 0x6D, 0xF1, 0xF7, 0xBF, 0x99, 0x07, 0xE6, 0x65, 0xFD, 0xE9, 0xBA, 0x19, 0x6A, 0x74, 0xFE, 0xD0, 0xA3, 0xCF, 0x5A, 0xEF, 0x9D }, + { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xBA, 0xAE, 0xDC, 0xE6, 0xAF, 0x48, 0xA0, 0x3B, 0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41 } + }, + { + { 3, { 1, 2, 0 }, 3, { 1, 2, 0 }, 1, { 0 }, { 1 }, 2, { 0xE2, 0x8A, 0x5C, 0x66, 0xE6, 0x1E, 0x17, 0x8C, 0x2B, 0xA1, 0x9D, 0xB7, 0x7B, 0x6C, 0xF9, 0xF7, 0xE2, 0xF0, 0xF5, 0x6C, 0x17, 0x91, 0x8C, 0xD1, 0x31, 0x35, 0xE6, 0x0C, 0xC8, 0x48, 0xFE, 0x91 }}, + { 3, { 1, 2, 0 }, 3, { 1, 2, 0 }, 1, { 0 }, { 0 }, 2, { 0x38, 0xB0, 0x76, 0x77, 0x98, 0x25, 0x2F, 0x21, 0xBF, 0x57, 0x02, 0xC4, 0x80, 0x28, 0xB0, 0x95, 0x42, 0x83, 0x20, 0xF7, 0x3A, 0x4B, 0x14, 0xDB, 0x1E, 0x25, 0xDE, 0x58, 0x54, 0x3D, 0x2D, 0x2D }}, + { 3, { 1, 2, 0 }, 3, { 1, 2, 0 }, 2, { 0, 1 }, { 0, 1 }, 2, { 0x40, 0x8A, 0x0A, 0x21, 0xC4, 0xA0, 0xF5, 0xDA, 0xCA, 0xF9, 0x64, 0x6A, 0xD6, 0xEB, 0x6F, 0xEC, 0xD7, 0xF7, 0xA1, 0x1F, 0x03, 0xED, 0x1F, 0x48, 0xDF, 0xFF, 0x21, 0x85, 0xBC, 0x2C, 0x24, 0x08 }}, + { 3, { 1, 2, 0 }, 3, { 1, 2, 0 }, 4, { 0, 1, 2, 3 }, { 0, 0, 1, 1 }, 2, { 0x45, 0xAB, 0xD2, 0x06, 0xE6, 0x1E, 0x3D, 0xF2, 0xEC, 0x9E, 0x26, 0x4A, 0x6F, 0xEC, 0x82, 0x92, 0x14, 0x1A, 0x63, 0x3C, 0x28, 0x58, 0x63, 0x88, 0x23, 0x55, 0x41, 0xF9, 0xAD, 0xE7, 0x54, 0x35 }}, + { 3, { 1, 2, 0 }, 3, { 1, 2, 0 }, 4, { 0, 1, 2, 3 }, { 1, 0, 1, 0 }, 2, { 0xB2, 0x55, 0xFD, 0xCA, 0xC2, 0x7B, 0x40, 0xC7, 0xCE, 0x78, 0x48, 0xE2, 0xD3, 0xB7, 0xBF, 0x5E, 0xA0, 0xED, 0x75, 0x6D, 0xA8, 0x15, 0x65, 0xAC, 0x80, 0x4C, 0xCC, 0xA3, 0xE1, 0xD5, 0xD2, 0x39 }}, + }, + { + { 3, { 1, 2, 0 }, 3, { 1, 2, 0 }, 1, { 4 }, { 0 }, 2, { 0 }}, + }, +}; + +/* Omit pubnonces in the test vectors because they're only needed for + * implementations that do not directly accept an aggnonce. */ +struct musig_sig_agg_case { + size_t key_indices_len; + size_t key_indices[2]; + size_t tweak_indices_len; + size_t tweak_indices[3]; + int is_xonly[3]; + unsigned char aggnonce[66]; + size_t psig_indices_len; + size_t psig_indices[2]; + /* if valid case */ + unsigned char expected[64]; + /* if error case */ + int invalid_sig_idx; +}; + +struct musig_sig_agg_vector { + unsigned char pubkeys[4][33]; + unsigned char tweaks[3][32]; + unsigned char psigs[9][32]; + unsigned char msg[32]; + struct musig_sig_agg_case valid_case[4]; + struct musig_sig_agg_case error_case[1]; +}; + +static const struct musig_sig_agg_vector musig_sig_agg_vector = { + { + { 0x03, 0x93, 0x5F, 0x97, 0x2D, 0xA0, 0x13, 0xF8, 0x0A, 0xE0, 0x11, 0x89, 0x0F, 0xA8, 0x9B, 0x67, 0xA2, 0x7B, 0x7B, 0xE6, 0xCC, 0xB2, 0x4D, 0x32, 0x74, 0xD1, 0x8B, 0x2D, 0x40, 0x67, 0xF2, 0x61, 0xA9 }, + { 0x02, 0xD2, 0xDC, 0x6F, 0x5D, 0xF7, 0xC5, 0x6A, 0xCF, 0x38, 0xC7, 0xFA, 0x0A, 0xE7, 0xA7, 0x59, 0xAE, 0x30, 0xE1, 0x9B, 0x37, 0x35, 0x9D, 0xFD, 0xE0, 0x15, 0x87, 0x23, 0x24, 0xC7, 0xEF, 0x6E, 0x05 }, + { 0x03, 0xC7, 0xFB, 0x10, 0x1D, 0x97, 0xFF, 0x93, 0x0A, 0xCD, 0x0C, 0x67, 0x60, 0x85, 0x2E, 0xF6, 0x4E, 0x69, 0x08, 0x3D, 0xE0, 0xB0, 0x6A, 0xC6, 0x33, 0x57, 0x24, 0x75, 0x4B, 0xB4, 0xB0, 0x52, 0x2C }, + { 0x02, 0x35, 0x24, 0x33, 0xB2, 0x1E, 0x7E, 0x05, 0xD3, 0xB4, 0x52, 0xB8, 0x1C, 0xAE, 0x56, 0x6E, 0x06, 0xD2, 0xE0, 0x03, 0xEC, 0xE1, 0x6D, 0x10, 0x74, 0xAA, 0xBA, 0x42, 0x89, 0xE0, 0xE3, 0xD5, 0x81 } + }, + { + { 0xB5, 0x11, 0xDA, 0x49, 0x21, 0x82, 0xA9, 0x1B, 0x0F, 0xFB, 0x9A, 0x98, 0x02, 0x0D, 0x55, 0xF2, 0x60, 0xAE, 0x86, 0xD7, 0xEC, 0xBD, 0x03, 0x99, 0xC7, 0x38, 0x3D, 0x59, 0xA5, 0xF2, 0xAF, 0x7C }, + { 0xA8, 0x15, 0xFE, 0x04, 0x9E, 0xE3, 0xC5, 0xAA, 0xB6, 0x63, 0x10, 0x47, 0x7F, 0xBC, 0x8B, 0xCC, 0xCA, 0xC2, 0xF3, 0x39, 0x5F, 0x59, 0xF9, 0x21, 0xC3, 0x64, 0xAC, 0xD7, 0x8A, 0x2F, 0x48, 0xDC }, + { 0x75, 0x44, 0x8A, 0x87, 0x27, 0x4B, 0x05, 0x64, 0x68, 0xB9, 0x77, 0xBE, 0x06, 0xEB, 0x1E, 0x9F, 0x65, 0x75, 0x77, 0xB7, 0x32, 0x0B, 0x0A, 0x33, 0x76, 0xEA, 0x51, 0xFD, 0x42, 0x0D, 0x18, 0xA8 } + }, + { + { 0xB1, 0x5D, 0x2C, 0xD3, 0xC3, 0xD2, 0x2B, 0x04, 0xDA, 0xE4, 0x38, 0xCE, 0x65, 0x3F, 0x6B, 0x4E, 0xCF, 0x04, 0x2F, 0x42, 0xCF, 0xDE, 0xD7, 0xC4, 0x1B, 0x64, 0xAA, 0xF9, 0xB4, 0xAF, 0x53, 0xFB }, + { 0x61, 0x93, 0xD6, 0xAC, 0x61, 0xB3, 0x54, 0xE9, 0x10, 0x5B, 0xBD, 0xC8, 0x93, 0x7A, 0x34, 0x54, 0xA6, 0xD7, 0x05, 0xB6, 0xD5, 0x73, 0x22, 0xA5, 0xA4, 0x72, 0xA0, 0x2C, 0xE9, 0x9F, 0xCB, 0x64 }, + { 0x9A, 0x87, 0xD3, 0xB7, 0x9E, 0xC6, 0x72, 0x28, 0xCB, 0x97, 0x87, 0x8B, 0x76, 0x04, 0x9B, 0x15, 0xDB, 0xD0, 0x5B, 0x81, 0x58, 0xD1, 0x7B, 0x5B, 0x91, 0x14, 0xD3, 0xC2, 0x26, 0x88, 0x75, 0x05 }, + { 0x66, 0xF8, 0x2E, 0xA9, 0x09, 0x23, 0x68, 0x9B, 0x85, 0x5D, 0x36, 0xC6, 0xB7, 0xE0, 0x32, 0xFB, 0x99, 0x70, 0x30, 0x14, 0x81, 0xB9, 0x9E, 0x01, 0xCD, 0xB4, 0xD6, 0xAC, 0x7C, 0x34, 0x7A, 0x15 }, + { 0x4F, 0x5A, 0xEE, 0x41, 0x51, 0x08, 0x48, 0xA6, 0x44, 0x7D, 0xCD, 0x1B, 0xBC, 0x78, 0x45, 0x7E, 0xF6, 0x90, 0x24, 0x94, 0x4C, 0x87, 0xF4, 0x02, 0x50, 0xD3, 0xEF, 0x2C, 0x25, 0xD3, 0x3E, 0xFE }, + { 0xDD, 0xEF, 0x42, 0x7B, 0xBB, 0x84, 0x7C, 0xC0, 0x27, 0xBE, 0xFF, 0x4E, 0xDB, 0x01, 0x03, 0x81, 0x48, 0x91, 0x78, 0x32, 0x25, 0x3E, 0xBC, 0x35, 0x5F, 0xC3, 0x3F, 0x4A, 0x8E, 0x2F, 0xCC, 0xE4 }, + { 0x97, 0xB8, 0x90, 0xA2, 0x6C, 0x98, 0x1D, 0xA8, 0x10, 0x2D, 0x3B, 0xC2, 0x94, 0x15, 0x9D, 0x17, 0x1D, 0x72, 0x81, 0x0F, 0xDF, 0x7C, 0x6A, 0x69, 0x1D, 0xEF, 0x02, 0xF0, 0xF7, 0xAF, 0x3F, 0xDC }, + { 0x53, 0xFA, 0x9E, 0x08, 0xBA, 0x52, 0x43, 0xCB, 0xCB, 0x0D, 0x79, 0x7C, 0x5E, 0xE8, 0x3B, 0xC6, 0x72, 0x8E, 0x53, 0x9E, 0xB7, 0x6C, 0x2D, 0x0B, 0xF0, 0xF9, 0x71, 0xEE, 0x4E, 0x90, 0x99, 0x71 }, + { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xBA, 0xAE, 0xDC, 0xE6, 0xAF, 0x48, 0xA0, 0x3B, 0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41 } + }, + { 0x59, 0x9C, 0x67, 0xEA, 0x41, 0x0D, 0x00, 0x5B, 0x9D, 0xA9, 0x08, 0x17, 0xCF, 0x03, 0xED, 0x3B, 0x1C, 0x86, 0x8E, 0x4D, 0xA4, 0xED, 0xF0, 0x0A, 0x58, 0x80, 0xB0, 0x08, 0x2C, 0x23, 0x78, 0x69 }, + { + { 2, { 0, 1 }, 0, { 0 }, { 0 }, { 0x03, 0x41, 0x43, 0x27, 0x22, 0xC5, 0xCD, 0x02, 0x68, 0xD8, 0x29, 0xC7, 0x02, 0xCF, 0x0D, 0x1C, 0xBC, 0xE5, 0x70, 0x33, 0xEE, 0xD2, 0x01, 0xFD, 0x33, 0x51, 0x91, 0x38, 0x52, 0x27, 0xC3, 0x21, 0x0C, 0x03, 0xD3, 0x77, 0xF2, 0xD2, 0x58, 0xB6, 0x4A, 0xAD, 0xC0, 0xE1, 0x6F, 0x26, 0x46, 0x23, 0x23, 0xD7, 0x01, 0xD2, 0x86, 0x04, 0x6A, 0x2E, 0xA9, 0x33, 0x65, 0x65, 0x6A, 0xFD, 0x98, 0x75, 0x98, 0x2B }, 2, { 0, 1 }, { 0x04, 0x1D, 0xA2, 0x22, 0x23, 0xCE, 0x65, 0xC9, 0x2C, 0x9A, 0x0D, 0x6C, 0x2C, 0xAC, 0x82, 0x8A, 0xAF, 0x1E, 0xEE, 0x56, 0x30, 0x4F, 0xEC, 0x37, 0x1D, 0xDF, 0x91, 0xEB, 0xB2, 0xB9, 0xEF, 0x09, 0x12, 0xF1, 0x03, 0x80, 0x25, 0x85, 0x7F, 0xED, 0xEB, 0x3F, 0xF6, 0x96, 0xF8, 0xB9, 0x9F, 0xA4, 0xBB, 0x2C, 0x58, 0x12, 0xF6, 0x09, 0x5A, 0x2E, 0x00, 0x04, 0xEC, 0x99, 0xCE, 0x18, 0xDE, 0x1E }, 0 }, + { 2, { 0, 2 }, 0, { 0 }, { 0 }, { 0x02, 0x24, 0xAF, 0xD3, 0x6C, 0x90, 0x20, 0x84, 0x05, 0x8B, 0x51, 0xB5, 0xD3, 0x66, 0x76, 0xBB, 0xA4, 0xDC, 0x97, 0xC7, 0x75, 0x87, 0x37, 0x68, 0xE5, 0x88, 0x22, 0xF8, 0x7F, 0xE4, 0x37, 0xD7, 0x92, 0x02, 0x8C, 0xB1, 0x59, 0x29, 0x09, 0x9E, 0xEE, 0x2F, 0x5D, 0xAE, 0x40, 0x4C, 0xD3, 0x93, 0x57, 0x59, 0x1B, 0xA3, 0x2E, 0x9A, 0xF4, 0xE1, 0x62, 0xB8, 0xD3, 0xE7, 0xCB, 0x5E, 0xFE, 0x31, 0xCB, 0x20 }, 2, { 2, 3 }, { 0x10, 0x69, 0xB6, 0x7E, 0xC3, 0xD2, 0xF3, 0xC7, 0xC0, 0x82, 0x91, 0xAC, 0xCB, 0x17, 0xA9, 0xC9, 0xB8, 0xF2, 0x81, 0x9A, 0x52, 0xEB, 0x5D, 0xF8, 0x72, 0x6E, 0x17, 0xE7, 0xD6, 0xB5, 0x2E, 0x9F, 0x01, 0x80, 0x02, 0x60, 0xA7, 0xE9, 0xDA, 0xC4, 0x50, 0xF4, 0xBE, 0x52, 0x2D, 0xE4, 0xCE, 0x12, 0xBA, 0x91, 0xAE, 0xAF, 0x2B, 0x42, 0x79, 0x21, 0x9E, 0xF7, 0x4B, 0xE1, 0xD2, 0x86, 0xAD, 0xD9 }, 0 }, + { 2, { 0, 2 }, 1, { 0 }, { 0 }, { 0x02, 0x08, 0xC5, 0xC4, 0x38, 0xC7, 0x10, 0xF4, 0xF9, 0x6A, 0x61, 0xE9, 0xFF, 0x3C, 0x37, 0x75, 0x88, 0x14, 0xB8, 0xC3, 0xAE, 0x12, 0xBF, 0xEA, 0x0E, 0xD2, 0xC8, 0x7F, 0xF6, 0x95, 0x4F, 0xF1, 0x86, 0x02, 0x0B, 0x18, 0x16, 0xEA, 0x10, 0x4B, 0x4F, 0xCA, 0x2D, 0x30, 0x4D, 0x73, 0x3E, 0x0E, 0x19, 0xCE, 0xAD, 0x51, 0x30, 0x3F, 0xF6, 0x42, 0x0B, 0xFD, 0x22, 0x23, 0x35, 0xCA, 0xA4, 0x02, 0x91, 0x6D }, 2, { 4, 5 }, { 0x5C, 0x55, 0x8E, 0x1D, 0xCA, 0xDE, 0x86, 0xDA, 0x0B, 0x2F, 0x02, 0x62, 0x6A, 0x51, 0x2E, 0x30, 0xA2, 0x2C, 0xF5, 0x25, 0x5C, 0xAE, 0xA7, 0xEE, 0x32, 0xC3, 0x8E, 0x9A, 0x71, 0xA0, 0xE9, 0x14, 0x8B, 0xA6, 0xC0, 0xE6, 0xEC, 0x76, 0x83, 0xB6, 0x42, 0x20, 0xF0, 0x29, 0x86, 0x96, 0xF1, 0xB8, 0x78, 0xCD, 0x47, 0xB1, 0x07, 0xB8, 0x1F, 0x71, 0x88, 0x81, 0x2D, 0x59, 0x39, 0x71, 0xE0, 0xCC }, 0 }, + { 2, { 0, 3 }, 3, { 0, 1, 2 }, { 1, 0, 1 }, { 0x02, 0xB5, 0xAD, 0x07, 0xAF, 0xCD, 0x99, 0xB6, 0xD9, 0x2C, 0xB4, 0x33, 0xFB, 0xD2, 0xA2, 0x8F, 0xDE, 0xB9, 0x8E, 0xAE, 0x2E, 0xB0, 0x9B, 0x60, 0x14, 0xEF, 0x0F, 0x81, 0x97, 0xCD, 0x58, 0x40, 0x33, 0x02, 0xE8, 0x61, 0x69, 0x10, 0xF9, 0x29, 0x3C, 0xF6, 0x92, 0xC4, 0x9F, 0x35, 0x1D, 0xB8, 0x6B, 0x25, 0xE3, 0x52, 0x90, 0x1F, 0x0E, 0x23, 0x7B, 0xAF, 0xDA, 0x11, 0xF1, 0xC1, 0xCE, 0xF2, 0x9F, 0xFD }, 2, { 6, 7 }, { 0x83, 0x9B, 0x08, 0x82, 0x0B, 0x68, 0x1D, 0xBA, 0x8D, 0xAF, 0x4C, 0xC7, 0xB1, 0x04, 0xE8, 0xF2, 0x63, 0x8F, 0x93, 0x88, 0xF8, 0xD7, 0xA5, 0x55, 0xDC, 0x17, 0xB6, 0xE6, 0x97, 0x1D, 0x74, 0x26, 0xCE, 0x07, 0xBF, 0x6A, 0xB0, 0x1F, 0x1D, 0xB5, 0x0E, 0x4E, 0x33, 0x71, 0x92, 0x95, 0xF4, 0x09, 0x45, 0x72, 0xB7, 0x98, 0x68, 0xE4, 0x40, 0xFB, 0x3D, 0xEF, 0xD3, 0xFA, 0xC1, 0xDB, 0x58, 0x9E }, 0 }, + }, + { + { 2, { 0, 3 }, 3, { 0, 1, 2 }, { 1, 0, 1 }, { 0x02, 0xB5, 0xAD, 0x07, 0xAF, 0xCD, 0x99, 0xB6, 0xD9, 0x2C, 0xB4, 0x33, 0xFB, 0xD2, 0xA2, 0x8F, 0xDE, 0xB9, 0x8E, 0xAE, 0x2E, 0xB0, 0x9B, 0x60, 0x14, 0xEF, 0x0F, 0x81, 0x97, 0xCD, 0x58, 0x40, 0x33, 0x02, 0xE8, 0x61, 0x69, 0x10, 0xF9, 0x29, 0x3C, 0xF6, 0x92, 0xC4, 0x9F, 0x35, 0x1D, 0xB8, 0x6B, 0x25, 0xE3, 0x52, 0x90, 0x1F, 0x0E, 0x23, 0x7B, 0xAF, 0xDA, 0x11, 0xF1, 0xC1, 0xCE, 0xF2, 0x9F, 0xFD }, 2, { 7, 8 }, { 0 }, 1 }, + }, +}; +enum { MUSIG_VECTORS_MAX_PUBKEYS = 7 }; diff --git a/src/modules/schnorrsig/Makefile.am.include b/src/modules/schnorrsig/Makefile.am.include index 654fa2e5ae5a48..2c211784fbca77 100644 --- a/src/modules/schnorrsig/Makefile.am.include +++ b/src/modules/schnorrsig/Makefile.am.include @@ -1,5 +1,12 @@ include_HEADERS += include/secp256k1_schnorrsig.h +if ENABLE_MODULE_BATCH +include_HEADERS += include/secp256k1_schnorrsig_batch.h +endif noinst_HEADERS += src/modules/schnorrsig/main_impl.h noinst_HEADERS += src/modules/schnorrsig/tests_impl.h noinst_HEADERS += src/modules/schnorrsig/tests_exhaustive_impl.h noinst_HEADERS += src/modules/schnorrsig/bench_impl.h +if ENABLE_MODULE_BATCH +noinst_HEADERS += src/modules/schnorrsig/batch_add_impl.h +noinst_HEADERS += src/modules/schnorrsig/batch_add_tests_impl.h +endif diff --git a/src/modules/schnorrsig/batch_add_impl.h b/src/modules/schnorrsig/batch_add_impl.h new file mode 100644 index 00000000000000..7c3da4a29d1c3b --- /dev/null +++ b/src/modules/schnorrsig/batch_add_impl.h @@ -0,0 +1,158 @@ +#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 "../batch/main_impl.h" + +/* The number of scalar-point pairs allocated on the scratch space + * by `secp256k1_batch_add_schnorrsig` */ +#define BATCH_SCHNORRSIG_SCRATCH_OBJS 2 + +/** Computes a 16-byte deterministic randomizer by + * SHA256(batch_add_tag || sig || msg || compressed pubkey) */ +static void secp256k1_batch_schnorrsig_randomizer_gen(unsigned char *randomizer32, secp256k1_sha256 *sha256, const unsigned char *sig64, const unsigned char *msg, size_t msglen, const unsigned char *compressed_pk33) { + secp256k1_sha256 sha256_cpy; + unsigned char batch_add_type = (unsigned char) schnorrsig; + + secp256k1_sha256_write(sha256, &batch_add_type, sizeof(batch_add_type)); + /* add schnorrsig data to sha256 object */ + secp256k1_sha256_write(sha256, sig64, 64); + secp256k1_sha256_write(sha256, msg, msglen); + secp256k1_sha256_write(sha256, compressed_pk33, 33); + + /* generate randomizer */ + sha256_cpy = *sha256; + secp256k1_sha256_finalize(&sha256_cpy, randomizer32); + /* 16 byte randomizer is sufficient */ + memset(randomizer32, 0, 16); +} + +static int secp256k1_batch_schnorrsig_randomizer_set(const secp256k1_context *ctx, secp256k1_batch *batch, secp256k1_scalar *r, const unsigned char *sig64, const unsigned char *msg, size_t msglen, const secp256k1_xonly_pubkey *pubkey) { + unsigned char randomizer[32]; + unsigned char buf[33]; + size_t buflen = sizeof(buf); + int overflow; + /* t = 2^127 */ + secp256k1_scalar t = SECP256K1_SCALAR_CONST(0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000); + + /* We use compressed serialization here. If we would use + * xonly_pubkey serialization and a user would wrongly memcpy + * normal secp256k1_pubkeys into xonly_pubkeys then the randomizer + * would be the same for two different pubkeys. */ + if (!secp256k1_ec_pubkey_serialize(ctx, buf, &buflen, (const secp256k1_pubkey *) pubkey, SECP256K1_EC_COMPRESSED)) { + return 0; + } + + secp256k1_batch_schnorrsig_randomizer_gen(randomizer, &batch->sha256, sig64, msg, msglen, buf); + secp256k1_scalar_set_b32(r, randomizer, &overflow); + /* Shift scalar to range [-2^127, 2^127-1] */ + secp256k1_scalar_negate(&t, &t); + secp256k1_scalar_add(r, r, &t); + VERIFY_CHECK(overflow == 0); + + return 1; +} + +/** Adds the given schnorr signature to the batch. + * + * Updates the batch object by: + * 1. adding the points R and P to the scratch space + * -> both the points are of type `secp256k1_gej` + * 2. adding the scalars ai and ai.e to the scratch space + * -> ai is the scalar coefficient of R (in multi multiplication) + * -> ai.e is the scalar coefficient of P (in multi multiplication) + * 3. incrementing sc_g (scalar of G) by -ai.s + * + * Conventions used above: + * -> R (nonce commitment) = EC point whose y = even and x = sig64[0:32] + * -> P (public key) = pubkey + * -> ai (randomizer) = sha256_tagged(batch_add_tag || sig64 || msg || pubkey) + * -> e (challenge) = sha256_tagged(sig64[0:32] || pk.x || msg) + * -> s = sig64[32:64] + * + * This function is based on `secp256k1_schnorrsig_verify`. + */ +int secp256k1_batch_add_schnorrsig(const secp256k1_context* ctx, secp256k1_batch *batch, const unsigned char *sig64, const unsigned char *msg, size_t msglen, const secp256k1_xonly_pubkey *pubkey) { + secp256k1_scalar s; + secp256k1_scalar e; + secp256k1_scalar ai; + secp256k1_ge pk; + secp256k1_fe rx; + secp256k1_ge r; + unsigned char buf[32]; + int overflow; + size_t i; + + VERIFY_CHECK(ctx != NULL); + ARG_CHECK(batch != NULL); + ARG_CHECK(sig64 != NULL); + ARG_CHECK(msg != NULL || msglen == 0); + ARG_CHECK(pubkey != NULL); + + if (batch->result == 0) { + return 0; + } + + if (!secp256k1_fe_set_b32_limit(&rx, &sig64[0])) { + return 0; + } + + secp256k1_scalar_set_b32(&s, &sig64[32], &overflow); + if (overflow) { + return 0; + } + + if (!secp256k1_xonly_pubkey_load(ctx, &pk, pubkey)) { + return 0; + } + + /* if insufficient space in batch, verify the inputs (stored in curr batch) and + * save the result. This extends the batch capacity since `secp256k1_batch_verify` + * clears the batch after verification. */ + if (batch->capacity - batch->len < BATCH_SCHNORRSIG_SCRATCH_OBJS) { + secp256k1_batch_verify(ctx, batch); + } + + i = batch->len; + /* append point R to the scratch space */ + if (!secp256k1_ge_set_xo_var(&r, &rx, 0)) { + return 0; + } + if (!secp256k1_ge_is_in_correct_subgroup(&r)) { + return 0; + } + secp256k1_gej_set_ge(&batch->points[i], &r); + + /* append point P to the scratch space */ + secp256k1_gej_set_ge(&batch->points[i+1], &pk); + + /* compute e (challenge) */ + secp256k1_fe_get_b32(buf, &pk.x); + secp256k1_schnorrsig_challenge(&e, &sig64[0], msg, msglen, buf); + + /* compute ai (randomizer) */ + if (batch->len == 0) { + /* don't generate a randomizer for the first term in the batch to improve + * the computation speed. hence, set the randomizer to 1. */ + ai = secp256k1_scalar_one; + } else if (!secp256k1_batch_schnorrsig_randomizer_set(ctx, batch, &ai, sig64, msg, msglen, pubkey)) { + return 0; + } + + /* append scalars ai and ai.e to scratch space (order shouldn't change) */ + batch->scalars[i] = ai; + secp256k1_scalar_mul(&e, &e, &ai); + batch->scalars[i+1] = e; + + /* increment scalar of G by -ai.s */ + secp256k1_scalar_mul(&s, &s, &ai); + secp256k1_scalar_negate(&s, &s); + secp256k1_scalar_add(&batch->sc_g, &batch->sc_g, &s); + + batch->len += 2; + + return 1; +} + +#endif /* SECP256K1_MODULE_SCHNORRSIG_BATCH_ADD_IMPL_H */ diff --git a/src/modules/schnorrsig/batch_add_tests_impl.h b/src/modules/schnorrsig/batch_add_tests_impl.h new file mode 100644 index 00000000000000..89c31222256680 --- /dev/null +++ b/src/modules/schnorrsig/batch_add_tests_impl.h @@ -0,0 +1,313 @@ +#ifndef SECP256K1_MODULE_SCHNORRSIG_BATCH_ADD_TESTS_IMPL_H +#define SECP256K1_MODULE_SCHNORRSIG_BATCH_ADD_TESTS_IMPL_H + +#include "../../../include/secp256k1_schnorrsig.h" +#include "../../../include/secp256k1_batch.h" +#include "../../../include/secp256k1_schnorrsig_batch.h" + +/* Checks that a bit flip in the n_flip-th argument (that has n_bytes many + * bytes) changes the hash function */ +void batch_schnorrsig_randomizer_gen_bitflip(secp256k1_sha256 *sha, unsigned char **args, size_t n_flip, size_t n_bytes, size_t msglen) { + unsigned char randomizers[2][32]; + secp256k1_sha256 sha_cpy; + sha_cpy = *sha; + secp256k1_batch_schnorrsig_randomizer_gen(randomizers[0], &sha_cpy, args[0], args[1], msglen, args[2]); + testrand_flip(args[n_flip], n_bytes); + sha_cpy = *sha; + secp256k1_batch_schnorrsig_randomizer_gen(randomizers[1], &sha_cpy, args[0], args[1], msglen, args[2]); + CHECK(secp256k1_memcmp_var(randomizers[0], randomizers[1], 32) != 0); +} + +void run_batch_schnorrsig_randomizer_gen_tests(void) { + secp256k1_sha256 sha; + size_t n_sigs = 20; + unsigned char msg[32]; + size_t msglen = sizeof(msg); + unsigned char sig[64]; + unsigned char compressed_pk[33]; + unsigned char *args[3]; + size_t i; /* loops through n_sigs */ + int j; /* loops through count */ + + secp256k1_batch_sha256_tagged(&sha); + + for (i = 0; i < n_sigs; i++) { + uint8_t temp_rand; + unsigned char randomizer[32]; + /* batch_schnorrsig_randomizer_gen func modifies the sha object passed + * so, pass the copied obj instead of original */ + secp256k1_sha256 sha_cpy; + + /* generate i-th schnorrsig verify data */ + testrand256(msg); + testrand256(&sig[0]); + testrand256(&sig[32]); + testrand256(&compressed_pk[1]); + temp_rand = testrand_int(2) + 2; /* randomly choose 2 or 3 */ + compressed_pk[0] = (unsigned char)temp_rand; + + /* check that bitflip in an argument results in different nonces */ + args[0] = sig; + args[1] = msg; + args[2] = compressed_pk; + + for (j = 0; j < COUNT; j++) { + batch_schnorrsig_randomizer_gen_bitflip(&sha, args, 0, 64, msglen); + batch_schnorrsig_randomizer_gen_bitflip(&sha, args, 1, 32, msglen); + batch_schnorrsig_randomizer_gen_bitflip(&sha, args, 2, 33, msglen); + } + + /* different msglen should generate different randomizers */ + sha_cpy = sha; + secp256k1_batch_schnorrsig_randomizer_gen(randomizer, &sha_cpy, sig, msg, msglen, compressed_pk); + + for (j = 0; j < COUNT; j++) { + unsigned char randomizer2[32]; + uint32_t offset = testrand_int(msglen - 1); + size_t msglen_tmp = (msglen + offset) % msglen; + + sha_cpy = sha; + secp256k1_batch_schnorrsig_randomizer_gen(randomizer2, &sha_cpy, sig, msg, msglen_tmp, compressed_pk); + CHECK(secp256k1_memcmp_var(randomizer, randomizer2, 32) != 0); + } + + /* write i-th schnorrsig verify data to the sha object + * this is required for generating the next randomizer */ + secp256k1_sha256_write(&sha, sig, 64); + secp256k1_sha256_write(&sha, msg, msglen); + secp256k1_sha256_write(&sha, compressed_pk, 33); + } + +} + +/* Helper for function test_schnorrsig_sign_batch_verify + * Checks that batch_verify fails after flipping random byte. */ +void test_schnorrsig_sign_verify_check_batch(secp256k1_batch *batch, unsigned char *sig64, unsigned char *msg, size_t msglen, secp256k1_xonly_pubkey *pk) { + int ret; + + CHECK(secp256k1_batch_usable(CTX, batch)); + /* filling a random byte (in msg or sig) can cause the following: + * 1. unparsable msg or sig - here, batch_add_schnorrsig fails and batch_verify passes + * 2. invalid schnorr eqn - here, batch_verify fails and batch_add_schnorrsig passes + */ + ret = secp256k1_batch_add_schnorrsig(CTX, batch, sig64, msg, msglen, pk); + if (ret == 0) { + CHECK(secp256k1_batch_verify(CTX, batch) == 1); + } else if (ret == 1) { + CHECK(secp256k1_batch_verify(CTX, batch) == 0); + } +} + +#define N_SIGS 3 +#define ONE_SIG 1 +/* Creates N_SIGS valid signatures and verifies them with batch_verify. + * Then flips some bits and checks that verification now fails. This is a + * variation of `test_schnorrsig_sign_verify` (in schnorrsig/tests_impl.h) */ +void test_schnorrsig_sign_batch_verify(void) { + unsigned char sk[32]; + unsigned char msg[N_SIGS][32]; + unsigned char sig[N_SIGS][64]; + size_t i; + secp256k1_keypair keypair; + secp256k1_xonly_pubkey pk; + secp256k1_scalar s; + secp256k1_batch *batch[N_SIGS + 1]; + secp256k1_batch *batch_fail1; + secp256k1_batch *batch_fail2; + + /* batch[0] will be used where batch_add and batch_verify + * are expected to succed */ + batch[0] = secp256k1_batch_create(CTX, 2*N_SIGS, NULL); + for (i = 0; i < N_SIGS; i++) { + batch[i+1] = secp256k1_batch_create(CTX, 2*ONE_SIG, NULL); + } + batch_fail1 = secp256k1_batch_create(CTX, 2*ONE_SIG, NULL); + batch_fail2 = secp256k1_batch_create(CTX, 2*ONE_SIG, NULL); + + testrand256(sk); + CHECK(secp256k1_keypair_create(CTX, &keypair, sk)); + CHECK(secp256k1_keypair_xonly_pub(CTX, &pk, NULL, &keypair)); + + for (i = 0; i < N_SIGS; i++) { + testrand256(msg[i]); + CHECK(secp256k1_schnorrsig_sign32(CTX, sig[i], msg[i], &keypair, NULL)); + CHECK(secp256k1_batch_usable(CTX, batch[0])); + CHECK(secp256k1_batch_add_schnorrsig(CTX, batch[0], sig[i], msg[i], sizeof(msg[i]), &pk)); + } + CHECK(secp256k1_batch_verify(CTX, batch[0])); + + { + /* Flip a few bits in the signature and in the message and check that + * verify and verify_batch (TODO) fail */ + size_t sig_idx = testrand_int(N_SIGS); + size_t byte_idx = testrand_bits(5); + unsigned char xorbyte = testrand_int(254)+1; + + sig[sig_idx][byte_idx] ^= xorbyte; + test_schnorrsig_sign_verify_check_batch(batch[1], sig[sig_idx], msg[sig_idx], sizeof(msg[sig_idx]), &pk); + sig[sig_idx][byte_idx] ^= xorbyte; + + byte_idx = testrand_bits(5); + sig[sig_idx][32+byte_idx] ^= xorbyte; + test_schnorrsig_sign_verify_check_batch(batch[2], sig[sig_idx], msg[sig_idx], sizeof(msg[sig_idx]), &pk); + sig[sig_idx][32+byte_idx] ^= xorbyte; + + byte_idx = testrand_bits(5); + msg[sig_idx][byte_idx] ^= xorbyte; + test_schnorrsig_sign_verify_check_batch(batch[3], sig[sig_idx], msg[sig_idx], sizeof(msg[sig_idx]), &pk); + msg[sig_idx][byte_idx] ^= xorbyte; + + /* Check that above bitflips have been reversed correctly */ + CHECK(secp256k1_schnorrsig_verify(CTX, sig[sig_idx], msg[sig_idx], sizeof(msg[sig_idx]), &pk)); + } + + /* Test overflowing s */ + CHECK(secp256k1_schnorrsig_sign32(CTX, sig[0], msg[0], &keypair, NULL)); + CHECK(secp256k1_batch_add_schnorrsig(CTX, batch[0], sig[0], msg[0], sizeof(msg[0]), &pk) == 1); + memset(&sig[0][32], 0xFF, 32); + CHECK(secp256k1_batch_add_schnorrsig(CTX, batch[0], sig[0], msg[0], sizeof(msg[0]), &pk) == 0); + + /* Test negative s */ + CHECK(secp256k1_schnorrsig_sign32(CTX, sig[0], msg[0], &keypair, NULL)); + CHECK(secp256k1_batch_add_schnorrsig(CTX, batch[0], sig[0], msg[0], sizeof(msg[0]), &pk) == 1); + secp256k1_scalar_set_b32(&s, &sig[0][32], NULL); + secp256k1_scalar_negate(&s, &s); + secp256k1_scalar_get_b32(&sig[0][32], &s); + CHECK(secp256k1_batch_add_schnorrsig(CTX, batch_fail1, sig[0], msg[0], sizeof(msg[0]), &pk) == 1); + CHECK(secp256k1_batch_verify(CTX, batch_fail1) == 0); + + /* The empty message can be signed & verified */ + CHECK(secp256k1_schnorrsig_sign_custom(CTX, sig[0], NULL, 0, &keypair, NULL) == 1); + CHECK(secp256k1_batch_usable(CTX, batch[0]) == 1); + CHECK(secp256k1_batch_add_schnorrsig(CTX, batch[0], sig[0], NULL, 0, &pk) == 1); + CHECK(secp256k1_batch_verify(CTX, batch[0]) == 1); + + { + /* Test varying message lengths */ + unsigned char msg_large[32 * 8]; + uint32_t msglen = testrand_int(sizeof(msg_large)); + for (i = 0; i < sizeof(msg_large); i += 32) { + testrand256(&msg_large[i]); + } + CHECK(secp256k1_schnorrsig_sign_custom(CTX, sig[0], msg_large, msglen, &keypair, NULL) == 1); + CHECK(secp256k1_batch_usable(CTX, batch[0]) == 1); + CHECK(secp256k1_batch_add_schnorrsig(CTX, batch[0], sig[0], msg_large, msglen, &pk) == 1); + CHECK(secp256k1_batch_verify(CTX, batch[0]) == 1); + /* batch_add fails for a random wrong message length */ + msglen = (msglen + (sizeof(msg_large) - 1)) % sizeof(msg_large); + CHECK(secp256k1_batch_usable(CTX, batch_fail2) == 1); + CHECK(secp256k1_batch_add_schnorrsig(CTX, batch_fail2, sig[0], msg_large, msglen, &pk) == 1); + CHECK(secp256k1_batch_verify(CTX, batch_fail2) == 0); + } + + /* Destroy the batch objects */ + for (i = 0; i < N_SIGS+1; i++) { + secp256k1_batch_destroy(CTX, batch[i]); + } + secp256k1_batch_destroy(CTX, batch_fail1); + secp256k1_batch_destroy(CTX, batch_fail2); +} +#undef N_SIGS +/* ONE_SIG is undefined after `test_batch_add_schnorrsig_api` */ + +void test_batch_add_schnorrsig_api(void) { + unsigned char sk[32]; + secp256k1_keypair keypair; + secp256k1_xonly_pubkey pk; + secp256k1_xonly_pubkey zero_pk; + unsigned char msg[32]; + unsigned char sig[64]; + unsigned char nullmsg_sig[64]; + + /** setup **/ + secp256k1_context *none = secp256k1_context_create(SECP256K1_CONTEXT_NONE); + secp256k1_context *sign = secp256k1_context_create(SECP256K1_CONTEXT_SIGN); + secp256k1_context *vrfy = secp256k1_context_create(SECP256K1_CONTEXT_VERIFY); + secp256k1_batch *batch1 = secp256k1_batch_create(none, 2*ONE_SIG, NULL); + /* batch2 is used when batch_add_schnorrsig is expected to fail */ + secp256k1_batch *batch2 = secp256k1_batch_create(none, 2*ONE_SIG, NULL); + int ecount; + + secp256k1_context_set_error_callback(none, counting_callback_fn, &ecount); + secp256k1_context_set_error_callback(sign, counting_callback_fn, &ecount); + secp256k1_context_set_error_callback(vrfy, counting_callback_fn, &ecount); + secp256k1_context_set_illegal_callback(none, counting_callback_fn, &ecount); + secp256k1_context_set_illegal_callback(sign, counting_callback_fn, &ecount); + secp256k1_context_set_illegal_callback(vrfy, counting_callback_fn, &ecount); + + /** generate keypair data **/ + testrand256(sk); + CHECK(secp256k1_keypair_create(sign, &keypair, sk) == 1); + CHECK(secp256k1_keypair_xonly_pub(sign, &pk, NULL, &keypair) == 1); + memset(&zero_pk, 0, sizeof(zero_pk)); + + /** generate a signature **/ + testrand256(msg); + CHECK(secp256k1_schnorrsig_sign32(sign, sig, msg, &keypair, NULL) == 1); + CHECK(secp256k1_schnorrsig_verify(vrfy, sig, msg, sizeof(msg), &pk)); + + CHECK(batch1 != NULL); + CHECK(batch2 != NULL); + + /** main test body **/ + ecount = 0; + CHECK(secp256k1_batch_add_schnorrsig(none, batch1, sig, msg, sizeof(msg), &pk) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_verify(none, batch1) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_add_schnorrsig(none, batch2, NULL, msg, sizeof(msg), &pk) == 0); + CHECK(ecount == 1); + CHECK(secp256k1_batch_add_schnorrsig(none, batch2, sig, NULL, sizeof(msg), &pk) == 0); + CHECK(ecount == 2); + CHECK(secp256k1_batch_add_schnorrsig(none, batch2, sig, msg, sizeof(msg), NULL) == 0); + CHECK(ecount == 3); + CHECK(secp256k1_batch_add_schnorrsig(none, batch2, sig, msg, sizeof(msg), &zero_pk) == 0); + CHECK(ecount == 4); + CHECK(secp256k1_batch_add_schnorrsig(none, NULL, sig, msg, sizeof(msg), &pk) == 0); + CHECK(ecount == 5); + + /** NULL msg with valid signature **/ + ecount = 0; + CHECK(secp256k1_schnorrsig_sign_custom(sign, nullmsg_sig, NULL, 0, &keypair, NULL) == 1); + CHECK(secp256k1_batch_usable(none, batch1) == 1); + CHECK(secp256k1_batch_add_schnorrsig(none, batch1, nullmsg_sig, NULL, 0, &pk) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_verify(none, batch1) == 1); + + /** NULL msg with invalid signature **/ + CHECK(secp256k1_batch_usable(none, batch2) == 1); + CHECK(secp256k1_batch_add_schnorrsig(none, batch2, sig, NULL, 0, &pk) == 1); + CHECK(ecount == 0); + CHECK(secp256k1_batch_verify(none, batch2) == 0); + + /** batch_add_ should ignore unusable batch object (i.e, batch->result = 0) **/ + ecount = 0; + CHECK(secp256k1_batch_usable(none, batch2) == 0); + CHECK(ecount == 0); + CHECK(secp256k1_batch_add_schnorrsig(none, batch2, sig, msg, sizeof(msg), &pk) == 0); + CHECK(ecount == 0); + + ecount = 0; + secp256k1_batch_destroy(CTX, batch1); + CHECK(ecount == 0); + secp256k1_batch_destroy(CTX, batch2); + CHECK(ecount == 0); + + secp256k1_context_destroy(none); + secp256k1_context_destroy(sign); + secp256k1_context_destroy(vrfy); +} +#undef ONE_SIG + +void run_batch_add_schnorrsig_tests(void) { + int i; + + run_batch_schnorrsig_randomizer_gen_tests(); + test_batch_add_schnorrsig_api(); + for (i = 0; i < COUNT; i++) { + test_schnorrsig_sign_batch_verify(); + } +} + + +#endif /* SECP256K1_MODULE_SCHNORRSIG_BATCH_ADD_TESTS_IMPL_H */ diff --git a/src/modules/schnorrsig/bench_impl.h b/src/modules/schnorrsig/bench_impl.h index 93a878ede3e1b3..da2681cca655ab 100644 --- a/src/modules/schnorrsig/bench_impl.h +++ b/src/modules/schnorrsig/bench_impl.h @@ -8,12 +8,21 @@ #define SECP256K1_MODULE_SCHNORRSIG_BENCH_H #include "../../../include/secp256k1_schnorrsig.h" +#ifdef ENABLE_MODULE_BATCH +# include "../../../include/secp256k1_batch.h" +# include "../../../include/secp256k1_schnorrsig_batch.h" +#endif #define MSGLEN 32 typedef struct { secp256k1_context *ctx; +#ifdef ENABLE_MODULE_BATCH + secp256k1_batch *batch; + /* number of signatures to batch verify. + * it varies from 1 to iters with 20% increments */ int n; +#endif const secp256k1_keypair **keypairs; const unsigned char **pk; @@ -45,7 +54,24 @@ static void bench_schnorrsig_verify(void* arg, int iters) { } } -static void run_schnorrsig_bench(int iters, int argc, char** argv) { +#ifdef ENABLE_MODULE_BATCH +void bench_schnorrsig_verify_n(void* arg, int iters) { + bench_schnorrsig_data *data = (bench_schnorrsig_data *)arg; + int i, j; + + for (j = 0; j < iters/data->n; j++) { + for (i = 0; i < data->n; i++) { + secp256k1_xonly_pubkey pk; + CHECK(secp256k1_xonly_pubkey_parse(data->ctx, &pk, data->pk[j+i]) == 1); + CHECK(secp256k1_batch_usable(data->ctx, data->batch) == 1); + CHECK(secp256k1_batch_add_schnorrsig(data->ctx, data->batch, data->sigs[j+i], data->msgs[j+i], MSGLEN, &pk) == 1); + } + CHECK(secp256k1_batch_verify(data->ctx, data->batch) == 1); + } +} +#endif + +void run_schnorrsig_bench(int iters, int argc, char** argv) { int i; bench_schnorrsig_data data; int d = argc == 1; @@ -55,6 +81,10 @@ static void run_schnorrsig_bench(int iters, int argc, char** argv) { data.pk = (const unsigned char **)malloc(iters * sizeof(unsigned char *)); data.msgs = (const unsigned char **)malloc(iters * sizeof(unsigned char *)); data.sigs = (const unsigned char **)malloc(iters * sizeof(unsigned char *)); +#ifdef ENABLE_MODULE_BATCH + data.batch = secp256k1_batch_create(data.ctx, 2*iters, NULL); + CHECK(data.batch != NULL); +#endif CHECK(MSGLEN >= 4); for (i = 0; i < iters; i++) { @@ -84,6 +114,20 @@ static void run_schnorrsig_bench(int iters, int argc, char** argv) { if (d || have_flag(argc, argv, "schnorrsig") || have_flag(argc, argv, "sign") || have_flag(argc, argv, "schnorrsig_sign")) run_benchmark("schnorrsig_sign", bench_schnorrsig_sign, NULL, NULL, (void *) &data, 10, iters); if (d || have_flag(argc, argv, "schnorrsig") || have_flag(argc, argv, "verify") || have_flag(argc, argv, "schnorrsig_verify")) run_benchmark("schnorrsig_verify", bench_schnorrsig_verify, NULL, NULL, (void *) &data, 10, iters); +#ifdef ENABLE_MODULE_BATCH + if (d || have_flag(argc, argv, "schnorrsig") || have_flag(argc, argv, "batch_verify") || have_flag(argc, argv, "schnorrsig_batch_verify")) { + for (i = 1; i <= iters; i = (int)(i*1.2 + 1)) { + char name[64]; + int divisible_iters; + sprintf(name, "schnorrsig_batch_verify_%d", (int) i); + + data.n = i; + divisible_iters = iters - (iters % data.n); + run_benchmark(name, bench_schnorrsig_verify_n, NULL, NULL, (void *) &data, 3, divisible_iters); + fflush(stdout); + } + } +#endif for (i = 0; i < iters; i++) { free((void *)data.keypairs[i]); @@ -98,6 +142,9 @@ static void run_schnorrsig_bench(int iters, int argc, char** argv) { free((void *)data.msgs); free((void *)data.sigs); +#ifdef ENABLE_MODULE_BATCH + secp256k1_batch_destroy(data.ctx, data.batch); +#endif secp256k1_context_destroy(data.ctx); } diff --git a/src/modules/schnorrsig/main_impl.h b/src/modules/schnorrsig/main_impl.h index 57f7eadd3c23ee..82bba2f59756a3 100644 --- a/src/modules/schnorrsig/main_impl.h +++ b/src/modules/schnorrsig/main_impl.h @@ -93,6 +93,7 @@ static int nonce_function_bip340(unsigned char *nonce32, const unsigned char *ms secp256k1_sha256_write(&sha, xonly_pk32, 32); secp256k1_sha256_write(&sha, msg, msglen); secp256k1_sha256_finalize(&sha, nonce32); + secp256k1_sha256_clear(&sha); return 1; } @@ -187,7 +188,8 @@ static int secp256k1_schnorrsig_sign_internal(const secp256k1_context* ctx, unsi secp256k1_memczero(sig64, 64, !ret); secp256k1_scalar_clear(&k); secp256k1_scalar_clear(&sk); - memset(seckey, 0, sizeof(seckey)); + secp256k1_memclear(seckey, sizeof(seckey)); + secp256k1_gej_clear(&rj); return ret; } diff --git a/src/modules/schnorrsig/tests_impl.h b/src/modules/schnorrsig/tests_impl.h index 2d716a01f89443..0ffcc67bed4fb9 100644 --- a/src/modules/schnorrsig/tests_impl.h +++ b/src/modules/schnorrsig/tests_impl.h @@ -8,6 +8,10 @@ #define SECP256K1_MODULE_SCHNORRSIG_TESTS_H #include "../../../include/secp256k1_schnorrsig.h" +#ifdef ENABLE_MODULE_BATCH +# include "../../../include/secp256k1_batch.h" +# include "../../../include/secp256k1_schnorrsig_batch.h" +#endif /* Checks that a bit flip in the n_flip-th argument (that has n_bytes many * bytes) changes the hash function @@ -193,7 +197,7 @@ static void test_schnorrsig_bip_vectors_check_signing(const unsigned char *sk, c } /* Helper function for schnorrsig_bip_vectors - * Checks that both verify and verify_batch (TODO) return the same value as expected. */ + * Checks that schnorrsig_verify returns the same value as expected. */ static void test_schnorrsig_bip_vectors_check_verify(const unsigned char *pk_serialized, const unsigned char *msg, size_t msglen, const unsigned char *sig, int expected) { secp256k1_xonly_pubkey pk; @@ -201,6 +205,23 @@ static void test_schnorrsig_bip_vectors_check_verify(const unsigned char *pk_ser CHECK(expected == secp256k1_schnorrsig_verify(CTX, sig, msg, msglen, &pk)); } +#ifdef ENABLE_MODULE_BATCH +/* Helper function for schnorrsig_bip_vectors + * Checks that batch_verify return the same value as expected. */ +void test_schnorrsig_bip_vectors_check_batch_verify(const unsigned char *pk_serialized, const unsigned char *msg32, const unsigned char *sig, int add_expected, int verify_expected) { + secp256k1_xonly_pubkey pk; + secp256k1_batch *batch; + + CHECK(secp256k1_xonly_pubkey_parse(CTX, &pk, pk_serialized)); + batch = secp256k1_batch_create(CTX, 2, NULL); + CHECK(batch != NULL); + CHECK(secp256k1_batch_usable(CTX, batch) == 1); + CHECK(add_expected == secp256k1_batch_add_schnorrsig(CTX, batch, sig, msg32, 32, &pk)); + CHECK(verify_expected == secp256k1_batch_verify(CTX, batch)); + secp256k1_batch_destroy(CTX, batch); +} +#endif + /* Test vectors according to BIP-340 ("Schnorr Signatures for secp256k1"). See * https://github.com/bitcoin/bips/blob/master/bip-0340/test-vectors.csv. */ static void test_schnorrsig_bip_vectors(void) { @@ -242,6 +263,9 @@ static void test_schnorrsig_bip_vectors(void) { }; test_schnorrsig_bip_vectors_check_signing(sk, pk, aux_rand, msg, sizeof(msg), sig); test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 1); + #ifdef ENABLE_MODULE_BATCH + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 1, 1); + #endif } { /* Test vector 1 */ @@ -281,6 +305,9 @@ static void test_schnorrsig_bip_vectors(void) { }; test_schnorrsig_bip_vectors_check_signing(sk, pk, aux_rand, msg, sizeof(msg), sig); test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 1); + #ifdef ENABLE_MODULE_BATCH + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 1, 1); + #endif } { /* Test vector 2 */ @@ -320,6 +347,9 @@ static void test_schnorrsig_bip_vectors(void) { }; test_schnorrsig_bip_vectors_check_signing(sk, pk, aux_rand, msg, sizeof(msg), sig); test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 1); + #ifdef ENABLE_MODULE_BATCH + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 1, 1); + #endif } { /* Test vector 3 */ @@ -359,6 +389,9 @@ static void test_schnorrsig_bip_vectors(void) { }; test_schnorrsig_bip_vectors_check_signing(sk, pk, aux_rand, msg, sizeof(msg), sig); test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 1); + #ifdef ENABLE_MODULE_BATCH + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 1, 1); + #endif } { /* Test vector 4 */ @@ -385,6 +418,9 @@ static void test_schnorrsig_bip_vectors(void) { 0x06, 0x0B, 0x07, 0xD2, 0x83, 0x08, 0xD7, 0xF4 }; test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 1); + #ifdef ENABLE_MODULE_BATCH + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 1, 1); + #endif } { /* Test vector 5 */ @@ -423,6 +459,12 @@ static void test_schnorrsig_bip_vectors(void) { 0xBE, 0xAF, 0xA3, 0x4B, 0x1A, 0xC5, 0x53, 0xE2 }; test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 0); + #ifdef ENABLE_MODULE_BATCH + /* batch_add_schnorrsig adds converts sig[0:32] to point R such + * that R.y is always even. This test vector has R.y = odd, so + * batch_add_schnorrsig returns 1 and batch_verify returns 0. */ + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 1, 0); + #endif } { /* Test vector 7 */ @@ -449,6 +491,12 @@ static void test_schnorrsig_bip_vectors(void) { 0xAA, 0xEA, 0x51, 0x34, 0xFC, 0xCD, 0xB2, 0xBD }; test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 0); + #ifdef ENABLE_MODULE_BATCH + /* batch_add_schnorrsig does not verify the schnorr eqn. + * This test vector negated message, so batch_add_schnorrsig + * returns 1 and batch_verify returns 0. */ + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 1, 0); + #endif } { /* Test vector 8 */ @@ -475,6 +523,12 @@ static void test_schnorrsig_bip_vectors(void) { 0x18, 0x34, 0xFF, 0x0D, 0x0C, 0x2E, 0x6D, 0xA6 }; test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 0); + #ifdef ENABLE_MODULE_BATCH + /* batch_add_schnorrsig does not verify the schnorr eqn. + * This test vector negated s (sig[32:64]), so batch_add_schnorrsig + * returns 1 and batch_verify returns 0. */ + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 1, 0); + #endif } { /* Test vector 9 */ @@ -501,6 +555,12 @@ static void test_schnorrsig_bip_vectors(void) { 0xB6, 0x5C, 0x64, 0x25, 0xBD, 0x18, 0x60, 0x51 }; test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 0); + #ifdef ENABLE_MODULE_BATCH + /* batch_add_schnorrsig fails since R.x = 0. + * batch_verify passes because the batch is empty + * (prev batch_add failed so nothing was added to the batch)*/ + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 0, 1); + #endif } { /* Test vector 10 */ @@ -527,6 +587,12 @@ static void test_schnorrsig_bip_vectors(void) { 0x37, 0x80, 0xD5, 0xA1, 0x83, 0x7C, 0xF1, 0x97 }; test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 0); + #ifdef ENABLE_MODULE_BATCH + /* batch_add_schnorrsig passes since R.x = 1. + * batch_verify fails since R (with R.x = 1 & R.y = even) does not + * lie on libsecp256k1 */ + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 1, 0); + #endif } { /* Test vector 11 */ @@ -553,6 +619,11 @@ static void test_schnorrsig_bip_vectors(void) { 0xA7, 0x9D, 0x5F, 0x7F, 0xC4, 0x07, 0xD3, 0x9B }; test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 0); + #ifdef ENABLE_MODULE_BATCH + /* batch_add fails since R.x is an invalid x-coordinate (not on curve) + * batch_verify passes since the batch is empty */ + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 0, 1); + #endif } { /* Test vector 12 */ @@ -579,6 +650,11 @@ static void test_schnorrsig_bip_vectors(void) { 0xA7, 0x9D, 0x5F, 0x7F, 0xC4, 0x07, 0xD3, 0x9B }; test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 0); + #ifdef ENABLE_MODULE_BATCH + /* batch_add fails since R.x = field modulo `p` + * batch_verify passes since the batch is empty */ + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 0, 1); + #endif } { /* Test vector 13 */ @@ -605,6 +681,11 @@ static void test_schnorrsig_bip_vectors(void) { 0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41 }; test_schnorrsig_bip_vectors_check_verify(pk, msg, sizeof(msg), sig, 0); + #ifdef ENABLE_MODULE_BATCH + /* batch_add fails since s (sig[32:64]) = curve order `n` + * batch_verify passes since the batch is empty */ + test_schnorrsig_bip_vectors_check_batch_verify(pk, msg, sig, 0, 1); + #endif } { /* Test vector 14 */ @@ -851,8 +932,10 @@ static void test_schnorrsig_sign(void) { #define N_SIGS 3 /* Creates N_SIGS valid signatures and verifies them with verify and * verify_batch (TODO). Then flips some bits and checks that verification now - * fails. */ -static void test_schnorrsig_sign_verify(void) { + * batch_verify. Then flips some bits and checks that verification now + * fails. The batch_verify variation of this test is implemented as + * test_schnorrsig_sign_batch_verify (in schnorrsig/batch_add_tests_impl.h) */ +void test_schnorrsig_sign_verify(void) { unsigned char sk[32]; unsigned char msg[N_SIGS][32]; unsigned char sig[N_SIGS][64]; diff --git a/src/scalar_4x64_impl.h b/src/scalar_4x64_impl.h index 4aaec85b997baf..807b9b70ab1234 100644 --- a/src/scalar_4x64_impl.h +++ b/src/scalar_4x64_impl.h @@ -29,13 +29,6 @@ #define SECP256K1_N_H_2 ((uint64_t)0xFFFFFFFFFFFFFFFFULL) #define SECP256K1_N_H_3 ((uint64_t)0x7FFFFFFFFFFFFFFFULL) -SECP256K1_INLINE static void secp256k1_scalar_clear(secp256k1_scalar *r) { - r->d[0] = 0; - r->d[1] = 0; - r->d[2] = 0; - r->d[3] = 0; -} - SECP256K1_INLINE static void secp256k1_scalar_set_int(secp256k1_scalar *r, unsigned int v) { r->d[0] = v; r->d[1] = 0; diff --git a/src/scalar_8x32_impl.h b/src/scalar_8x32_impl.h index c7d87b17d85e68..26104960524e64 100644 --- a/src/scalar_8x32_impl.h +++ b/src/scalar_8x32_impl.h @@ -38,17 +38,6 @@ #define SECP256K1_N_H_6 ((uint32_t)0xFFFFFFFFUL) #define SECP256K1_N_H_7 ((uint32_t)0x7FFFFFFFUL) -SECP256K1_INLINE static void secp256k1_scalar_clear(secp256k1_scalar *r) { - r->d[0] = 0; - r->d[1] = 0; - r->d[2] = 0; - r->d[3] = 0; - r->d[4] = 0; - r->d[5] = 0; - r->d[6] = 0; - r->d[7] = 0; -} - SECP256K1_INLINE static void secp256k1_scalar_set_int(secp256k1_scalar *r, unsigned int v) { r->d[0] = v; r->d[1] = 0; diff --git a/src/scalar_impl.h b/src/scalar_impl.h index 972d8041b0afbe..dbb5b0a01ca1b0 100644 --- a/src/scalar_impl.h +++ b/src/scalar_impl.h @@ -27,6 +27,10 @@ static const secp256k1_scalar secp256k1_scalar_one = SECP256K1_SCALAR_CONST(0, 0, 0, 0, 0, 0, 0, 1); static const secp256k1_scalar secp256k1_scalar_zero = SECP256K1_SCALAR_CONST(0, 0, 0, 0, 0, 0, 0, 0); +SECP256K1_INLINE static void secp256k1_scalar_clear(secp256k1_scalar *r) { + secp256k1_memclear(r, sizeof(secp256k1_scalar)); +} + static int secp256k1_scalar_set_b32_seckey(secp256k1_scalar *r, const unsigned char *bin) { int overflow; secp256k1_scalar_set_b32(r, bin, &overflow); diff --git a/src/scalar_low_impl.h b/src/scalar_low_impl.h index 45d2f3e4600975..84e1a380a3bc83 100644 --- a/src/scalar_low_impl.h +++ b/src/scalar_low_impl.h @@ -19,8 +19,6 @@ SECP256K1_INLINE static int secp256k1_scalar_is_even(const secp256k1_scalar *a) return !(*a & 1); } -SECP256K1_INLINE static void secp256k1_scalar_clear(secp256k1_scalar *r) { *r = 0; } - SECP256K1_INLINE static void secp256k1_scalar_set_int(secp256k1_scalar *r, unsigned int v) { *r = v % EXHAUSTIVE_TEST_ORDER; diff --git a/src/scratch.h b/src/scratch.h index 9dcb7581f6fc42..6164330b39429e 100644 --- a/src/scratch.h +++ b/src/scratch.h @@ -21,6 +21,8 @@ typedef struct secp256k1_scratch_space_struct { size_t max_size; } secp256k1_scratch; +typedef struct secp256k1_scratch_space_struct secp256k1_scratch_space; + static secp256k1_scratch* secp256k1_scratch_create(const secp256k1_callback* error_callback, size_t max_size); static void secp256k1_scratch_destroy(const secp256k1_callback* error_callback, secp256k1_scratch* scratch); diff --git a/src/secp256k1.c b/src/secp256k1.c index 72d725a74e0fd6..db02ebaa5e7788 100644 --- a/src/secp256k1.c +++ b/src/secp256k1.c @@ -220,12 +220,12 @@ void secp256k1_context_set_error_callback(secp256k1_context* ctx, void (*fun)(co ctx->error_callback.data = data; } -secp256k1_scratch_space* secp256k1_scratch_space_create(const secp256k1_context* ctx, size_t max_size) { +static secp256k1_scratch_space* secp256k1_scratch_space_create(const secp256k1_context* ctx, size_t max_size) { VERIFY_CHECK(ctx != NULL); return secp256k1_scratch_create(&ctx->error_callback, max_size); } -void secp256k1_scratch_space_destroy(const secp256k1_context *ctx, secp256k1_scratch_space* scratch) { +static void secp256k1_scratch_space_destroy(const secp256k1_context *ctx, secp256k1_scratch_space* scratch) { VERIFY_CHECK(ctx != NULL); secp256k1_scratch_destroy(&ctx->error_callback, scratch); } @@ -238,25 +238,13 @@ static SECP256K1_INLINE void secp256k1_declassify(const secp256k1_context* ctx, } static int secp256k1_pubkey_load(const secp256k1_context* ctx, secp256k1_ge* ge, const secp256k1_pubkey* pubkey) { - secp256k1_ge_storage s; - - /* We require that the secp256k1_ge_storage type is exactly 64 bytes. - * This is formally not guaranteed by the C standard, but should hold on any - * sane compiler in the real world. */ - STATIC_ASSERT(sizeof(secp256k1_ge_storage) == 64); - memcpy(&s, &pubkey->data[0], 64); - secp256k1_ge_from_storage(ge, &s); + secp256k1_ge_from_bytes(ge, pubkey->data); ARG_CHECK(!secp256k1_fe_is_zero(&ge->x)); return 1; } static void secp256k1_pubkey_save(secp256k1_pubkey* pubkey, secp256k1_ge* ge) { - secp256k1_ge_storage s; - - STATIC_ASSERT(sizeof(secp256k1_ge_storage) == 64); - VERIFY_CHECK(!secp256k1_ge_is_infinity(ge)); - secp256k1_ge_to_storage(&s, ge); - memcpy(&pubkey->data[0], &s, 64); + secp256k1_ge_to_bytes(pubkey->data, ge); } int secp256k1_ec_pubkey_parse(const secp256k1_context* ctx, secp256k1_pubkey* pubkey, const unsigned char *input, size_t inputlen) { @@ -506,11 +494,13 @@ static int nonce_function_rfc6979(unsigned char *nonce32, const unsigned char *m buffer_append(keydata, &offset, algo16, 16); } secp256k1_rfc6979_hmac_sha256_initialize(&rng, keydata, offset); - memset(keydata, 0, sizeof(keydata)); for (i = 0; i <= counter; i++) { secp256k1_rfc6979_hmac_sha256_generate(&rng, nonce32, 32); } secp256k1_rfc6979_hmac_sha256_finalize(&rng); + + secp256k1_memclear(keydata, sizeof(keydata)); + secp256k1_rfc6979_hmac_sha256_clear(&rng); return 1; } @@ -560,7 +550,7 @@ static int secp256k1_ecdsa_sign_inner(const secp256k1_context* ctx, secp256k1_sc * seckey. As a result is_sec_valid is included in ret only after ret was * used as a branching variable. */ ret &= is_sec_valid; - memset(nonce32, 0, 32); + secp256k1_memclear(nonce32, sizeof(nonce32)); secp256k1_scalar_clear(&msg); secp256k1_scalar_clear(&non); secp256k1_scalar_clear(&sec); @@ -607,6 +597,7 @@ static int secp256k1_ec_pubkey_create_helper(const secp256k1_ecmult_gen_context secp256k1_ecmult_gen(ecmult_gen_ctx, &pj, seckey_scalar); secp256k1_ge_set_gej(p, &pj); + secp256k1_gej_clear(&pj); return ret; } @@ -811,6 +802,7 @@ int secp256k1_tagged_sha256(const secp256k1_context* ctx, unsigned char *hash32, secp256k1_sha256_initialize_tagged(&sha, tag, taglen); secp256k1_sha256_write(&sha, msg, msglen); secp256k1_sha256_finalize(&sha, hash32); + secp256k1_sha256_clear(&sha); return 1; } @@ -830,6 +822,20 @@ int secp256k1_tagged_sha256(const secp256k1_context* ctx, unsigned char *hash32, # include "modules/schnorrsig/main_impl.h" #endif +#ifdef ENABLE_MODULE_MUSIG +# include "modules/musig/main_impl.h" +#endif + #ifdef ENABLE_MODULE_ELLSWIFT # include "modules/ellswift/main_impl.h" #endif + +#ifdef ENABLE_MODULE_BATCH +# include "modules/batch/main_impl.h" +# ifdef ENABLE_MODULE_EXTRAKEYS +# include "modules/extrakeys/batch_add_impl.h" +# endif +# ifdef ENABLE_MODULE_SCHNORRSIG +# include "modules/schnorrsig/batch_add_impl.h" +# endif +#endif diff --git a/src/stamp-h1 b/src/stamp-h1 new file mode 100644 index 00000000000000..f863082f5f0341 --- /dev/null +++ b/src/stamp-h1 @@ -0,0 +1 @@ +timestamp for src/libsecp256k1-config.h diff --git a/src/tests.c b/src/tests.c index 70c15f870b6ae2..74bf809784d408 100644 --- a/src/tests.c +++ b/src/tests.c @@ -37,7 +37,7 @@ #define CONDITIONAL_TEST(cnt, nam) if (COUNT < (cnt)) { printf("Skipping %s (iteration count too low)\n", nam); } else -static int COUNT = 64; +static int COUNT = 16; static secp256k1_context *CTX = NULL; static secp256k1_context *STATIC_CTX = NULL; @@ -3671,8 +3671,7 @@ static void test_ge(void) { secp256k1_fe zfi2, zfi3; secp256k1_gej_set_infinity(&gej[0]); - secp256k1_ge_clear(&ge[0]); - secp256k1_ge_set_gej_var(&ge[0], &gej[0]); + secp256k1_ge_set_infinity(&ge[0]); for (i = 0; i < runs; i++) { int j, k; secp256k1_ge g; @@ -3982,6 +3981,34 @@ static void test_add_neg_y_diff_x(void) { CHECK(secp256k1_gej_eq_ge_var(&sumj, &res)); } +static void test_ge_bytes(void) { + int i; + + for (i = 0; i < COUNT + 1; i++) { + unsigned char buf[64]; + secp256k1_ge p, q; + + if (i == 0) { + secp256k1_ge_set_infinity(&p); + } else { + testutil_random_ge_test(&p); + } + + if (!secp256k1_ge_is_infinity(&p)) { + secp256k1_ge_to_bytes(buf, &p); + + secp256k1_ge_from_bytes(&q, buf); + CHECK(secp256k1_ge_eq_var(&p, &q)); + + secp256k1_ge_from_bytes_ext(&q, buf); + CHECK(secp256k1_ge_eq_var(&p, &q)); + } + secp256k1_ge_to_bytes_ext(buf, &p); + secp256k1_ge_from_bytes_ext(&q, buf); + CHECK(secp256k1_ge_eq_var(&p, &q)); + } +} + static void run_ge(void) { int i; for (i = 0; i < COUNT * 32; i++) { @@ -3989,6 +4016,7 @@ static void run_ge(void) { } test_add_neg_y_diff_x(); test_intialized_inf(); + test_ge_bytes(); } static void test_gej_cmov(const secp256k1_gej *a, const secp256k1_gej *b) { @@ -4768,12 +4796,12 @@ static void test_ecmult_multi(secp256k1_scratch *scratch, secp256k1_ecmult_multi testutil_random_ge_test(&pt[ncount]); } - secp256k1_scalar_clear(&sc[0]); + secp256k1_scalar_set_int(&sc[0], 0); CHECK(ecmult_multi(&CTX->error_callback, scratch, &r, &secp256k1_scalar_zero, ecmult_multi_callback, &data, 20)); - secp256k1_scalar_clear(&sc[1]); - secp256k1_scalar_clear(&sc[2]); - secp256k1_scalar_clear(&sc[3]); - secp256k1_scalar_clear(&sc[4]); + secp256k1_scalar_set_int(&sc[1], 0); + secp256k1_scalar_set_int(&sc[2], 0); + secp256k1_scalar_set_int(&sc[3], 0); + secp256k1_scalar_set_int(&sc[4], 0); CHECK(ecmult_multi(&CTX->error_callback, scratch, &r, &secp256k1_scalar_zero, ecmult_multi_callback, &data, 6)); CHECK(ecmult_multi(&CTX->error_callback, scratch, &r, &secp256k1_scalar_zero, ecmult_multi_callback, &data, 5)); CHECK(secp256k1_gej_is_infinity(&r)); @@ -4829,38 +4857,15 @@ static void test_ecmult_multi(secp256k1_scratch *scratch, secp256k1_ecmult_multi } } -static int test_ecmult_multi_random(secp256k1_scratch *scratch) { - /* Large random test for ecmult_multi_* functions which exercises: - * - Few or many inputs (0 up to 128, roughly exponentially distributed). - * - Few or many 0*P or a*INF inputs (roughly uniformly distributed). - * - Including or excluding an nonzero a*G term (or such a term at all). - * - Final expected result equal to infinity or not (roughly 50%). - * - ecmult_multi_var, ecmult_strauss_single_batch, ecmult_pippenger_single_batch - */ - - /* These 4 variables define the eventual input to the ecmult_multi function. - * g_scalar is the G scalar fed to it (or NULL, possibly, if g_scalar=0), and - * scalars[0..filled-1] and gejs[0..filled-1] are the scalars and points - * which form its normal inputs. */ - int filled = 0; - secp256k1_scalar g_scalar = secp256k1_scalar_zero; - secp256k1_scalar scalars[128]; - secp256k1_gej gejs[128]; - /* The expected result, and the computed result. */ - secp256k1_gej expected, computed; +/** helper function used by `test_ecmult_multi_random` and `test_ecmult_strauss_batch_internal_random` + * to generate inputs (scalars, points, g_scalar) for multi-scalar point multiplication */ +void ecmult_multi_random_generate_inp(secp256k1_gej *expected, secp256k1_scalar *g_scalar, secp256k1_scalar *scalars, secp256k1_gej *gejs, int *inp_len, int *nonzero_inp_len, int *is_g_nonzero, int *mults_performed) { /* Temporaries. */ secp256k1_scalar sc_tmp; secp256k1_ge ge_tmp; - /* Variables needed for the actual input to ecmult_multi. */ - secp256k1_ge ges[128]; - ecmult_multi_data data; int i; - /* Which multiplication function to use */ - int fn = testrand_int(3); - secp256k1_ecmult_multi_func ecmult_multi = fn == 0 ? secp256k1_ecmult_multi_var : - fn == 1 ? secp256k1_ecmult_strauss_batch_single : - secp256k1_ecmult_pippenger_batch_single; + int filled = 0; /* Simulate exponentially distributed num. */ int num_bits = 2 + testrand_int(6); /* Number of (scalar, point) inputs (excluding g). */ @@ -4875,25 +4880,25 @@ static int test_ecmult_multi_random(secp256k1_scratch *scratch) { num_nonzero == 1 && !nonzero_result ? 1 : (int)testrand_bits(1); /* Which g_scalar pointer to pass into ecmult_multi(). */ - const secp256k1_scalar* g_scalar_ptr = (g_nonzero || testrand_bits(1)) ? &g_scalar : NULL; + secp256k1_scalar* g_scalar_ptr = (g_nonzero || testrand_bits(1)) ? g_scalar : NULL; /* How many EC multiplications were performed in this function. */ int mults = 0; /* How many randomization steps to apply to the input list. */ int rands = (int)testrand_bits(3); if (rands > num_nonzero) rands = num_nonzero; - secp256k1_gej_set_infinity(&expected); + secp256k1_gej_set_infinity(expected); secp256k1_gej_set_infinity(&gejs[0]); secp256k1_scalar_set_int(&scalars[0], 0); if (g_nonzero) { /* If g_nonzero, set g_scalar to nonzero value r. */ - testutil_random_scalar_order_test(&g_scalar); + testutil_random_scalar_order_test(g_scalar); if (!nonzero_result) { /* If expected=0 is desired, add a (a*r, -(1/a)*g) term to compensate. */ CHECK(num_nonzero > filled); testutil_random_scalar_order_test(&sc_tmp); - secp256k1_scalar_mul(&scalars[filled], &sc_tmp, &g_scalar); + secp256k1_scalar_mul(&scalars[filled], &sc_tmp, g_scalar); secp256k1_scalar_inverse_var(&sc_tmp, &sc_tmp); secp256k1_scalar_negate(&sc_tmp, &sc_tmp); secp256k1_ecmult_gen(&CTX->ecmult_gen_ctx, &gejs[filled], &sc_tmp); @@ -4913,7 +4918,7 @@ static int test_ecmult_multi_random(secp256k1_scratch *scratch) { if (nonzero_result) { /* Compute the expected result using normal ecmult. */ CHECK(filled <= 1); - secp256k1_ecmult(&expected, &gejs[0], &scalars[0], &g_scalar); + secp256k1_ecmult(expected, &gejs[0], &scalars[0], g_scalar); mults += filled + g_nonzero; } @@ -4983,6 +4988,54 @@ static int test_ecmult_multi_random(secp256k1_scratch *scratch) { } } + /* number of (scalars, points) inputs generated */ + *inp_len = filled; + /* number of non-zero (scalars, points) inputs */ + *nonzero_inp_len = num_nonzero; + /* ptr to g_scalar*/ + g_scalar = g_scalar_ptr; + /* is mulciplicand of g nonzero? */ + *is_g_nonzero = g_nonzero; + /* number of mults performed in this function */ + *mults_performed += mults; +} + +int test_ecmult_multi_random(secp256k1_scratch *scratch) { + /* Large random test for ecmult_multi_* functions which exercises: + * - Few or many inputs (0 up to 128, roughly exponentially distributed). + * - Few or many 0*P or a*INF inputs (roughly uniformly distributed). + * - Including or excluding an nonzero a*G term (or such a term at all). + * - Final expected result equal to infinity or not (roughly 50%). + * - ecmult_multi_var, ecmult_strauss_single_batch, ecmult_pippenger_single_batch + */ + + /* These 4 variables define the eventual input to the ecmult_multi function. + * g_scalar is the G scalar fed to it (or NULL, possibly, if g_scalar=0), and + * scalars[0..filled-1] and gejs[0..filled-1] are the scalars and points + * which form its normal inputs. */ + int filled = 0; + secp256k1_scalar g_scalar = SECP256K1_SCALAR_CONST(0, 0, 0, 0, 0, 0, 0, 0); + secp256k1_scalar *g_scalar_ptr = &g_scalar; + secp256k1_scalar scalars[128]; + secp256k1_gej gejs[128]; + /* The expected result, and the computed result. */ + secp256k1_gej expected, computed; + /* Variables needed for the actual input to ecmult_multi. */ + secp256k1_ge ges[128]; + ecmult_multi_data data; + /* How many EC multiplications were performed in this function. */ + int mults = 0; + int g_nonzero, num_nonzero; + + /* Which multiplication function to use */ + int fn = testrand_int(3); + secp256k1_ecmult_multi_func ecmult_multi = fn == 0 ? secp256k1_ecmult_multi_var : + fn == 1 ? secp256k1_ecmult_strauss_batch_single : + secp256k1_ecmult_pippenger_batch_single; + + /* generate inputs and their ecmult_multi output */ + ecmult_multi_random_generate_inp(&expected, g_scalar_ptr, scalars, gejs, &filled, &num_nonzero, &g_nonzero, &mults); + /* Compute affine versions of all inputs. */ secp256k1_ge_set_all_gej_var(ges, gejs, filled); /* Invoke ecmult_multi code. */ @@ -4995,7 +5048,60 @@ static int test_ecmult_multi_random(secp256k1_scratch *scratch) { return mults; } -static void test_ecmult_multi_batch_single(secp256k1_ecmult_multi_func ecmult_multi) { +int test_ecmult_strauss_batch_internal_random(secp256k1_scratch *scratch) { + /* Large random test for `ecmult_strauss_batch_internal`. This test is + * very similar to `test_ecmult_multi_random`. */ + + /* These 4 variables define the eventual input to the ecmult_multi function. + * g_scalar is the G scalar fed to it (or NULL, possibly, if g_scalar=0), and + * scalars[0..filled-1] and gejs[0..filled-1] are the scalars and points + * which form its normal inputs. */ + int filled = 0; + secp256k1_scalar g_scalar = SECP256K1_SCALAR_CONST(0, 0, 0, 0, 0, 0, 0, 0); + secp256k1_scalar *g_scalar_ptr = &g_scalar; + secp256k1_scalar scalars[128]; + secp256k1_gej gejs[128]; + /* The expected result, and the computed result. */ + secp256k1_gej expected, computed; + /* How many EC multiplications were performed in this function. */ + int mults = 0; + int g_nonzero, num_nonzero; + secp256k1_scalar *scratch_scalars; + secp256k1_gej *scratch_points; + size_t checkpoint = secp256k1_scratch_checkpoint(&CTX->error_callback, scratch); + int i; + + /* generate inputs and their ecmult_multi output */ + ecmult_multi_random_generate_inp(&expected, g_scalar_ptr, scalars, gejs, &filled, &num_nonzero, &g_nonzero, &mults); + + /* allocate inputs on the scratch space */ + scratch_scalars = (secp256k1_scalar*)secp256k1_scratch_alloc(&CTX->error_callback, scratch, filled*sizeof(secp256k1_scalar)); + scratch_points = (secp256k1_gej*)secp256k1_scratch_alloc(&CTX->error_callback, scratch, filled*sizeof(secp256k1_gej)); + + /* If scalar or point allocation fails, restore scratch space to previous state */ + if (scratch_scalars == NULL || scratch_points == NULL) { + secp256k1_scratch_apply_checkpoint(&CTX->error_callback, scratch, checkpoint); + return 0; + } + + /* copy the scalar and points to the scratch space */ + for (i = 0; i < filled; i++) { + scratch_scalars[i] = scalars[i]; + scratch_points[i] = gejs[i]; + } + + CHECK(secp256k1_ecmult_strauss_batch_internal(&CTX->error_callback, scratch, &computed, scratch_scalars, scratch_points, g_scalar_ptr, filled)); + mults += num_nonzero + g_nonzero; + /* Compare with expected result. */ + secp256k1_gej_neg(&computed, &computed); + secp256k1_gej_add_var(&computed, &computed, &expected, NULL); + CHECK(secp256k1_gej_is_infinity(&computed)); + + secp256k1_scratch_apply_checkpoint(&CTX->error_callback, scratch, checkpoint); + return mults; +} + +void test_ecmult_multi_batch_single(secp256k1_ecmult_multi_func ecmult_multi) { secp256k1_scalar sc; secp256k1_ge pt; secp256k1_gej r; @@ -5181,7 +5287,9 @@ static void test_ecmult_multi_batching(void) { static void run_ecmult_multi_tests(void) { secp256k1_scratch *scratch; - int64_t todo = (int64_t)320 * COUNT; + int64_t todo_multi = (int64_t)320 * COUNT; + /* todo: what should be the intial val of `todo_strauss_internal` */ + int64_t todo_strauss_internal = (int64_t)320 * COUNT; test_secp256k1_pippenger_bucket_window_inv(); test_ecmult_multi_pippenger_max_points(); @@ -5192,8 +5300,11 @@ static void run_ecmult_multi_tests(void) { test_ecmult_multi_batch_single(secp256k1_ecmult_pippenger_batch_single); test_ecmult_multi(scratch, secp256k1_ecmult_strauss_batch_single); test_ecmult_multi_batch_single(secp256k1_ecmult_strauss_batch_single); - while (todo > 0) { - todo -= test_ecmult_multi_random(scratch); + while (todo_multi > 0) { + todo_multi -= test_ecmult_multi_random(scratch); + } + while (todo_strauss_internal > 0) { + todo_strauss_internal -= test_ecmult_strauss_batch_internal_random(scratch); } secp256k1_scratch_destroy(&CTX->error_callback, scratch); @@ -5515,7 +5626,7 @@ static void run_ecmult_constants(void) { test_ecmult_constants_sha(1607366309u, 2048, expected32_8bit8); } - CONDITIONAL_TEST(35, "test_ecmult_constants_2bit") { + CONDITIONAL_TEST(16, "test_ecmult_constants_2bit") { test_ecmult_constants_2bit(); } } @@ -7413,17 +7524,31 @@ static void run_ecdsa_wycheproof(void) { #ifdef ENABLE_MODULE_EXTRAKEYS # include "modules/extrakeys/tests_impl.h" +# ifdef ENABLE_MODULE_BATCH +# include "modules/extrakeys/batch_add_tests_impl.h" +# endif #endif #ifdef ENABLE_MODULE_SCHNORRSIG # include "modules/schnorrsig/tests_impl.h" +# ifdef ENABLE_MODULE_BATCH +# include "modules/schnorrsig/batch_add_tests_impl.h" +# endif +#endif + +#ifdef ENABLE_MODULE_MUSIG +# include "modules/musig/tests_impl.h" #endif #ifdef ENABLE_MODULE_ELLSWIFT # include "modules/ellswift/tests_impl.h" #endif -static void run_secp256k1_memczero_test(void) { +#ifdef ENABLE_MODULE_BATCH +# include "modules/batch/tests_impl.h" +#endif + +void run_secp256k1_memczero_test(void) { unsigned char buf1[6] = {1, 2, 3, 4, 5, 6}; unsigned char buf2[sizeof(buf1)]; @@ -7438,6 +7563,18 @@ static void run_secp256k1_memczero_test(void) { CHECK(secp256k1_memcmp_var(buf1, buf2, sizeof(buf1)) == 0); } + +static void run_secp256k1_is_zero_array_test(void) { + unsigned char buf1[3] = {0, 1}; + unsigned char buf2[3] = {1, 0}; + + CHECK(secp256k1_is_zero_array(buf1, 0) == 1); + CHECK(secp256k1_is_zero_array(buf1, 1) == 1); + CHECK(secp256k1_is_zero_array(buf1, 2) == 0); + CHECK(secp256k1_is_zero_array(buf2, 1) == 0); + CHECK(secp256k1_is_zero_array(buf2, 2) == 0); +} + static void run_secp256k1_byteorder_tests(void) { { const uint32_t x = 0xFF03AB45; @@ -7765,18 +7902,33 @@ int main(int argc, char **argv) { #ifdef ENABLE_MODULE_EXTRAKEYS run_extrakeys_tests(); +# ifdef ENABLE_MODULE_BATCH + run_batch_add_xonlypub_tweak_tests(); +# endif #endif #ifdef ENABLE_MODULE_SCHNORRSIG run_schnorrsig_tests(); +# ifdef ENABLE_MODULE_BATCH + run_batch_add_schnorrsig_tests(); +# endif +#endif + +#ifdef ENABLE_MODULE_MUSIG + run_musig_tests(); #endif #ifdef ENABLE_MODULE_ELLSWIFT run_ellswift_tests(); #endif +#ifdef ENABLE_MODULE_BATCH + run_batch_tests(); +#endif + /* util tests */ run_secp256k1_memczero_test(); + run_secp256k1_is_zero_array_test(); run_secp256k1_byteorder_tests(); run_cmov_tests(); diff --git a/src/testutil.h b/src/testutil.h index fc56854dd391f0..64b3bb41c018ca 100644 --- a/src/testutil.h +++ b/src/testutil.h @@ -34,7 +34,7 @@ static void testutil_random_fe_magnitude(secp256k1_fe *fe, int m) { if (n == 0) { return; } - secp256k1_fe_clear(&zero); + secp256k1_fe_set_int(&zero, 0); secp256k1_fe_negate(&zero, &zero, 0); secp256k1_fe_mul_int_unchecked(&zero, n - 1); secp256k1_fe_add(fe, &zero); diff --git a/src/util.h b/src/util.h index ca73752ccc2039..88a4149421ace0 100644 --- a/src/util.h +++ b/src/util.h @@ -8,11 +8,17 @@ #define SECP256K1_UTIL_H #include "../include/secp256k1.h" +#include "checkmem.h" +#include #include #include #include #include +#if defined(_MSC_VER) +/* For SecureZeroMemory */ +#include +#endif #define STR_(x) #x #define STR(x) STR_(x) @@ -192,14 +198,6 @@ static SECP256K1_INLINE void *checked_malloc(const secp256k1_callback* cb, size_ # endif #endif -#if defined(_WIN32) -# define I64FORMAT "I64d" -# define I64uFORMAT "I64u" -#else -# define I64FORMAT "lld" -# define I64uFORMAT "llu" -#endif - #if defined(__GNUC__) # define SECP256K1_GNUC_EXT __extension__ #else @@ -221,6 +219,34 @@ static SECP256K1_INLINE void secp256k1_memczero(void *s, size_t len, int flag) { } } +/* Cleanses memory to prevent leaking sensitive info. Won't be optimized out. */ +static SECP256K1_INLINE void secp256k1_memclear(void *ptr, size_t len) { +#if defined(_MSC_VER) + /* SecureZeroMemory is guaranteed not to be optimized out by MSVC. */ + SecureZeroMemory(ptr, len); +#elif defined(__GNUC__) + /* We use a memory barrier that scares the compiler away from optimizing out the memset. + * + * Quoting Adam Langley in commit ad1907fe73334d6c696c8539646c21b11178f20f + * in BoringSSL (ISC License): + * As best as we can tell, this is sufficient to break any optimisations that + * might try to eliminate "superfluous" memsets. + * This method is used in memzero_explicit() the Linux kernel, too. Its advantage is that it + * is pretty efficient, because the compiler can still implement the memset() efficently, + * just not remove it entirely. See "Dead Store Elimination (Still) Considered Harmful" by + * Yang et al. (USENIX Security 2017) for more background. + */ + memset(ptr, 0, len); + __asm__ __volatile__("" : : "r"(ptr) : "memory"); +#else + void *(*volatile const volatile_memset)(void *, int, size_t) = memset; + volatile_memset(ptr, 0, len); +#endif +#ifdef VERIFY + SECP256K1_CHECKMEM_UNDEFINE(ptr, len); +#endif +} + /** Semantics like memcmp. Variable-time. * * We use this to avoid possible compiler bugs with memcmp, e.g. @@ -239,6 +265,22 @@ static SECP256K1_INLINE int secp256k1_memcmp_var(const void *s1, const void *s2, return 0; } +/* Return 1 if all elements of array s are 0 and otherwise return 0. + * Constant-time. */ +static SECP256K1_INLINE int secp256k1_is_zero_array(const unsigned char *s, size_t len) { + unsigned char acc = 0; + int ret; + size_t i; + + for (i = 0; i < len; i++) { + acc |= s[i]; + } + ret = (acc == 0); + /* acc may contain secret values. Try to explicitly clear it. */ + secp256k1_memclear(&acc, sizeof(acc)); + return ret; +} + /** If flag is true, set *r equal to *a; otherwise leave it. Constant-time. Both *r and *a must be initialized and non-negative.*/ static SECP256K1_INLINE void secp256k1_int_cmov(int *r, const int *a, int flag) { unsigned int mask0, mask1, r_masked, a_masked; diff --git a/tools/check-abi.sh b/tools/check-abi.sh index 94a98831e1f17a..601a64ba9619e2 100755 --- a/tools/check-abi.sh +++ b/tools/check-abi.sh @@ -49,7 +49,14 @@ checkout_and_build() { -DSECP256K1_BUILD_CTIME_TESTS=OFF \ -DSECP256K1_BUILD_EXAMPLES=OFF cmake --build . -j "$(nproc)" - abi-dumper src/libsecp256k1.so -o ABI.dump -lver "$2" -public-headers ../include/ + # FIXME: Just set LIBPATH to lib/libsecp256k1.so once version 0.6.0 is + # released. + if [ -f "src/libsecp256k1.so" ]; then + LIBPATH="src/libsecp256k1.so" + else + LIBPATH="lib/libsecp256k1.so" + fi + abi-dumper $LIBPATH -o ABI.dump -lver "$2" -public-headers ../include/ cd "$_orig_dir" } diff --git a/tools/test_vectors_musig2_generate.py b/tools/test_vectors_musig2_generate.py new file mode 100755 index 00000000000000..97424419f3c64a --- /dev/null +++ b/tools/test_vectors_musig2_generate.py @@ -0,0 +1,656 @@ +#!/usr/bin/env python3 + +import sys +import json +import textwrap + +max_pubkeys = 0 + +if len(sys.argv) < 2: + print( + "This script converts BIP MuSig2 test vectors in a given directory to a C file that can be used in the test framework." + ) + print("Usage: %s

" % sys.argv[0]) + sys.exit(1) + + +def hexstr_to_intarray(str): + return ", ".join([f"0x{b:02X}" for b in bytes.fromhex(str)]) + + +def create_init(name): + return """ +static const struct musig_%s_vector musig_%s_vector = { +""" % ( + name, + name, + ) + + +def init_array(key): + return textwrap.indent("{ %s },\n" % hexstr_to_intarray(data[key]), 4 * " ") + + +def init_arrays(key): + s = textwrap.indent("{\n", 4 * " ") + s += textwrap.indent( + ",\n".join(["{ %s }" % hexstr_to_intarray(x) for x in data[key]]), 8 * " " + ) + s += textwrap.indent("\n},\n", 4 * " ") + return s + + +def init_indices(array): + return " %d, { %s }" % ( + len(array), + ", ".join(map(str, array) if len(array) > 0 else "0"), + ) + + +def init_is_xonly(case): + if len(case["tweak_indices"]) > 0: + return ", ".join(map(lambda x: "1" if x else "0", case["is_xonly"])) + return "0" + + +def init_optional_expected(case): + return hexstr_to_intarray(case["expected"]) if "expected" in case else 0 + + +def init_cases(cases, f): + s = textwrap.indent("{\n", 4 * " ") + for (i, case) in enumerate(cases): + s += textwrap.indent("%s\n" % f(case), 8 * " ") + s += textwrap.indent("},\n", 4 * " ") + return s + + +def finish_init(): + return "};\n" + + +s = ( + """/** + * Automatically generated by %s. + * + * The test vectors for the KeySort function are included in this file. They can + * be found in src/modules/extrakeys/tests_impl.h. */ +""" + % sys.argv[0] +) + + +s += """ +enum MUSIG_ERROR { + MUSIG_PUBKEY, + MUSIG_TWEAK, + MUSIG_PUBNONCE, + MUSIG_AGGNONCE, + MUSIG_SECNONCE, + MUSIG_SIG, + MUSIG_SIG_VERIFY, + MUSIG_OTHER +}; +""" + +# key agg vectors +with open(sys.argv[1] + "/key_agg_vectors.json", "r") as f: + data = json.load(f) + + max_key_indices = max( + len(test_case["key_indices"]) for test_case in data["valid_test_cases"] + ) + max_tweak_indices = max( + len(test_case["tweak_indices"]) for test_case in data["error_test_cases"] + ) + num_pubkeys = len(data["pubkeys"]) + max_pubkeys = max(num_pubkeys, max_pubkeys) + num_tweaks = len(data["tweaks"]) + num_valid_cases = len(data["valid_test_cases"]) + num_error_cases = len(data["error_test_cases"]) + + # Add structures for valid and error cases + s += ( + """ +struct musig_key_agg_valid_test_case { + size_t key_indices_len; + size_t key_indices[%d]; + unsigned char expected[32]; +}; +""" + % max_key_indices + ) + s += """ +struct musig_key_agg_error_test_case { + size_t key_indices_len; + size_t key_indices[%d]; + size_t tweak_indices_len; + size_t tweak_indices[%d]; + int is_xonly[%d]; + enum MUSIG_ERROR error; +}; +""" % ( + max_key_indices, + max_tweak_indices, + max_tweak_indices, + ) + + # Add structure for entire vector + s += """ +struct musig_key_agg_vector { + unsigned char pubkeys[%d][33]; + unsigned char tweaks[%d][32]; + struct musig_key_agg_valid_test_case valid_case[%d]; + struct musig_key_agg_error_test_case error_case[%d]; +}; +""" % ( + num_pubkeys, + num_tweaks, + num_valid_cases, + num_error_cases, + ) + + s += create_init("key_agg") + # Add pubkeys and tweaks to the vector + s += init_arrays("pubkeys") + s += init_arrays("tweaks") + + # Add valid cases to the vector + s += init_cases( + data["valid_test_cases"], + lambda case: "{ %s, { %s }}," + % (init_indices(case["key_indices"]), hexstr_to_intarray(case["expected"])), + ) + + def comment_to_error(case): + comment = case["comment"] + if "public key" in comment.lower(): + return "MUSIG_PUBKEY" + elif "tweak" in comment.lower(): + return "MUSIG_TWEAK" + else: + sys.exit("Unknown error") + + # Add error cases to the vector + s += init_cases( + data["error_test_cases"], + lambda case: "{ %s, %s, { %s }, %s }," + % ( + init_indices(case["key_indices"]), + init_indices(case["tweak_indices"]), + init_is_xonly(case), + comment_to_error(case), + ), + ) + + s += finish_init() + +# nonce gen vectors +with open(sys.argv[1] + "/nonce_gen_vectors.json", "r") as f: + data = json.load(f) + + # The MuSig2 implementation only allows messages of length 32 + data["test_cases"] = list( + filter(lambda c: c["msg"] is None or len(c["msg"]) == 64, data["test_cases"]) + ) + + num_tests = len(data["test_cases"]) + + s += """ +struct musig_nonce_gen_test_case { + unsigned char rand_[32]; + int has_sk; + unsigned char sk[32]; + unsigned char pk[33]; + int has_aggpk; + unsigned char aggpk[32]; + int has_msg; + unsigned char msg[32]; + int has_extra_in; + unsigned char extra_in[32]; + unsigned char expected_secnonce[97]; + unsigned char expected_pubnonce[66]; +}; +""" + + s += ( + """ +struct musig_nonce_gen_vector { + struct musig_nonce_gen_test_case test_case[%d]; +}; +""" + % num_tests + ) + + s += create_init("nonce_gen") + + def init_array_maybe(array): + return "%d , { %s }" % ( + 0 if array is None else 1, + hexstr_to_intarray(array) if array is not None else 0, + ) + + s += init_cases( + data["test_cases"], + lambda case: "{ { %s }, %s, { %s }, %s, %s, %s, { %s }, { %s } }," + % ( + hexstr_to_intarray(case["rand_"]), + init_array_maybe(case["sk"]), + hexstr_to_intarray(case["pk"]), + init_array_maybe(case["aggpk"]), + init_array_maybe(case["msg"]), + init_array_maybe(case["extra_in"]), + hexstr_to_intarray(case["expected_secnonce"]), + hexstr_to_intarray(case["expected_pubnonce"]), + ), + ) + + s += finish_init() + +# nonce agg vectors +with open(sys.argv[1] + "/nonce_agg_vectors.json", "r") as f: + data = json.load(f) + + num_pnonces = len(data["pnonces"]) + num_valid_cases = len(data["valid_test_cases"]) + num_error_cases = len(data["error_test_cases"]) + + pnonce_indices_len = 2 + for case in data["valid_test_cases"] + data["error_test_cases"]: + assert len(case["pnonce_indices"]) == pnonce_indices_len + + # Add structures for valid and error cases + s += """ +struct musig_nonce_agg_test_case { + size_t pnonce_indices[2]; + /* if valid case */ + unsigned char expected[66]; + /* if error case */ + int invalid_nonce_idx; +}; +""" + # Add structure for entire vector + s += """ +struct musig_nonce_agg_vector { + unsigned char pnonces[%d][66]; + struct musig_nonce_agg_test_case valid_case[%d]; + struct musig_nonce_agg_test_case error_case[%d]; +}; +""" % ( + num_pnonces, + num_valid_cases, + num_error_cases, + ) + + s += create_init("nonce_agg") + s += init_arrays("pnonces") + + for cases in (data["valid_test_cases"], data["error_test_cases"]): + s += init_cases( + cases, + lambda case: "{ { %s }, { %s }, %d }," + % ( + ", ".join(map(str, case["pnonce_indices"])), + init_optional_expected(case), + case["error"]["signer"] if "error" in case else 0, + ), + ) + s += finish_init() + +# sign/verify vectors +with open(sys.argv[1] + "/sign_verify_vectors.json", "r") as f: + data = json.load(f) + + # The MuSig2 implementation only allows messages of length 32 + assert list(filter(lambda x: len(x) == 64, data["msgs"]))[0] == data["msgs"][0] + data["msgs"] = [data["msgs"][0]] + + def filter_msg32(k): + return list(filter(lambda x: x["msg_index"] == 0, data[k])) + + data["valid_test_cases"] = filter_msg32("valid_test_cases") + data["sign_error_test_cases"] = filter_msg32("sign_error_test_cases") + data["verify_error_test_cases"] = filter_msg32("verify_error_test_cases") + data["verify_fail_test_cases"] = filter_msg32("verify_fail_test_cases") + + num_pubkeys = len(data["pubkeys"]) + max_pubkeys = max(num_pubkeys, max_pubkeys) + num_secnonces = len(data["secnonces"]) + num_pubnonces = len(data["pnonces"]) + num_aggnonces = len(data["aggnonces"]) + num_msgs = len(data["msgs"]) + num_valid_cases = len(data["valid_test_cases"]) + num_sign_error_cases = len(data["sign_error_test_cases"]) + num_verify_fail_cases = len(data["verify_fail_test_cases"]) + num_verify_error_cases = len(data["verify_error_test_cases"]) + + all_cases = ( + data["valid_test_cases"] + + data["sign_error_test_cases"] + + data["verify_error_test_cases"] + + data["verify_fail_test_cases"] + ) + max_key_indices = max(len(test_case["key_indices"]) for test_case in all_cases) + max_nonce_indices = max( + len(test_case["nonce_indices"]) if "nonce_indices" in test_case else 0 + for test_case in all_cases + ) + # Add structures for valid and error cases + s += ( + """ +/* Omit pubnonces in the test vectors because our partial signature verification + * implementation is able to accept the aggnonce directly. */ +struct musig_valid_case { + size_t key_indices_len; + size_t key_indices[%d]; + size_t aggnonce_index; + size_t msg_index; + size_t signer_index; + unsigned char expected[32]; +}; +""" + % max_key_indices + ) + + s += ( + """ +struct musig_sign_error_case { + size_t key_indices_len; + size_t key_indices[%d]; + size_t aggnonce_index; + size_t msg_index; + size_t secnonce_index; + enum MUSIG_ERROR error; +}; +""" + % max_key_indices + ) + + s += """ +struct musig_verify_fail_error_case { + unsigned char sig[32]; + size_t key_indices_len; + size_t key_indices[%d]; + size_t nonce_indices_len; + size_t nonce_indices[%d]; + size_t msg_index; + size_t signer_index; + enum MUSIG_ERROR error; +}; +""" % ( + max_key_indices, + max_nonce_indices, + ) + + # Add structure for entire vector + s += """ +struct musig_sign_verify_vector { + unsigned char sk[32]; + unsigned char pubkeys[%d][33]; + unsigned char secnonces[%d][194]; + unsigned char pubnonces[%d][194]; + unsigned char aggnonces[%d][66]; + unsigned char msgs[%d][32]; + struct musig_valid_case valid_case[%d]; + struct musig_sign_error_case sign_error_case[%d]; + struct musig_verify_fail_error_case verify_fail_case[%d]; + struct musig_verify_fail_error_case verify_error_case[%d]; +}; +""" % ( + num_pubkeys, + num_secnonces, + num_pubnonces, + num_aggnonces, + num_msgs, + num_valid_cases, + num_sign_error_cases, + num_verify_fail_cases, + num_verify_error_cases, + ) + + s += create_init("sign_verify") + s += init_array("sk") + s += init_arrays("pubkeys") + s += init_arrays("secnonces") + s += init_arrays("pnonces") + s += init_arrays("aggnonces") + s += init_arrays("msgs") + + s += init_cases( + data["valid_test_cases"], + lambda case: "{ %s, %d, %d, %d, { %s }}," + % ( + init_indices(case["key_indices"]), + case["aggnonce_index"], + case["msg_index"], + case["signer_index"], + init_optional_expected(case), + ), + ) + + def sign_error(case): + comment = case["comment"] + if "pubkey" in comment or "public key" in comment: + return "MUSIG_PUBKEY" + elif "Aggregate nonce" in comment: + return "MUSIG_AGGNONCE" + elif "Secnonce" in comment: + return "MUSIG_SECNONCE" + else: + sys.exit("Unknown sign error") + + s += init_cases( + data["sign_error_test_cases"], + lambda case: "{ %s, %d, %d, %d, %s }," + % ( + init_indices(case["key_indices"]), + case["aggnonce_index"], + case["msg_index"], + case["secnonce_index"], + sign_error(case), + ), + ) + + def verify_error(case): + comment = case["comment"] + if "exceeds" in comment: + return "MUSIG_SIG" + elif "Wrong signer" in comment or "Wrong signature" in comment: + return "MUSIG_SIG_VERIFY" + elif "pubnonce" in comment: + return "MUSIG_PUBNONCE" + elif "pubkey" in comment: + return "MUSIG_PUBKEY" + else: + sys.exit("Unknown verify error") + + for cases in ("verify_fail_test_cases", "verify_error_test_cases"): + s += init_cases( + data[cases], + lambda case: "{ { %s }, %s, %s, %d, %d, %s }," + % ( + hexstr_to_intarray(case["sig"]), + init_indices(case["key_indices"]), + init_indices(case["nonce_indices"]), + case["msg_index"], + case["signer_index"], + verify_error(case), + ), + ) + + s += finish_init() + +# tweak vectors +with open(sys.argv[1] + "/tweak_vectors.json", "r") as f: + data = json.load(f) + + num_pubkeys = len(data["pubkeys"]) + max_pubkeys = max(num_pubkeys, max_pubkeys) + num_pubnonces = len(data["pnonces"]) + num_tweaks = len(data["tweaks"]) + num_valid_cases = len(data["valid_test_cases"]) + num_error_cases = len(data["error_test_cases"]) + + all_cases = data["valid_test_cases"] + data["error_test_cases"] + max_key_indices = max(len(test_case["key_indices"]) for test_case in all_cases) + max_tweak_indices = max(len(test_case["tweak_indices"]) for test_case in all_cases) + max_nonce_indices = max(len(test_case["nonce_indices"]) for test_case in all_cases) + # Add structures for valid and error cases + s += """ +struct musig_tweak_case { + size_t key_indices_len; + size_t key_indices[%d]; + size_t nonce_indices_len; + size_t nonce_indices[%d]; + size_t tweak_indices_len; + size_t tweak_indices[%d]; + int is_xonly[%d]; + size_t signer_index; + unsigned char expected[32]; +}; +""" % ( + max_key_indices, + max_nonce_indices, + max_tweak_indices, + max_tweak_indices, + ) + + # Add structure for entire vector + s += """ +struct musig_tweak_vector { + unsigned char sk[32]; + unsigned char secnonce[97]; + unsigned char aggnonce[66]; + unsigned char msg[32]; + unsigned char pubkeys[%d][33]; + unsigned char pubnonces[%d][194]; + unsigned char tweaks[%d][32]; + struct musig_tweak_case valid_case[%d]; + struct musig_tweak_case error_case[%d]; +}; +""" % ( + num_pubkeys, + num_pubnonces, + num_tweaks, + num_valid_cases, + num_error_cases, + ) + s += create_init("tweak") + s += init_array("sk") + s += init_array("secnonce") + s += init_array("aggnonce") + s += init_array("msg") + s += init_arrays("pubkeys") + s += init_arrays("pnonces") + s += init_arrays("tweaks") + + s += init_cases( + data["valid_test_cases"], + lambda case: "{ %s, %s, %s, { %s }, %d, { %s }}," + % ( + init_indices(case["key_indices"]), + init_indices(case["nonce_indices"]), + init_indices(case["tweak_indices"]), + init_is_xonly(case), + case["signer_index"], + init_optional_expected(case), + ), + ) + + s += init_cases( + data["error_test_cases"], + lambda case: "{ %s, %s, %s, { %s }, %d, { %s }}," + % ( + init_indices(case["key_indices"]), + init_indices(case["nonce_indices"]), + init_indices(case["tweak_indices"]), + init_is_xonly(case), + case["signer_index"], + init_optional_expected(case), + ), + ) + + s += finish_init() + +# sigagg vectors +with open(sys.argv[1] + "/sig_agg_vectors.json", "r") as f: + data = json.load(f) + + num_pubkeys = len(data["pubkeys"]) + max_pubkeys = max(num_pubkeys, max_pubkeys) + num_tweaks = len(data["tweaks"]) + num_psigs = len(data["psigs"]) + num_valid_cases = len(data["valid_test_cases"]) + num_error_cases = len(data["error_test_cases"]) + + all_cases = data["valid_test_cases"] + data["error_test_cases"] + max_key_indices = max(len(test_case["key_indices"]) for test_case in all_cases) + max_tweak_indices = max(len(test_case["tweak_indices"]) for test_case in all_cases) + max_psig_indices = max(len(test_case["psig_indices"]) for test_case in all_cases) + + # Add structures for valid and error cases + s += """ +/* Omit pubnonces in the test vectors because they're only needed for + * implementations that do not directly accept an aggnonce. */ +struct musig_sig_agg_case { + size_t key_indices_len; + size_t key_indices[%d]; + size_t tweak_indices_len; + size_t tweak_indices[%d]; + int is_xonly[%d]; + unsigned char aggnonce[66]; + size_t psig_indices_len; + size_t psig_indices[%d]; + /* if valid case */ + unsigned char expected[64]; + /* if error case */ + int invalid_sig_idx; +}; +""" % ( + max_key_indices, + max_tweak_indices, + max_tweak_indices, + max_psig_indices, + ) + + # Add structure for entire vector + s += """ +struct musig_sig_agg_vector { + unsigned char pubkeys[%d][33]; + unsigned char tweaks[%d][32]; + unsigned char psigs[%d][32]; + unsigned char msg[32]; + struct musig_sig_agg_case valid_case[%d]; + struct musig_sig_agg_case error_case[%d]; +}; +""" % ( + num_pubkeys, + num_tweaks, + num_psigs, + num_valid_cases, + num_error_cases, + ) + + s += create_init("sig_agg") + s += init_arrays("pubkeys") + s += init_arrays("tweaks") + s += init_arrays("psigs") + s += init_array("msg") + + for cases in (data["valid_test_cases"], data["error_test_cases"]): + s += init_cases( + cases, + lambda case: "{ %s, %s, { %s }, { %s }, %s, { %s }, %d }," + % ( + init_indices(case["key_indices"]), + init_indices(case["tweak_indices"]), + init_is_xonly(case), + hexstr_to_intarray(case["aggnonce"]), + init_indices(case["psig_indices"]), + init_optional_expected(case), + case["error"]["signer"] if "error" in case else 0, + ), + ) + s += finish_init() +s += "enum { MUSIG_VECTORS_MAX_PUBKEYS = %d };" % max_pubkeys +print(s)