Crate eth2_hashing[−][src]
Expand description
Optimized SHA256 for use in Ethereum 2.0.
The initial purpose of this crate was to provide an abstraction over the hash function used in Ethereum 2.0. The hash function changed during the specification process, so defining it once in this crate made it easy to replace.
Now this crate serves primarily as a wrapper over two SHA256 crates: sha2
and ring
–
which it switches between at runtime based on the availability of SHA intrinsics.
Re-exports
pub use self::DynamicContext as Context;
Structs
Implementation of SHA256 using the ring
crate (fastest on CPUs without SHA extensions).
Cached zero hashes where ZERO_HASHES[i]
is the hash of a Merkle tree with 2^i zero leaves.
Enums
Context encapsulating all implemenation contexts.
Default dynamic implementation that switches between available implementations.
Constants
Length of a SHA256 hash in bytes.
The max index that can be used with ZERO_HASHES
.
Traits
Top-level trait implemented by both sha2
and ring
implementations.
Context trait for abstracting over implementation contexts.
Functions
Returns the digest of input
using the best available implementation.
Compute the hash of two slices concatenated.
Hash function returning a fixed-size array (to save on allocations).