Skip to content

Commit 199d27c

Browse files
committed
Merge #1415: release: Prepare for 0.4.0
1633980 release: Prepare for 0.4.0 (Tim Ruffing) d9a8506 changelog: Catch up in preparation of release (Tim Ruffing) Pull request description: ACKs for top commit: hebasto: re-ACK 1633980. sipa: ACK 1633980 jonasnick: ACK 1633980 Tree-SHA512: 9b29edc8beece44cb8456de9844bf22e13f41b43bb5567b3f37dcbdcb7cd5ca6a976a0f805973ddfa7666509aa452247a4d8297e3cfb362acaf4f0fa942daa21
2 parents 0b4640a + 1633980 commit 199d27c

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

CHANGELOG.md

+10-2
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,25 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [Unreleased]
8+
## [0.4.0] - 2023-09-04
99

1010
#### Added
1111
- New module `ellswift` implements ElligatorSwift encoding for public keys and x-only Diffie-Hellman key exchange for them.
1212
ElligatorSwift permits representing secp256k1 public keys as 64-byte arrays which cannot be distinguished from uniformly random. See:
1313
- Header file `include/secp256k1_ellswift.h` which defines the new API.
1414
- Document `doc/ellswift.md` which explains the mathematical background of the scheme.
1515
- The [paper](https://eprint.iacr.org/2022/759) on which the scheme is based.
16+
- 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).
17+
18+
#### Fixed
19+
- Fixed symbol visibility in Windows DLL builds, where three internal library symbols were wrongly exported.
1620

1721
#### Changed
1822
- When consuming libsecp256k1 as a static library on Windows, the user must now define the `SECP256K1_STATIC` macro before including `secp256k1.h`.
1923

24+
#### ABI Compatibility
25+
This release is backward compatible with the ABI of 0.3.0, 0.3.1, and 0.3.2. Symbol visibility is now believed to be handled properly on supported platforms and is now considered to be part of the ABI. Please report any improperly exported symbols as a bug.
26+
2027
## [0.3.2] - 2023-05-13
2128
We strongly recommend updating to 0.3.2 if you use or plan to use GCC >=13 to compile libsecp256k1. When in doubt, check the GCC version using `gcc -v`.
2229

@@ -97,7 +104,8 @@ This version was in fact never released.
97104
The number was given by the build system since the introduction of autotools in Jan 2014 (ea0fe5a5bf0c04f9cc955b2966b614f5f378c6f6).
98105
Therefore, this version number does not uniquely identify a set of source files.
99106

100-
[unreleased]: https://github.com/bitcoin-core/secp256k1/compare/v0.3.2...HEAD
107+
[unreleased]: https://github.com/bitcoin-core/secp256k1/compare/v0.4.0...HEAD
108+
[0.4.0]: https://github.com/bitcoin-core/secp256k1/compare/v0.3.2...v0.4.0
101109
[0.3.2]: https://github.com/bitcoin-core/secp256k1/compare/v0.3.1...v0.3.2
102110
[0.3.1]: https://github.com/bitcoin-core/secp256k1/compare/v0.3.0...v0.3.1
103111
[0.3.0]: https://github.com/bitcoin-core/secp256k1/compare/v0.2.0...v0.3.0

CMakeLists.txt

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ project(libsecp256k1
1111
# The package (a.k.a. release) version is based on semantic versioning 2.0.0 of
1212
# the API. All changes in experimental modules are treated as
1313
# backwards-compatible and therefore at most increase the minor version.
14-
VERSION 0.3.3
14+
VERSION 0.4.0
1515
DESCRIPTION "Optimized C library for ECDSA signatures and secret/public key operations on curve secp256k1."
1616
HOMEPAGE_URL "https://github.com/bitcoin-core/secp256k1"
1717
LANGUAGES C
@@ -34,9 +34,9 @@ endif()
3434
# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
3535
# All changes in experimental modules are treated as if they don't affect the
3636
# interface and therefore only increase the revision.
37-
set(${PROJECT_NAME}_LIB_VERSION_CURRENT 2)
38-
set(${PROJECT_NAME}_LIB_VERSION_REVISION 3)
39-
set(${PROJECT_NAME}_LIB_VERSION_AGE 0)
37+
set(${PROJECT_NAME}_LIB_VERSION_CURRENT 3)
38+
set(${PROJECT_NAME}_LIB_VERSION_REVISION 0)
39+
set(${PROJECT_NAME}_LIB_VERSION_AGE 1)
4040

4141
set(CMAKE_C_STANDARD 90)
4242
set(CMAKE_C_EXTENSIONS OFF)

configure.ac

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ AC_PREREQ([2.60])
44
# the API. All changes in experimental modules are treated as
55
# backwards-compatible and therefore at most increase the minor version.
66
define(_PKG_VERSION_MAJOR, 0)
7-
define(_PKG_VERSION_MINOR, 3)
8-
define(_PKG_VERSION_PATCH, 3)
9-
define(_PKG_VERSION_IS_RELEASE, false)
7+
define(_PKG_VERSION_MINOR, 4)
8+
define(_PKG_VERSION_PATCH, 0)
9+
define(_PKG_VERSION_IS_RELEASE, true)
1010

1111
# The library version is based on libtool versioning of the ABI. The set of
1212
# rules for updating the version can be found here:
1313
# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
1414
# All changes in experimental modules are treated as if they don't affect the
1515
# interface and therefore only increase the revision.
16-
define(_LIB_VERSION_CURRENT, 2)
17-
define(_LIB_VERSION_REVISION, 3)
18-
define(_LIB_VERSION_AGE, 0)
16+
define(_LIB_VERSION_CURRENT, 3)
17+
define(_LIB_VERSION_REVISION, 0)
18+
define(_LIB_VERSION_AGE, 1)
1919

2020
AC_INIT([libsecp256k1],m4_join([.], _PKG_VERSION_MAJOR, _PKG_VERSION_MINOR, _PKG_VERSION_PATCH)m4_if(_PKG_VERSION_IS_RELEASE, [true], [], [-dev]),[https://github.com/bitcoin-core/secp256k1/issues],[libsecp256k1],[https://github.com/bitcoin-core/secp256k1])
2121

0 commit comments

Comments
 (0)