Crate hashes

Expand description

Rust hashes library.

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

Modules§

cmp
Useful comparison functions.
error
Crate error type.
hash160
HASH160 (SHA256 then RIPEMD160) implementation.
hex
Hex encoding and decoding.
hmac
Hash-based Message Authentication Code (HMAC).
ripemd160
RIPEMD160 implementation.
serde_macros
Macros for serde trait implementations, and supporting code.
sha1
SHA1 implementation.
sha256
SHA256 implementation.
sha512
SHA512 implementation.
sha256d
SHA256d implementation (double SHA256).
sha256t
SHA256t implementation (tagged SHA256).
siphash24
SipHash 2-4 implementation.

Macros§

borrow_slice_impl
Adds slicing traits implementations to a given type $ty
hash_newtype
Creates a new newtype around a Hash type.
hex_fmt_impl
Adds hexadecimal formatting implementation of a trait $imp to a given type $ty.
serde_impl
Implements Serialize and Deserialize for a type $t which represents a newtype over a byte-slice over length $len.
sha256t_hash_newtype
Macro used to define a newtype tagged hash. It creates two public types:

Structs§

Hmac
A hash computed from a RFC 2104 HMAC. Parameterized by the underlying hash function.
HmacEngine
Pair of underyling hash engines, used for the inner and outer hash of HMAC.

Enums§

Error
Crate error type.

Traits§

Hash
Trait which applies to hashes of all types.
HashEngine
A hashing engine which bytes can be serialized into.