Skip to content

Commit cde8c8a

Browse files
committed
Update codebase to 0_10_0 to include secp256k1 silent payment module
1 parent a9bbf74 commit cde8c8a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+15352
-10742
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# This file was automatically created by vendor-libsecp.sh
2-
1ad5185cd42c0636104129fcc9f6a4bf9c67cc40
2+
3165b6b091a30a4ace948d67d55142c61a12929d

secp256k1-sys/depend/secp256k1/.cirrus.yml

+8-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ env:
1010
MAKEFLAGS: -j4
1111
BUILD: check
1212
### secp256k1 config
13-
ECMULTWINDOW: auto
14-
ECMULTGENPRECISION: auto
13+
ECMULTWINDOW: 15
14+
ECMULTGENKB: 22
1515
ASM: no
1616
WIDEMUL: auto
1717
WITH_VALGRIND: yes
@@ -20,8 +20,10 @@ env:
2020
EXPERIMENTAL: no
2121
ECDH: no
2222
RECOVERY: no
23+
EXTRAKEYS: no
2324
SCHNORRSIG: no
2425
ELLSWIFT: no
26+
SILENTPAYMENTS: no
2527
### test options
2628
SECP256K1_TEST_ITERS:
2729
BENCH: yes
@@ -66,8 +68,10 @@ task:
6668
env:
6769
ECDH: yes
6870
RECOVERY: yes
71+
EXTRAKEYS: yes
6972
SCHNORRSIG: yes
7073
ELLSWIFT: yes
74+
SILENTPAYMENTS: yes
7175
matrix:
7276
# Currently only gcc-snapshot, the other compilers are tested on GHA with QEMU
7377
- env: { CC: 'gcc-snapshot' }
@@ -82,8 +86,10 @@ task:
8286
env:
8387
ECDH: yes
8488
RECOVERY: yes
89+
EXTRAKEYS: yes
8590
SCHNORRSIG: yes
8691
ELLSWIFT: yes
92+
SILENTPAYMENTS: yes
8793
WRAPPER_CMD: 'valgrind --error-exitcode=42'
8894
SECP256K1_TEST_ITERS: 2
8995
matrix:

secp256k1-sys/depend/secp256k1/.github/actions/install-homebrew-valgrind/action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ runs:
1616
cat valgrind_fingerprint
1717
shell: bash
1818
19-
- uses: actions/cache@v3
19+
- uses: actions/cache@v4
2020
id: cache
2121
with:
2222
path: ${{ env.CI_HOMEBREW_CELLAR_VALGRIND }}

secp256k1-sys/depend/secp256k1/.github/actions/run-in-docker-action/action.yml

+5
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ runs:
3636
load: true
3737
cache-from: type=gha
3838

39+
- # Workaround for https://github.com/google/sanitizers/issues/1614 .
40+
# The underlying issue has been fixed in clang 18.1.3.
41+
run: sudo sysctl -w vm.mmap_rnd_bits=28
42+
shell: bash
43+
3944
- # Tell Docker to pass environment variables in `env` into the container.
4045
run: >
4146
docker run \

secp256k1-sys/depend/secp256k1/.github/workflows/ci.yml

