Documentation ¶
Overview ¶
Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xb.
For a detailed specification of BLAKE2b see https://blake2.net/blake2.pdf and for BLAKE2Xb see https://blake2.net/blake2x.pdf
If you aren't sure which function you need, use BLAKE2b (Sum512 or New512). If you need a secret-key MAC (message authentication code), use the New512 function with a non-nil key.
BLAKE2X is a construction to compute hash values larger than 64 bytes. It can produce hash values between 0 and 4 GiB.
Index ¶
Constants ¶
const ( // The blocksize of BLAKE2b in bytes. BlockSize = 128 // The hash size of BLAKE2b-512 in bytes. Size = 64 // The hash size of BLAKE2b-384 in bytes. Size384 = 48 // The hash size of BLAKE2b-256 in bytes. Size256 = 32 )
const OutputLengthUnknown = 0
OutputLengthUnknown can be used as the size argument to NewXOF to indicate the the length of the output is not known in advance.
Variables ¶
This section is empty.
Functions ¶
func New256 ¶
New256 returns a new hash.Hash computing the BLAKE2b-256 checksum. A non-nil key turns the hash into a MAC. The key must between zero and 64 bytes long.
func New384 ¶
New384 returns a new hash.Hash computing the BLAKE2b-384 checksum. A non-nil key turns the hash into a MAC. The key must between zero and 64 bytes long.
func New512 ¶
New512 returns a new hash.Hash computing the BLAKE2b-512 checksum. A non-nil key turns the hash into a MAC. The key must between zero and 64 bytes long.
Types ¶
type XOF ¶
type XOF interface { // Write absorbs more data into the hash's state. It panics if called // after Read. io.Writer // Read reads more output from the hash. It returns io.EOF if the limit // has been reached. io.Reader // Clone returns a copy of the XOF in its current state. Clone() XOF // Reset resets the XOF to its initial state. Reset() }
XOF defines the interface to hash functions that support arbitrary-length output.
func NewXOF ¶
NewXOF creates a new variable-output-length hash. The hash either produce a known number of bytes (1 <= size < 2**32-1), or an unknown number of bytes (size == OutputLengthUnknown). In the latter case, an absolute limit of 256GiB applies.
A non-nil key turns the hash into a MAC. The key must between zero and 32 bytes long.