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
musig
module, adds a significantly more robust method to clear secrets from the stack, and removes the unusedsecp256k1_scratch_space
functions.
"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
musig
implements the MuSig2 multisignature scheme according to the BIP 327 specification. 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
.
- Header file
- New CMake variable
SECP256K1_APPEND_LDFLAGS
for 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_foo
can 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_space
struct and its associated functionssecp256k1_scratch_space_create
andsecp256k1_scratch_space_destroy
because the scratch space was unused in the API.