Skip to content

Latest commit

 

History

History
259 lines (179 loc) · 12.9 KB

CHANGELOG.md

File metadata and controls

259 lines (179 loc) · 12.9 KB

0.15.0 - 2024-10-16

This release is massive. The biggest visable changes are to the Hash trait, which has mostly been replaced by inherent functions. You should not need to import it at all anymore for normal usage. Check out how we are using hashes in rust-bitcoin to see an example. Enjoy!

  • Remove the util and serde_macros modules and roll all code into new public macros module #3299

  • Remove SliceIndex implementation from hash types #3296

  • Rename Midstate::into_parts to Midstate::to_parts since it derives Copy #3429

  • Remove schemars support #3395

  • Deprecate from_slice methods in favor of arrays #3301

  • Rename length field to bytes_hashed #3298

  • Enforce that Hash::Bytes is an array #3257

  • Siphash24 cleanup #3222

  • Reduce API surface of tagged wrapped hash types #3184

  • Rename const_hash functions to hash_unoptimized #3129

  • Remove io feature (use bitcoin-io dependency directly) #3128

  • Rename Siphash::as_u64 to Siphash::to_u64 #3119

  • Push up the Default bound on HashEngine in order to better support keyed hash functions #3113

  • Add a new hash_reader function #3077

  • Add length field to sha256::Midstate #3010

  • Remove midstate from the GeneralHash and HashEngine traits #3009

  • Add additional HashEngine types #2988

  • Remove to/from/as_raw_hash functions #2981

  • Split Hash trait into GeneralHash and Hash #2910

  • Remove all_zeros and constify constructors #2877

  • Add inherent functions to hashes (reduces need to import Hash) #2852

  • Add HKDF support #2644

  • Bump MSRV to Rust version 1.63.0 #3100

  • Change the default display direction of for tagged hashes to forwards #2707

    Note please this usage if you need to display backward:

  sha256t_hash_newtype! {
    /// Test detailed explanation.
    struct NewTypeTag = hash_str("tag");

    /// A test hash.
    #[hash_newtype(backward)]
    struct NewTypeHash(_);
  }

0.14.0 - 2024-03-21

  • Bump MSRV to Rust version 1.56.1 #2188

API improvemnts

  • Add support for SHA384 #2538
  • Make from_hex inherent for byte-like types #2491
  • Add Hash::from_bytes_iter to construct hashes from iterators #2272
  • Make some constructors const #2446

Features/dependencies changes

  • Removed core2 dependency in favour of the new bitcoin-io crate #2066
  • Remove "serde-std" #2384

Error handling improvements

  • Improve leaf errors #2530
  • Implement From<Infallible> for errors #2516

0.13.0 - 2023-06-29

The main improvement in this version is removal of the hex module in favour of the new hex-conservative crate (which we wrote). We also bumped the Minimum Supported Rust Version across the rust-bitcoin ecosystem to v1.48

  • Bump MSRV to 1.48.0 #1729.
  • Depend on new hex-conservative crate and remove hex module #1883.
  • Make sha256t_hash_newtype! evocative of the output #1773.
  • Implement computing SHA256 in const context #1769.
  • Add from_bytes_ref and from_bytes_mut to all hash types #1761.
  • Rename crate::Error to crate::FromSliceError #1873.
  • Add simd sha256 intrinsics for x86 machines #1962.
  • Introduce the "small-hash" feature for bitcoin_hashes #1990.

0.12.0 - 2023-03-05

0.12 is a significant release. We pulled the repository into the rust-bitcoin repo to improve our integration testing and to get more eyes on this crate. We began the process of replacing the hex functionality in this crate with a more performant, dedicated crate, and otherwise cleaning up the API as we look forward to 1.0.

0.11.0 - 2022-06-25

The major change in this version is the increase of the Minimum Supported Rust Version (MSRV) from 1.29 to 1.41.1. This is a big change because it introduces Rust Edition 2018 to the codebase along with all the benefits that brings. We also did a bunch of optimisations to speed up encoding and decoding hex strings.

Breaking changes

New features/APIs

Other improvements

0.10.0 - 2021-07-05

  • Increase core2 to released version of 0.3.0

0.9.7 - 2021-06-17

  • Introduce alloc feature and core2 dependency for nostd support (this feature has MSRV of 1.36 rather than 1.29)

0.9.6 - 2021-05-03

  • Re-export core as _export::_core. This resolves an issue when calling several exported macros with the std feature.

0.9.5 - 2021-04-28

Note that we have stopped re-exporting the core crate when compiling without std. This is technically a breaking change but it is hard to imagine what user might be affected.

0.9.4 - 2020-10-23

  • Add Hmac::from_inner_engines

0.9.3 - 2020-10-19

  • More serde macro fixes

0.9.2 - 2020-10-18

  • Fix rustc 1.29.0 downstream issues with serde macros

0.9.2 - 2020-10-16

  • Fix visibility issue with serde macros

0.9.1 - 2020-10-07

  • Add FromStr impl to sha256t::Hash
  • Fix Hash::engine() implementation for hash newtypes
  • Add sha256t_hash_newtype! macro for creating tagged hashes

0.9.0 - 2020-08-27

  • Update MSRV to 1.29.0

0.8.0 - 2020-08-26

  • Add as_inner method to Hash trait
  • Add n_bytes_hashed to HashEngine trait

0.7.6 - 2020-04-05

  • Support hash newtypes with reversed hex serialization.

0.7.5 - 2020-04-02

  • Add sha256t module for SHA-256-based tagged hashes.
  • Add FromStr for hash newtypes.
  • Add from_hash for hash newtypes.

0.7.3 - 2019-12-18

  • Add as_hash(&self) -> <inner> method to hash newtypes.

0.7.2 - 2019-11-29

  • Make the inner variable of sha256::Midstat public
  • Drop the byteorder dependency in favor of manual endianness implementations (later this will be in stdlib so we can drop even that)
  • Fix the hash_newtype macro, which did not compile before

0.7.1 - 2019-08-14

  • Add hash_newtype macro that allows third parties to create newtype structs.

0.7.0 - 2019-07-19

  • Add hex::Error type for errors generated by the hex module.

0.6.0 - 2019-07-10

  • Add no_std support, rearrange traits to not depend on io::Write

0.5.0 - 2019-06-28

  • Fix panic when parsing hashes that contain multibyte characters
  • Add FromStr to all hashes which hex-parses them

0.4.0 - 2019-06-23

0.3.2 - 2019-03-20

0.3.1 - 2019-03-04

0.3.0 - 2019-01-23

  • Bump minimum required rustc version to 1.22.0
  • Fixed serde deserialization into owned string that previously caused panics when doing round-trip (de)serialization
  • HashEngine::block_size() and Hash::len() are now associated constants HashEngine::BLOCK_SIZE and Hash::LEN
  • Removed block_size() method from Hash trait. It is still available as <T as Hash>::Engine::BLOCK_SIZE

0.2.0 - 2019-01-15

  • Add a constant-time comparison function
  • Simplify io::Write::write implementations by having them do only partial writes
  • Add fuzzing support
  • Allow Hashes to be borrowed as [u8]
  • Replace public Hash inners with into_inner method

0.1.0 - 2018-12-08

  • Initial release