From 20ba84c2f54582dedc79e2387f33d764fb81dc8c Mon Sep 17 00:00:00 2001 From: rustaceanrob Date: Thu, 14 Aug 2025 08:40:31 +0100 Subject: [PATCH] Update `hashes` to `0.16.0` The `0.15.0` was a massive release for `hashes` in terms of API clean up and also adding new HKDF support. ElligatorSwift in combination with HKDF are the primitives required for encrypted message passing on bitcoin, so exporting these in tandum would save an additional `hashes` dependency. I skip to `0.16.0` because `hashes` allows for `hex-conservative` as an optional dependency, and no listed changes elsewhere. --- Cargo-minimal.lock | 21 +++++++++++++++------ Cargo-recent.lock | 21 +++++++++++++++------ Cargo.toml | 2 +- examples/sign_verify.rs | 2 +- examples/sign_verify_recovery.rs | 2 +- src/secret.rs | 4 ++-- 6 files changed, 35 insertions(+), 17 deletions(-) diff --git a/Cargo-minimal.lock b/Cargo-minimal.lock index 43c294268..a7b2d98a2 100644 --- a/Cargo-minimal.lock +++ b/Cargo-minimal.lock @@ -23,17 +23,26 @@ dependencies = [ "serde", ] +[[package]] +name = "bitcoin-internals" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b854212e29b96c8f0fe04cab11d57586c8f3257de0d146c76cb3b42b3eb9118" + [[package]] name = "bitcoin-io" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "340e09e8399c7bd8912f495af6aa58bea0c9214773417ffaa8f6460f93aaee56" +checksum = "26792cd2bf245069a1c5acb06aa7ad7abe1de69b507c90b490bca81e0665d0ee" +dependencies = [ + "bitcoin-internals", +] [[package]] name = "bitcoin_hashes" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +checksum = "7e5d09f16329cd545d7e6008b2c6b2af3a90bc678cf41ac3d2f6755943301b16" dependencies = [ "bitcoin-io", "hex-conservative", @@ -107,9 +116,9 @@ checksum = "ee6c0438de3ca4d8cac2eec62b228e2f8865cfe9ebefea720406774223fa2d2e" [[package]] name = "hex-conservative" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +checksum = "4afe881d0527571892c4034822e59bb10c6c991cce6abe8199b6f5cf10766f55" dependencies = [ "arrayvec", ] diff --git a/Cargo-recent.lock b/Cargo-recent.lock index ffdc4af39..3a6e14db9 100644 --- a/Cargo-recent.lock +++ b/Cargo-recent.lock @@ -23,17 +23,26 @@ dependencies = [ "serde", ] +[[package]] +name = "bitcoin-internals" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b854212e29b96c8f0fe04cab11d57586c8f3257de0d146c76cb3b42b3eb9118" + [[package]] name = "bitcoin-io" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "340e09e8399c7bd8912f495af6aa58bea0c9214773417ffaa8f6460f93aaee56" +checksum = "26792cd2bf245069a1c5acb06aa7ad7abe1de69b507c90b490bca81e0665d0ee" +dependencies = [ + "bitcoin-internals", +] [[package]] name = "bitcoin_hashes" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +checksum = "7e5d09f16329cd545d7e6008b2c6b2af3a90bc678cf41ac3d2f6755943301b16" dependencies = [ "bitcoin-io", "hex-conservative", @@ -101,9 +110,9 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" [[package]] name = "hex-conservative" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +checksum = "4afe881d0527571892c4034822e59bb10c6c991cce6abe8199b6f5cf10766f55" dependencies = [ "arrayvec", ] diff --git a/Cargo.toml b/Cargo.toml index 948a5769d..99093bd25 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,7 +38,7 @@ arbitrary = ["dep:arbitrary"] secp256k1-sys = { version = "0.11.0", default-features = false, path = "./secp256k1-sys" } arbitrary = { version = "1.4", optional = true } -hashes = { package = "bitcoin_hashes", version = "0.14", default-features = false, optional = true } +hashes = { package = "bitcoin_hashes", version = "0.16", default-features = false, optional = true } rand = { version = "0.9", default-features = false, optional = true } serde = { version = "1.0.103", default-features = false, optional = true } diff --git a/examples/sign_verify.rs b/examples/sign_verify.rs index 983646672..db0fdd3fa 100644 --- a/examples/sign_verify.rs +++ b/examples/sign_verify.rs @@ -1,7 +1,7 @@ extern crate hashes; extern crate secp256k1; -use hashes::{sha256, Hash}; +use hashes::sha256; use secp256k1::{ecdsa, Error, Message, PublicKey, Secp256k1, SecretKey, Signing, Verification}; fn verify( diff --git a/examples/sign_verify_recovery.rs b/examples/sign_verify_recovery.rs index 78cbbd54e..dedc24ca4 100644 --- a/examples/sign_verify_recovery.rs +++ b/examples/sign_verify_recovery.rs @@ -1,7 +1,7 @@ extern crate hashes; extern crate secp256k1; -use hashes::{sha256, Hash}; +use hashes::sha256; use secp256k1::{ecdsa, Error, Message, PublicKey, Secp256k1, SecretKey, Signing, Verification}; fn recover( diff --git a/src/secret.rs b/src/secret.rs index f5fc1060d..293c74d52 100644 --- a/src/secret.rs +++ b/src/secret.rs @@ -14,7 +14,7 @@ macro_rules! impl_display_secret { #[cfg(feature = "hashes")] impl ::core::fmt::Debug for $thing { fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - use hashes::{sha256, Hash, HashEngine}; + use hashes::{sha256, HashEngine}; let tag = "rust-secp256k1DEBUG"; @@ -25,7 +25,7 @@ macro_rules! impl_display_secret { engine.input(&self.secret_bytes()); let hash = sha256::Hash::from_engine(engine); - f.debug_tuple(stringify!($thing)).field(&format_args!("#{:.16}", hash)).finish() + f.debug_tuple(stringify!($thing)).field(&format_args!("{:?}", hash)).finish() } }