libsecp256k1 v0.4.0: New Ellswift Module
libsecp256k1 is an optimized C library for ECDSA signatures and secret/public key operations on curve secp256k1.
- "This release adds a new ellswift module that implements ElligatorSwift encoding for public keys and x-only Diffie-Hellman key exchange for them."
What's new
Added
- New module
ellswift
implements ElligatorSwift encoding for public keys and x-only Diffie-Hellman key exchange for them. ElligatorSwift permits representing secp256k1 public keys as 64-byte arrays which cannot be distinguished from uniformly random. See: - Header file
include/secp256k1_ellswift.h
which defines the new API. - Document
doc/ellswift.md
which explains the mathematical background of the scheme. - The paper on which the scheme is based.
- We now test the library with unreleased development snapshots of GCC and Clang. This gives us an early chance to catch miscompilations and constant-time issues introduced by the compiler (such as those that led to the previous two releases).
Fixed
- Fixed symbol visibility in Windows DLL builds, where three internal library symbols were wrongly exported.
Changed
- When consuming libsecp256k1 as a static library on Windows, the user must now define the
SECP256K1_STATIC
macro before includingsecp256k1.h
.