libsecp256k1 v0.4.0: New Ellswift Module

libsecp256k1 is an optimized C library for ECDSA signatures and secret/public key operations on curve secp256k1.

libsecp256k1 v0.4.0: New Ellswift Module
  • "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 including secp256k1.h.

GitHub Repo