rust-bitcoin-unsafe-fast/hashes
Andrew Poelstra 0f3532d1ac
Merge rust-bitcoin/rust-bitcoin#2786: hashes: Add regression tests
4446be6fc8 hashes: Add regression tests (Tobin C. Harding)

Pull request description:

  We have regression tests spread out throughout the `hashes` module but they are not labelled as such. To give us more confidence and help debug when patching the `hashes` crate we can add a bunch of regression tests in a single place.

  Add a module that does a single regression test for each type, simply hash some arbitrary data and check the hex display against a hard coded hex string.

ACKs for top commit:
  apoelstra:
    ACK 4446be6fc8 nice :)

Tree-SHA512: db643fdf799d23735934ad966ee66b40b3adb72db8f777112005f94d61ab4e382399a66e48d9fc9fdb0cd0abe17b3d4087fe6e6c494836d0c6fc713f4efc6413
2024-05-23 13:56:54 +00:00
..
contrib ci: shellcheck checks 2024-05-11 18:08:53 +00:00
embedded ci: shellcheck checks 2024-05-11 18:08:53 +00:00
extended_tests/schemars chore: format and standardize all markdowns files 2024-04-27 06:29:23 -03:00
src Removed //! spare line at end of headers 2024-05-22 12:00:25 +01:00
tests hashes: Add regression tests 2024-05-22 10:22:05 +10:00
CHANGELOG.md Document the sha256t_hash_newtype direction 2024-05-07 12:48:07 +10:00
Cargo.toml hashes: Bump version to v0.14.0 2024-03-22 06:04:40 +11:00
README.md chore: format and standardize all markdowns files 2024-04-27 06:29:23 -03:00

README.md

Bitcoin Hashes Library

This is a simple, no-dependency library which implements the hash functions needed by Bitcoin. These are SHA1, SHA256, SHA256d, SHA512, and RIPEMD160. As an ancillary thing, it exposes hexadecimal serialization and deserialization, since these are needed to display hashes anway.

Documentation

Minimum Supported Rust Version (MSRV)

This library should always compile with any combination of features on Rust 1.56.1.

Contributions

Contributions are welcome, including additional hash function implementations.

Githooks

To assist devs in catching errors before running CI we provide some githooks. If you do not already have locally configured githooks you can use the ones in this repository by running, in the root directory of the repository:

git config --local core.hooksPath githooks/

Alternatively add symlinks in your .git/hooks directory to any of the githooks we provide.

Running Benchmarks

We use a custom Rust compiler configuration conditional to guard the bench mark code. To run the bench marks use: RUSTFLAGS='--cfg=bench' cargo +nightly bench.