You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge bitcoin/bitcoin#27230: Update src/secp256k1 subtree to upstream release v0.3.0
763079a Squashed 'src/secp256k1/' changes from 21ffe4b22a9..bdf39000b9c (Pieter Wuille)
Pull request description:
This updates the libsecp256k1 subtree to [v0.3.0](https://github.com/bitcoin-core/secp256k1/releases/tag/v0.3.0). I don't believe there are code changes that are particularly important to Bitcoin Core, apart from the added CMake build system support.
ACKs for top commit:
jonasnick:
ACK e5c7fcb
fanquake:
ACK e5c7fcb
Tree-SHA512: eda42e44d6d4ae43e9fab8a15854e41c8d9e14b645945039dbc35402bec501d73caa5d293264bd03ec6a7fe4919b9a725560f1831a58a6364dc6edaf259145a0
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
3
+
All notable changes to this project will be documented in this file.
4
+
5
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
4
7
5
8
## [Unreleased]
6
9
10
+
## [0.3.0] - 2023-03-08
11
+
12
+
#### Added
13
+
- Added experimental support for CMake builds. Traditional GNU Autotools builds (`./configure` and `make`) remain fully supported.
14
+
- Usage examples: Added a recommended method for securely clearing sensitive data, e.g., secret keys, from memory.
15
+
- Tests: Added a new test binary `noverify_tests`. This binary runs the tests without some additional checks present in the ordinary `tests` binary and is thereby closer to production binaries. The `noverify_tests` binary is automatically run as part of the `make check` target.
16
+
17
+
#### Fixed
18
+
- Fixed declarations of API variables for MSVC (`__declspec(dllimport)`). This fixes MSVC builds of programs which link against a libsecp256k1 DLL dynamically and use API variables (and not only API functions). Unfortunately, the MSVC linker now will emit warning `LNK4217` when trying to link against libsecp256k1 statically. Pass `/ignore:4217` to the linker to suppress this warning.
19
+
20
+
#### Changed
21
+
- Forbade cloning or destroying `secp256k1_context_static`. Create a new context instead of cloning the static context. (If this change breaks your code, your code is probably wrong.)
22
+
- Forbade randomizing (copies of) `secp256k1_context_static`. Randomizing a copy of `secp256k1_context_static` did not have any effect and did not provide defense-in-depth protection against side-channel attacks. Create a new context if you want to benefit from randomization.
23
+
24
+
#### Removed
25
+
- Removed the configuration header `src/libsecp256k1-config.h`. We recommend passing flags to `./configure` or `cmake` to set configuration options (see `./configure --help` or `cmake -LH`). If you cannot or do not want to use one of the supported build systems, pass configuration flags such as `-DSECP256K1_ENABLE_MODULE_SCHNORRSIG` manually to the compiler (see the file `configure.ac` for supported flags).
26
+
27
+
#### ABI Compatibility
28
+
29
+
Due to changes in the API regarding `secp256k1_context_static` described above, the ABI is *not* compatible with previous versions.
30
+
7
31
## [0.2.0] - 2022-12-12
8
32
9
-
### Added
33
+
#### Added
34
+
- Added usage examples for common use cases in a new `examples/` directory.
10
35
- Added `secp256k1_selftest`, to be used in conjunction with `secp256k1_context_static`.
36
+
- Added support for 128-bit wide multiplication on MSVC for x86_64 and arm64, giving roughly a 20% speedup on those platforms.
11
37
12
-
### Changed
13
-
- Enabled modules schnorrsig, extrakeys and ECDH by default in `./configure`.
38
+
#### Changed
39
+
- Enabled modules `schnorrsig`, `extrakeys` and `ecdh` by default in `./configure`.
40
+
- The `secp256k1_nonce_function_rfc6979` nonce function, used by default by `secp256k1_ecdsa_sign`, now reduces the message hash modulo the group order to match the specification. This only affects improper use of ECDSA signing API.
14
41
15
-
### Deprecated
42
+
####Deprecated
16
43
- Deprecated context flags `SECP256K1_CONTEXT_VERIFY` and `SECP256K1_CONTEXT_SIGN`. Use `SECP256K1_CONTEXT_NONE` instead.
17
44
- Renamed `secp256k1_context_no_precomp` to `secp256k1_context_static`.
45
+
- Module `schnorrsig`: renamed `secp256k1_schnorrsig_sign` to `secp256k1_schnorrsig_sign32`.
18
46
19
-
### ABI Compatibility
47
+
####ABI Compatibility
20
48
21
49
Since this is the first release, we do not compare application binary interfaces.
22
-
However, there are unreleased versions of libsecp256k1 that are *not* ABI compatible with this version.
50
+
However, there are earlier unreleased versions of libsecp256k1 that are *not* ABI compatible with this version.
23
51
24
52
## [0.1.0] - 2013-03-05 to 2021-12-25
25
53
26
54
This version was in fact never released.
27
55
The number was given by the build system since the introduction of autotools in Jan 2014 (ea0fe5a5bf0c04f9cc955b2966b614f5f378c6f6).
28
56
Therefore, this version number does not uniquely identify a set of source files.
0 commit comments