8.7 KiB
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 removehex
module #1883. - Convert enum
crate::Error
to structcrate::FromSliceError
. - Make
sha256t_hash_newtype!
evocative of the output #1773. - Implement computing SHA256 in const context #1769.
- Add
from_bytes_ref
andfrom_bytes_mut
to all hash types #1761. - Rename
crate::Error
tocrate::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.
- Remove
FromHex
implementation from all hashes and implementFromStr
instead. - Move crate from original repo to the
rust-bitcoin
repository. Commit history was lost during move, for commit history see the original repository. Tip of bitcoin_hashes:master at time of import: 54c16249e06cc6b7870c7fc07d90f489d82647c7 - Remove
Deref
impls for all hashes - Add
AsRef
impls for all hashes from fixed-size arrays - Add the
sha512_256
hash - Remove the
ToHex
trait in favor ofDisplayHex
andfmt::Display
- Remove the now-unused
HexWriter
object - nostd:
alloc
feature no longer enablescore2
- Rewrite
hash_newtype
macro with new syntax - Rename
Hash::Inner
toHash::Bytes
, 'Hash::*_inner` and several related conversion methods
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
- Add
all_zeros
toHash
trait - Implement
Write
onHmacEngine
- Introduce
HexWriter
, makes serialising hex faster - Implement
Read
onHexIterator
, makes deserialising hex faster
Other improvements
- Use
rotate_left
instead of custom macro - Enable clippy on CI
- Various docs fixes
- Improve feature test coverage
- Add a disabled
rustfmt.toml
to improve interaction with auto-formatting in editors
0.10.0 - 2021-07-05
- Increase
core2
to released version of 0.3.0
0.9.7 - 2021-06-17
- Introduce
alloc
feature andcore2
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 thestd
feature.
0.9.5 - 2021-04-28
- Add
#[repr(transparent)]
to all newtype wrappers - Add missing
#derive
s - Replace
fuzztarget
feature with use ofcfg(fuzzing)
- Use
core
rather thanstd
and fixno_std
compilation
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 tosha256t::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 toHash
trait - Add
n_bytes_hashed
toHashEngine
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 thehex
module.
0.6.0 - 2019-07-10
- Add
no_std
support, rearrange traits to not depend onio::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
- Add
from_inner
method to all hashes - Update
FromHex
trait to requirefrom_byte_iter
method rather thanfrom_hex
be implemented - Make
Hmac
midstate an actual HMAC midstate - Allow
Display
of truncated hashes - Require using a constructor for
HexIterator
and then clean up the internals - Strongly type
sha256::Midstate
to allow independent serialization - Add siphash24 module
0.3.2 - 2019-03-20
- Implement the
FromHex
trait on many more types
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()
andHash::len()
are now associated constantsHashEngine::BLOCK_SIZE
andHash::LEN
- Removed
block_size()
method fromHash
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
Hash
es to be borrowed as[u8]
- Replace public
Hash
inners withinto_inner
method
0.1.0 - 2018-12-08
- Initial release