iceberg: add the example program

Port examples/iceberg.c from the source tree: a full Iceberg session
demonstrating the call order from the module docs -- distributed key
generation, pubshare_gen/pubkey_agg to obtain the group public key,
nonce_gen/nonce_agg into an ordinary MuSig2 public nonce, and
partial_sign/partial_sig_agg into an ordinary MuSig2 partial
signature.

One content adaptation: the secp256k1_musig_nonce_process call gains
a NULL adaptor argument, matching this repo's zkp musig variant.

Wired like the chilldkg example: autotools noinst_PROGRAMS +
TESTS entry under ENABLE_MODULE_ICEBERG (the example runs as part of
make check), CMake example target in examples/CMakeLists.txt, and
iceberg_example added to .gitignore.

Verified: ./iceberg_example runs to completion (exit 0) under both
build systems.
This commit is contained in:
Kgothatso Ngako
2026-08-31 12:25:09 +02:00
parent e581abad00
commit 072f6631f3
4 changed files with 741 additions and 0 deletions

View File

@@ -39,3 +39,7 @@ endif()
if(SECP256K1_ENABLE_MODULE_CHILLDKG)
add_example(chilldkg)
endif()
if(SECP256K1_ENABLE_MODULE_ICEBERG)
add_example(iceberg)
endif()