The implementations of `ThirtyTwoByteHash` for types from the `hashes`
crate are problematic during upgrades because both `bitcoin` and
`secp256k1` depend on `hashes` and when the versions of `hashes` get
out of sync usage of the trait breaks.
Deprecate the `ThirtyTwoByteHash` trait and remove the impls for types
from `bitcoin_hashes`.
Add an explanation in the changelog because its too long to go in the
deprecation message.
645271dd74 Upgrade hashes dependency (Tobin C. Harding)
Pull request description:
Keep the range versioning but increase the threshold to include the latest `v0.14.0` release.
ACKs for top commit:
apoelstra:
ACK 645271dd74
Tree-SHA512: 46c93e4ad4077cc164e546fd9621f18ec34c2e110f9c763e8252d3ee92174e9efb5a20eea6169f62d5397fcbab5799dd8d9c88577bbf246e9aa4c2b2282c2266
2d0c7835f1 Tighten the version grep in vendor script (Tobin C. Harding)
a2b78f4022 Bump MSRV to 1.56.1 (Tobin C. Harding)
Pull request description:
As we have done in other parts of the ecosystem bump the MSRV to Rust `v1.56.1`.
Done for `secp256k1` and `secp256k1-sys`.
This was originally in #688 but there are too many things going on so here it is separately.
ACKs for top commit:
apoelstra:
ACK 2d0c7835f1
Tree-SHA512: 35ac5632428211b02f5b25780c3a680d8c9a68b238de7299242510091f9243fe2f6718817c865c3420e3afb64b32d52daf2cf372706067204e7de42e188c31c6
We just added `rust-version = ` to the `secp256k1-sys` manifest, doing
so causes a grep statement from the vendor script to match this line -
we don't want that.
Tighten up the grep statement by only matching on `version` at the start
of the line.
0da394e648 Remove wildcard re-exports of key types (Tobin C. Harding)
d63e95b99b Remove wildcard re-exports of context types (Tobin C. Harding)
Pull request description:
Wildcards make it hard to grep for where stuff comes from, explicit imports and re-exports are ... more explicit.
- Patch 1: Re-export the `context` types explicitly.
- Patch 2: Re-export the `key` types explicitly.
Fix: #681
ACKs for top commit:
apoelstra:
ACK 0da394e648
Tree-SHA512: ac92baa9b9abaaff436223bf1d18d286825dbfc8eef401c714314902ff471db4830dce360138845efd781bcb883676d0cbc3db8d691476403eb487a0585edeaa
7b6a13b004 CI: Revert cc pin in ASAN job (Tobin C. Harding)
Pull request description:
Revert commit: 92778efe92
We can't use git to revert it because the code has now moved from `test.sh` to `_test.sh`.
I don't remember the problem but lets just use CI to see if its fixed.
ACKs for top commit:
sanket1729:
utACK 7b6a13b004
apoelstra:
ACK 7b6a13b004
Tree-SHA512: d804c73152b3d8b14e8f13e64066c33e2dfbdef8b184d55672638df6b468a6f636e632c5e1a0b09e617534aaf466b1c719c6df16952aaf8a51cb2659bed1d0ef
65d54e7bbe Add script to update-lock-files (Tobin C. Harding)
c61db1b44f CI: Check for API changes (Tobin C. Harding)
53d34d5ee0 Update the API files (Tobin C. Harding)
c3f2c59db1 just: Add a command to check for API changes (Tobin C. Harding)
1e22d74270 Add a justfile (Tobin C. Harding)
Pull request description:
This PR is not just CI, it does a few clean up chores:
- Add a `justfile` (including command to check the API)
- Update the API files
- Add a script to update the lock files
ACKs for top commit:
apoelstra:
ACK 65d54e7bbe
Tree-SHA512: c799200dc761cb4367904346024834caf52e9a549aed5741263429d0bd297858c5293bfdb4bdf83fffb063060f7f251c9c1956659bd50867b09fafddb3c54880
Wildcards make it hard to grep for where stuff comes from, explicit
imports and re-exports are ... more explicit.
Re-export the `key` types explicitly.
Wildcards make it hard to grep for where stuff comes from, explicit
imports and re-exports are ... more explicit.
Import and re-export explicitly instead of by using wildcards.
Revert commit: 92778efe92
We can't use git to revert it because the code has now moved from
`test.sh` to `_test.sh`.
I don't remember the problem but lets just use CI to see if its fixed.
The `just` command makes scripts and commands discoverable for new devs
and old devs alike when switching between repos.
Add a justfile copied from bitcoin with changes as required.
873ad47343 Allow dead_code on AlignedType (Tobin C. Harding)
Pull request description:
We use the `AlignedType` and take a pointer to its inner data, never access the data directly - this confuses clippy causing a "field is never used" warning.
Shoosh the lint and add a code comment explaining why.
ACKs for top commit:
apoelstra:
ACK 873ad47343
Tree-SHA512: 2a383aed169edf247def5c291bc2d8177cc09412b82bb47bb514e0929ae89d689102e646dcbbffc6fd4caa1ce1430420a63c7ceb3428ad9b05230a93b7f14d16
We use the `AlignedType` and take a pointer to its inner data, never
access the data directly - this confuses clippy causing a "field is
never used" warning.
Shoosh the lint and add a code comment explaining why.
1a162faf40 bump version to 0.28.2 (Andrew Poelstra)
Pull request description:
Minor version which just adds some methods to various types.
ACKs for top commit:
Kixunil:
ACK 1a162faf40
Tree-SHA512: d93b1abc04d6165bf121f9385683178ada0103501a3de198772b992e2c01e8d9e742f7cd111fdaef825be4fd989d01b6928f2dece4fd78e286798ee905ce9e42
7fe89c488b Add byte accessors to `ElligatorSwiftSharedSecret` (Martin Habovstiak)
Pull request description:
The inner bytes of `ElligatorSwiftSharedSecret` were almost inaccessible making the type almost useless, so this commit adds methods to access inner bytes.
Closes#675
ACKs for top commit:
apoelstra:
ACK 7fe89c488b
Tree-SHA512: 5ec457401c83423b180f7a6f28048f93040c39129050707b981d1c113e3daa85a37b3f848e61cd3230cc26db4a783e561b77e09b766fd8193d8f7bf187214091
The inner bytes of `ElligatorSwiftSharedSecret` were almost inaccessible
making the type almost useless, so this commit adds methods to access
inner bytes.
Closes#675
dbc546596f Impl Ord and PartialOrd for RecoverableSignature (benthecarman)
Pull request description:
ACKs for top commit:
apoelstra:
ACK dbc546596f oops, sorry!
Tree-SHA512: decda6b6e7a4929147f5ca00cb2802037c6a297aa816c253e181f1a85ec9e46958469b9d481e2b4aba2c6d86def80bba33a62c507459d82c86cfed4271a23eea
f87dc91151 Derive Hash for Scalar (Jiri Jakes)
Pull request description:
Unless there is some safety concern I cannot see, having Scalar implementing Hash would be useful.
ACKs for top commit:
Kixunil:
ACK f87dc91151
apoelstra:
ACK f87dc91151
Tree-SHA512: 276670a3d938fade3828123547b01e38b1a3c56775fb3c545d2c392622de808cf2bf8125925c7896ee27bacd5897d88908384d8c157dc8ec7d605781475964fd
0ed5a55829 release 0.28.1 (Andrew Poelstra)
Pull request description:
We need a new rust-secp release to deal with the new rust-secp-sys release.
ACKs for top commit:
sanket1729:
utACK 0ed5a55829
Kixunil:
ACK 0ed5a55829
Tree-SHA512: 6d54acce52acc03d09272a20242e9a086783e471153d77d10f21bf8924595d43717fd85e8aa4a9b7075c93a04ad88404377e06ca5200b1c9b45c08c01d6f77a8
c1ccda18b6 secp256k1-sys: Bump version to 0.9.1 (Tobin C. Harding)
Pull request description:
In preparation for doing a point release add a changelog entry, bump the version, and update all the `0_9_0` identifiers in the vendored code.
Done so we can release the wasm-build bug fix.
Fix: #667
ACKs for top commit:
apoelstra:
ACK c1ccda18b6
Tree-SHA512: 4fda58bd2d97b73280c00f06109d4ecf913e87ecbd1e31465efe94b96589c819ffda0ae5c622428f0a7f2e09ec45033a0e683dfd954cf06369aac6b9369471c1
In preparation for doing a point release add a changelog entry, bump the
version, and update all the `0_9_0` identifiers in the vendored code.
Done so we can release the wasm-build bug fix.
7a0c60edcd secp256k1-sys: patch out checked_malloc (Andrew Poelstra)
942a0e5e2c build.rs: patch out any calls to `printf` (Andrew Poelstra)
51dab7ac04 vendor-libsecp: remove util.h patch (Andrew Poelstra)
Pull request description:
Rather than using a new patchfile, just `#define` it away. Also includes a commit which removes one of the existing patchfiles, which I discovered was out of date while auditing the others to see if they could be replaced by `#define`s. (No, they cannot.)
Fixes#660
ACKs for top commit:
tcharding:
AFAICT this is right to go, ACK 7a0c60edcd
Kixunil:
ACK 7a0c60edcd
Tree-SHA512: 83ba70b000919fb8a929804c9d5929a9929b80515f0594925d3789ef896889d3c909f9fa920bac45470611607b84f509723544fa442ff1a51eefba0de75bf68f
458712212d Improve code comments (Tobin C. Harding)
Pull request description:
These comments say what the code is doing, they add no value.
ACKs for top commit:
Kixunil:
ACK 458712212d
apoelstra:
ACK 458712212d
Tree-SHA512: 0f31d36d7dfbde5bf32d622c3ba1845d5c6989c3eff0e520b77eeee595453299551172331851176e50aef4f78eacb7033c0ff798077e44e1c63313013b073f0b
dd6bf7c10d Fix unit test import statements (Tobin C. Harding)
Pull request description:
In `lib.rs` unit tests we are getting build warnings because of how we are importing things, just import with `super::*` unconditionally and be done with it.
This patch is the only good one out of #661.
ACKs for top commit:
apoelstra:
ACK dd6bf7c10d
Kixunil:
ACK dd6bf7c10d
Tree-SHA512: 3970f4c1374ec6de4798bfb52b561e9ac4611ec3a3885edc79639566f777e1fbb502cb36fa7abd015f3fd4a9ca4b6a4931b4ecb2e629e967b4e49391db97a97f
This patch adds a declaration of the `ecdsa_parse_compact` function to
util.h. This function isn't called from within libsecp proper; it is
called in lax_der_parse.c (which we patch separately with a declaration)
and in example code (which we don't compile at all).
In `lib.rs` unit tests we are getting build warnings because of how we
are importing things, just import with `super::*` unconditionally and be
done with it.