Hash is the common interface implemented by all hash functions.
Hash implementations in the standard library (e.g. hash/crc32 and crypto/sha256) implement the encoding.BinaryMarshaler and encoding.BinaryUnmarshaler interfaces. Marshaling a hash implementation allows its internal state to be saved and used for additional processing later, without having to re-write the data previously written to the hash. The hash state may contain portions of the input in its original form, which users are expected to handle for any possible security implications.
Compatibility: Any future changes to hash or crypto packages will endeavor to maintain compatibility with state encoded using previous versions. That is, any released versions of the packages should be able to decode data written with any previously released version, subject to issues such as security fixes. See the Go compatibility document for background: https://golang.org/doc/go1compat
See also:
Fields
dynamicsum(_b:Slice<GoUInt8>):Slice<GoUInt8>
Sum appends the current hash to b and returns the resulting slice. It does not change the underlying hash state.
dynamicblockSize():GoInt
BlockSize returns the hash's underlying block size. The Write method must be able to accept any amount of data, but it may operate more efficiently if all writes are a multiple of the block size.
__underlying__():AnyInterface
Allows struct or interfaces to provide back type information.
Returns:
go.AnyInterface