Expand description
Multihash implementation.
Feature Flags
Multihash has lots of feature flags, by default a table with cryptographically secure hashers is created.
Some of the features are about specific hash functions, these are (“default” marks the hashers that are enabled by default):
blake2b
: (default) Enable Blake2b hashersblake2s
: (default) Enable Blake2s hashersidentity
: Enable the Identity hashers (using it is discouraged as it’s not a hash function in the sense that it produces a fixed sized output independent of the input size)sha1
: Enable SHA-1 hashersha2
: (default) Enable SHA-2 hasherssha3
: (default) Enable SHA-3 hashersstrobe
: Enable Strobe hashers
In order to enable all cryptographically secure hashers, you can set the secure-hashes
feature flag (enabled by default).
The library has support for no_std
, if you disable the std
feature flag.
The multihash-impl
feature flag (enabled by default) enables a default Multihash
implementation that contains some of the bundled hashers. If you want a different set of hash
algorithms you can change this with enabled the corresponding features.
For example if you only need SHA2 hasher, you could set the features in the multihash
dependency like this:
multihash = { version = …, default-features = false, features = ["std", "multihash-impl", "sha2"] }
If you want to customize your code table even more, for example you want only one specific hash
digest size and not whole family, you would only enable the derive
feature (enabled by
default), which enables the Multihash
derive, together with the hashers you want.
The arb
feature flag enables the quickcheck arbitrary implementation for property based
testing.
For serializing the multihash there is support for Serde via the serde-codec
feature and
the SCALE Codec via the scale-codec
feature.
Modules
This proc macro derives a custom Multihash code table from a list of hashers. It also
generates a public type called Multihash
which corresponds to the specified alloc_size
.
This crate provides type-level numbers evaluated at compile time. It depends only on libcore.
Structs
Multihash digest.
Multihash hasher.
Multihash digest.
Multihash hasher.
Multihash digest.
Multihash hasher.
Multihash digest.
Identity hasher with a maximum size.
Multihash hasher.
Multihash hasher.
Multihash hasher.
Multihash hasher.
Multihash digest.
A Multihash instance that only supports the basic functionality and no hashing.
Multihash digest.
Multihash hasher.
Multihash hasher.
Multihash digest.
Multihash hasher.
Multihash hasher.
Multihash hasher.
Multihash hasher.
Multihash digest.
New type wrapper for a hasher that implements the std::io::Write
trait.
Enums
Traits
Stack allocated digest trait.
Trait implemented by a hash function implementation.
Trait that implements hashing.
Size marker trait.
Trait implemented by a hash function implementation.
Type Definitions
256 bit blake2b hasher.
512 bit blake2b hasher.
256 bit blake2b hasher.
512 bit blake2b hasher.
blake3-256 hasher.
32 byte Identity hasher (constrained to 32 bytes).
A Multihash with the same allocated size as the Multihashes produces by this derive.
Multihash result.