Skip to content

Latest commit

 

History

History
232 lines (153 loc) · 10.1 KB

CHANGELOG.md

File metadata and controls

232 lines (153 loc) · 10.1 KB

unreleased

  • 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