+115-31
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ env:
2121
MAKEFLAGS: '-j4'
2222
BUILD: 'check'
2323
### secp256k1 config
24-
ECMULTWINDOW: 'auto'
25-
ECMULTGENPRECISION: 'auto'
24+
ECMULTWINDOW: 15
25+
ECMULTGENKB: 86
2626
ASM: 'no'
2727
WIDEMUL: 'auto'
2828
WITH_VALGRIND: 'yes'
@@ -31,8 +31,10 @@ env:
3131
EXPERIMENTAL: 'no'
3232
ECDH: 'no'
3333
RECOVERY: 'no'
34+
EXTRAKEYS: 'no'
3435
SCHNORRSIG: 'no'
3536
ELLSWIFT: 'no'
37+
SILENTPAYMENTS: 'no'
3638
### test options
3739
SECP256K1_TEST_ITERS:
3840
BENCH: 'yes'
@@ -71,20 +73,20 @@ jobs:
7173
matrix:
7274
configuration:
7375
- env_vars: { WIDEMUL: 'int64', RECOVERY: 'yes' }
74-
- env_vars: { WIDEMUL: 'int64', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
76+
- env_vars: { WIDEMUL: 'int64', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', SILENTPAYMENTS: 'yes' }
7577
- env_vars: { WIDEMUL: 'int128' }
76-
- env_vars: { WIDEMUL: 'int128_struct', ELLSWIFT: 'yes' }
77-
- env_vars: { WIDEMUL: 'int128', RECOVERY: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
78-
- env_vars: { WIDEMUL: 'int128', ECDH: 'yes', SCHNORRSIG: 'yes' }
79-
- env_vars: { WIDEMUL: 'int128', ASM: 'x86_64', ELLSWIFT: 'yes' }
80-
- env_vars: { RECOVERY: 'yes', SCHNORRSIG: 'yes' }
81-
- env_vars: { CTIMETESTS: 'no', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', CPPFLAGS: '-DVERIFY' }
78+
- env_vars: { WIDEMUL: 'int128_struct', ELLSWIFT: 'yes' }
79+
- env_vars: { WIDEMUL: 'int128', RECOVERY: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
80+
- env_vars: { WIDEMUL: 'int128', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', SILENTPAYMENTS: 'yes' }
81+
- env_vars: { WIDEMUL: 'int128', ASM: 'x86_64', ELLSWIFT: 'yes' }
82+
- env_vars: { RECOVERY: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes' }
83+
- env_vars: { CTIMETESTS: 'no', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', SILENTPAYMENTS: 'yes', CPPFLAGS: '-DVERIFY' }
8284
- env_vars: { BUILD: 'distcheck', WITH_VALGRIND: 'no', CTIMETESTS: 'no', BENCH: 'no' }
8385
- env_vars: { CPPFLAGS: '-DDETERMINISTIC' }
8486
- env_vars: { CFLAGS: '-O0', CTIMETESTS: 'no' }
85-
- env_vars: { CFLAGS: '-O1', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
86-
- env_vars: { ECMULTGENPRECISION: 2, ECMULTWINDOW: 2 }
87-
- env_vars: { ECMULTGENPRECISION: 8, ECMULTWINDOW: 4 }
87+
- env_vars: { CFLAGS: '-O1', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', SILENTPAYMENTS: 'yes' }
88+
- env_vars: { ECMULTGENKB: 2, ECMULTWINDOW: 2 }
89+
- env_vars: { ECMULTGENKB: 86, ECMULTWINDOW: 4 }
8890
cc:
8991
- 'gcc'
9092
- 'clang'
@@ -139,8 +141,10 @@ jobs:
139141
HOST: 'i686-linux-gnu'
140142
ECDH: 'yes'
141143
RECOVERY: 'yes'
144+
EXTRAKEYS: 'yes'
142145
SCHNORRSIG: 'yes'
143146
ELLSWIFT: 'yes'
147+
SILENTPAYMENTS: 'yes'
144148
CC: ${{ matrix.cc }}
145149

146150
steps:
@@ -183,8 +187,10 @@ jobs:
183187
WITH_VALGRIND: 'no'
184188
ECDH: 'yes'
185189
RECOVERY: 'yes'
190+
EXTRAKEYS: 'yes'
186191
SCHNORRSIG: 'yes'
187192
ELLSWIFT: 'yes'
193+
SILENTPAYMENTS: 'yes'
188194
CTIMETESTS: 'no'
189195

190196
steps:
@@ -234,8 +240,10 @@ jobs:
234240
WITH_VALGRIND: 'no'
235241
ECDH: 'yes'
236242
RECOVERY: 'yes'
243+
EXTRAKEYS: 'yes'
237244
SCHNORRSIG: 'yes'
238245
ELLSWIFT: 'yes'
246+
SILENTPAYMENTS: 'yes'
239247
CTIMETESTS: 'no'
240248

241249
steps:
@@ -279,8 +287,10 @@ jobs:
279287
WITH_VALGRIND: 'no'
280288
ECDH: 'yes'
281289
RECOVERY: 'yes'
290+
EXTRAKEYS: 'yes'
282291
SCHNORRSIG: 'yes'
283292
ELLSWIFT: 'yes'
293+
SILENTPAYMENTS: 'yes'
284294
CTIMETESTS: 'no'
285295

286296
strategy:
@@ -334,8 +344,10 @@ jobs:
334344
WITH_VALGRIND: 'no'
335345
ECDH: 'yes'
336346
RECOVERY: 'yes'
347+
EXTRAKEYS: 'yes'
337348
SCHNORRSIG: 'yes'
338349
ELLSWIFT: 'yes'
350+
SILENTPAYMENTS: 'yes'
339351
CTIMETESTS: 'no'
340352

341353
steps:
@@ -377,17 +389,19 @@ jobs:
377389
configuration:
378390
- env_vars: { CC: 'clang', ASM: 'auto' }
379391
- env_vars: { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'auto' }
380-
- env_vars: { CC: 'clang', ASM: 'no', ECMULTGENPRECISION: 2, ECMULTWINDOW: 2 }
381-
- env_vars: { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENPRECISION: 2, ECMULTWINDOW: 2 }
392+
- env_vars: { CC: 'clang', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
393+
- env_vars: { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
382394

383395
env:
384396
# The `--error-exitcode` is required to make the test fail if valgrind found errors,
385397
# otherwise it will return 0 (https://www.valgrind.org/docs/manual/manual-core.html).
386398
WRAPPER_CMD: 'valgrind --error-exitcode=42'
387399
ECDH: 'yes'
388400
RECOVERY: 'yes'
401+
EXTRAKEYS: 'yes'
389402
SCHNORRSIG: 'yes'
390403
ELLSWIFT: 'yes'
404+
SILENTPAYMENTS: 'yes'
391405
CTIMETESTS: 'no'
392406
SECP256K1_TEST_ITERS: 2
393407

@@ -431,14 +445,16 @@ jobs:
431445
configuration:
432446
- env_vars: { CC: 'clang', ASM: 'auto' }
433447
- env_vars: { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'auto' }
434-
- env_vars: { CC: 'clang', ASM: 'no', ECMULTGENPRECISION: 2, ECMULTWINDOW: 2 }
435-
- env_vars: { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENPRECISION: 2, ECMULTWINDOW: 2 }
448+
- env_vars: { CC: 'clang', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
449+
- env_vars: { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENKB: 2, ECMULTWINDOW: 2 }
436450

437451
env:
438452
ECDH: 'yes'
439453
RECOVERY: 'yes'
454+
EXTRAKEYS: 'yes'
440455
SCHNORRSIG: 'yes'
441456
ELLSWIFT: 'yes'
457+
SILENTPAYMENTS: 'yes'
442458
CTIMETESTS: 'no'
443459
CFLAGS: '-fsanitize=undefined,address -g'
444460
UBSAN_OPTIONS: 'print_stacktrace=1:halt_on_error=1'
@@ -485,18 +501,26 @@ jobs:
485501
matrix:
486502
configuration:
487503
- env_vars:
504+
CTIMETESTS: 'yes'
488505
CFLAGS: '-fsanitize=memory -fsanitize-recover=memory -g'
489506
- env_vars:
490-
ECMULTGENPRECISION: 2
507+
ECMULTGENKB: 2
491508
ECMULTWINDOW: 2
509+
CTIMETESTS: 'yes'
492510
CFLAGS: '-fsanitize=memory -fsanitize-recover=memory -g -O3'
511+
- env_vars:
512+
# -fsanitize-memory-param-retval is clang's default, but our build system disables it
513+
# when ctime_tests when enabled.
514+
CFLAGS: '-fsanitize=memory -fsanitize-recover=memory -fsanitize-memory-param-retval -g'
515+
CTIMETESTS: 'no'
493516

494517
env:
495518
ECDH: 'yes'
496519
RECOVERY: 'yes'
520+
EXTRAKEYS: 'yes'
497521
SCHNORRSIG: 'yes'
498522
ELLSWIFT: 'yes'
499-
CTIMETESTS: 'yes'
523+
SILENTPAYMENTS: 'yes'
500524
CC: 'clang'
501525
SECP256K1_TEST_ITERS: 32
502526
ASM: 'no'
@@ -541,8 +565,10 @@ jobs:
541565
WITH_VALGRIND: 'no'
542566
ECDH: 'yes'
543567
RECOVERY: 'yes'
568+
EXTRAKEYS: 'yes'
544569
SCHNORRSIG: 'yes'
545570
ELLSWIFT: 'yes'
571+
SILENTPAYMENTS: 'yes'
546572
CTIMETESTS: 'no'
547573

548574
strategy:
@@ -585,10 +611,10 @@ jobs:
585611
run: env
586612
if: ${{ always() }}
587613

588-
macos-native:
589-
name: "x86_64: macOS Monterey"
614+
x86_64-macos-native:
615+
name: "x86_64: macOS Monterey, Valgrind"
590616
# See: https://github.com/actions/runner-images#available-images.
591-
runs-on: macos-12 # Use M1 once available https://github.com/github/roadmap/issues/528
617+
runs-on: macos-12
592618

593619
env:
594620
CC: 'clang'
@@ -599,15 +625,15 @@ jobs:
599625
fail-fast: false
600626
matrix:
601627
env_vars:
602-
- { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
603-
- { WIDEMUL: 'int128_struct', ECMULTGENPRECISION: 2, ECMULTWINDOW: 4 }
604-
- { WIDEMUL: 'int128', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
628+
- { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', SILENTPAYMENTS: 'yes' }
629+
- { WIDEMUL: 'int128_struct', ECMULTGENKB: 2, ECMULTWINDOW: 4 }
630+
- { WIDEMUL: 'int128', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', SILENTPAYMENTS: 'yes' }
605631
- { WIDEMUL: 'int128', RECOVERY: 'yes' }
606-
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
607-
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc' }
608-
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
609-
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
610-
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CPPFLAGS: '-DVERIFY', CTIMETESTS: 'no' }
632+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', SILENTPAYMENTS: 'yes' }
633+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', SILENTPAYMENTS: 'yes', CC: 'gcc' }
634+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', SILENTPAYMENTS: 'yes', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
635+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', SILENTPAYMENTS: 'yes', CC: 'gcc', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
636+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CPPFLAGS: '-DVERIFY', CTIMETESTS: 'no' }
611637
- BUILD: 'distcheck'
612638

613639
steps:
@@ -616,7 +642,7 @@ jobs:
616642

617643
- name: Install Homebrew packages
618644
run: |
619-
brew install automake libtool gcc
645+
brew install --quiet automake libtool gcc
620646
ln -s $(brew --prefix gcc)/bin/gcc-?? /usr/local/bin/gcc
621647
622648
- name: Install and cache Valgrind
@@ -644,6 +670,62 @@ jobs:
644670
run: env
645671
if: ${{ always() }}
646672

673+
arm64-macos-native:
674+
name: "ARM64: macOS Sonoma"
675+
# See: https://github.com/actions/runner-images#available-images.
676+
runs-on: macos-14
677+
678+
env:
679+
CC: 'clang'
680+
HOMEBREW_NO_AUTO_UPDATE: 1
681+
HOMEBREW_NO_INSTALL_CLEANUP: 1
682+
WITH_VALGRIND: 'no'
683+
CTIMETESTS: 'no'
684+
685+
strategy:
686+
fail-fast: false
687+
matrix:
688+
env_vars:
689+
- { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
690+
- { WIDEMUL: 'int128_struct', ECMULTGENPRECISION: 2, ECMULTWINDOW: 4 }
691+
- { WIDEMUL: 'int128', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
692+
- { WIDEMUL: 'int128', RECOVERY: 'yes' }
693+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
694+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc' }
695+
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', EXTRAKEYS: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CPPFLAGS: '-DVERIFY' }
696+
- BUILD: 'distcheck'
697+
698+
steps:
699+
- name: Checkout
700+
uses: actions/checkout@v4
701+
702+
- name: Install Homebrew packages
703+
run: |
704+
brew install --quiet automake libtool gcc
705+
ln -s $(brew --prefix gcc)/bin/gcc-?? /usr/local/bin/gcc
706+
707+
- name: CI script
708+
env: ${{ matrix.env_vars }}
709+
run: ./ci/ci.sh
710+
711+
- run: cat tests.log || true
712+
if: ${{ always() }}
713+
- run: cat noverify_tests.log || true
714+
if: ${{ always() }}
715+
- run: cat exhaustive_tests.log || true
716+
if: ${{ always() }}
717+
- run: cat ctime_tests.log || true
718+
if: ${{ always() }}
719+
- run: cat bench.log || true
720+
if: ${{ always() }}
721+
- run: cat config.log || true
722+
if: ${{ always() }}
723+
- run: cat test_env.log || true
724+
if: ${{ always() }}
725+
- name: CI env
726+
run: env
727+
if: ${{ always() }}
728+
647729
win64-native:
648730
name: ${{ matrix.configuration.job_name }}
649731
# See: https://github.com/actions/runner-images#available-images.
@@ -716,8 +798,10 @@ jobs:
716798
WERROR_CFLAGS:
717799
ECDH: 'yes'
718800
RECOVERY: 'yes'
801+
EXTRAKEYS: 'yes'
719802
SCHNORRSIG: 'yes'
720803
ELLSWIFT: 'yes'
804+
SILENTPAYMENTS: 'yes'
721805

722806
steps:
723807
- name: Checkout
@@ -802,5 +886,5 @@ jobs:
802886
CI_BUILD: ${{ runner.temp }}/${{ github.run_id }}${{ github.action }}/build
803887
CI_INSTALL: ${{ runner.temp }}/${{ github.run_id }}${{ github.action }}/install
804888
run: |
805-
cmake -B ${{ env.CI_BUILD }} -DCMAKE_INSTALL_PREFIX=${{ env.CI_INSTALL }} && cmake --build ${{ env.CI_BUILD }} --target install && ls -RlAh ${{ env.CI_INSTALL }}
889+
cmake -B ${{ env.CI_BUILD }} -DCMAKE_INSTALL_PREFIX=${{ env.CI_INSTALL }} && cmake --build ${{ env.CI_BUILD }} && cmake --install ${{ env.CI_BUILD }} && ls -RlAh ${{ env.CI_INSTALL }}
806890
gcc -o ecdsa examples/ecdsa.c -I ${{ env.CI_INSTALL }}/include -L ${{ env.CI_INSTALL }}/lib*/ -l secp256k1 -Wl,-rpath,"${{ env.CI_INSTALL }}/lib",-rpath,"${{ env.CI_INSTALL }}/lib64" && ./ecdsa

secp256k1-sys/depend/secp256k1/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ ctime_tests
1010
ecdh_example
1111
ecdsa_example
1212
schnorr_example
13+
ellswift_example
14+
silentpayments_example
1315
*.exe
1416
*.so
1517
*.a

0 commit comments

Comments
 (0)