package multihash
Import Path
github.com/multiformats/go-multihash/core (on go.dev)
Dependency Relation
imports 8 packages, and imported by 6 packages
Package-Level Functions (total 4)
GetHasher returns a new hash.Hash according to the indicator code number provided.
The indicator code should be per the numbers reserved and described in
https://github.com/multiformats/multicodec/blob/master/table.csv .
The actual hashers available are determined by what has been registered.
The registry automatically contains those hashers which are available in the golang standard libraries
(which includes md5, sha1, sha256, sha384, sha512, and the "identity" mulithash, among others).
Other hash implementations can be made available by using the Register function.
The 'go-mulithash/register/*' packages can also be imported to gain more common hash functions.
If an error is returned, it will match `errors.Is(err, ErrSumNotSupported)`.
GetVariableHasher returns a new hash.Hash according to the indicator code number provided, with
the specified size hint.
NOTE: The size hint is only a hint. Hashers will attempt to produce at least the number of requested bytes, but may not.
This function can fail if either the hash code is not registered, or the passed size hint is
statically incompatible with the specified hash function.
Register adds a new hash to the set available from GetHasher and Sum.
Register has a global effect and should only be used at package init time to avoid data races.
The indicator code should be per the numbers reserved and described in
https://github.com/multiformats/multicodec/blob/master/table.csv .
If Register is called with the same indicator code more than once, the last call wins.
In practice, this means that if an application has a strong opinion about what implementation to use for a certain hash
(e.g., perhaps they want to override the sha256 implementation to use a special hand-rolled assembly variant
rather than the stdlib one which is registered by default),
then this can be done by making a Register call with that effect at init time in the application's main package.
This should have the desired effect because the root of the import tree has its init time effect last.
RegisterVariableSize is like Register, but adds a new variable-sized hasher factory that takes a
size hint.
When passed -1, the hasher should produce digests with the hash-function's default length. When
passed a non-negative integer, the hasher should try to produce digests of at least the specified
size.
Package-Level Variables (total 3)
DefaultLengths maps a multihash indicator code to the output size for that hash, in units of bytes.
This map is populated when a hash function is registered by the Register function.
It's effectively a shortcut for asking Size() on the hash.Hash.
ErrLenTooLarge is returned when the hash function cannot produce the requested number of bytes
ErrSumNotSupported is returned when the Sum function code is not implemented
Package-Level Constants (total 22)
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
constants
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |