libsecp256k1 v0.6.0: MuSig2 Support
libsecp256k1 is a high-performance and high-assurance C library for digital signatures and other cryptographic primitives on the secp256k1 elliptic curve. It is intended to be the highest quality publicly available library for cryptography on the secp256k1 curve.
- "libsecp256k1 v0.6.0 is out! Featuring the highly anticipated musig module and other improvements," announced ncklr.
- This release adds a
musigmodule, adds a significantly more robust method to clear secrets from the stack, and removes the unusedsecp256k1_scratch_spacefunctions.
"In particular, the API functions now use a significantly more robust method to clear secrets from the stack before returning. Thanks to our contributors: @achow101, Cheapshot003 @hhebasto, @pwuille, @real_or_random, Russell O'Connor, @theStack, and all reviewers," added the developer.
What's new
- New module
musigimplements the MuSig2 multisignature scheme according to the BIP 327 specification. See:- Header file
include/secp256k1_musig.hwhich defines the new API. - Document
doc/musig.mdfor further notes on API usage. - Usage example
examples/musig.c.
- Header file
- New CMake variable
SECP256K1_APPEND_LDFLAGSfor appending linker flags to the build command. - 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_foocan now be forward-declared usingtypedef struct secp256k1_foo secp256k1_foo;(or alsostruct 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 the
secp256k1_scratch_spacestruct and its associated functionssecp256k1_scratch_space_createandsecp256k1_scratch_space_destroybecause the scratch space was unused in the API.