Crate sp_multihash

Source
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 hashers
  • blake2s: (default) Enable Blake2s hashers
  • identity: 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 hasher
  • sha2: (default) Enable SHA-2 hashers
  • sha3: (default) Enable SHA-3 hashers
  • strobe: 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.

Re-exports§

pub use sp_multihash_derive as derive;

Structs§

Blake2bDigest
Multihash digest.
Blake2bHasher
Multihash hasher.
Blake2sDigest
Multihash digest.
Blake2sHasher
Multihash hasher.
Blake3Digest
Multihash digest.
Blake3Hasher
Multihash hasher.
IdentityDigest
Multihash digest.
IdentityHasher
Identity hasher with a maximum size.
Keccak224
Multihash hasher.
Keccak256
Multihash hasher.
Keccak384
Multihash hasher.
Keccak512
Multihash hasher.
KeccakDigest
Multihash digest.
MultihashGeneric
A Multihash instance that only supports the basic functionality and no hashing.
Sha2Digest
Multihash digest.
Sha2_256
Multihash hasher.
Sha2_512
Multihash hasher.
Sha3Digest
Multihash digest.
Sha3_224
Multihash hasher.
Sha3_256
Multihash hasher.
Sha3_384
Multihash hasher.
Sha3_512
Multihash hasher.
UnknownDigest
Multihash digest.

Enums§

Code
Default (cryptographically secure) Multihash implementation.
Error
Multihash error.

Traits§

Digest
Size marker trait. Stack allocated digest trait.
Hasher
Trait implemented by a hash function implementation.
MultihashDigest
Trait that implements hashing.
StatefulHasher
Trait implemented by a hash function implementation.

Type Aliases§

Blake2b256
256 bit blake2b hasher.
Blake2b512
512 bit blake2b hasher.
Blake2s128
256 bit blake2b hasher.
Blake2s256
512 bit blake2b hasher.
Blake3_256
blake3-256 hasher.
Identity256
32 byte Identity hasher (constrained to 32 bytes).
Multihash
A Multihash with the same allocated size as the Multihashes produces by this derive.
Result
Multihash result.

Derive Macros§

Multihash