crypto: Index | Files

package blake2s

import ""

Package blake2s implements the BLAKE2s hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xs.

For a detailed specification of BLAKE2s see and for BLAKE2Xs see

If you aren't sure which function you need, use BLAKE2s (Sum256 or New256). If you need a secret-key MAC (message authentication code), use the New256 function with a non-nil key.

BLAKE2X is a construction to compute hash values larger than 32 bytes. It can produce hash values between 0 and 65535 bytes.


Package Files

blake2s.go blake2s_amd64.go blake2s_generic.go blake2x.go register.go


const (
    // The blocksize of BLAKE2s in bytes.
    BlockSize = 64

    // The hash size of BLAKE2s-256 in bytes.
    Size = 32

    // The hash size of BLAKE2s-128 in bytes.
    Size128 = 16
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.

func New128 Uses

func New128(key []byte) (hash.Hash, error)

New128 returns a new hash.Hash computing the BLAKE2s-128 checksum given a non-empty key. Note that a 128-bit digest is too small to be secure as a cryptographic hash and should only be used as a MAC, thus the key argument is not optional.

func New256 Uses

func New256(key []byte) (hash.Hash, error)

New256 returns a new hash.Hash computing the BLAKE2s-256 checksum. A non-nil key turns the hash into a MAC. The key must between zero and 32 bytes long.

func Sum256 Uses

func Sum256(data []byte) [Size]byte

Sum256 returns the BLAKE2s-256 checksum of the data.

type XOF Uses

type XOF interface {
    // Write absorbs more data into the hash's state. It panics if called
    // after Read.

    // Read reads more output from the hash. It returns io.EOF if the limit
    // has been reached.

    // Clone returns a copy of the XOF in its current state.
    Clone() XOF

    // Reset resets the XOF to its initial state.

XOF defines the interface to hash functions that support arbitrary-length output.

func NewXOF Uses

func NewXOF(size uint16, key []byte) (XOF, error)

NewXOF creates a new variable-output-length hash. The hash either produce a known number of bytes (1 <= size < 65535), or an unknown number of bytes (size == OutputLengthUnknown). In the latter case, an absolute limit of 128GiB applies.

A non-nil key turns the hash into a MAC. The key must between zero and 32 bytes long.

Package blake2s imports 5 packages (graph) and is imported by 12 packages. Updated 2018-02-15. Refresh now. Tools for package owners.