crypto: golang.org/x/crypto/blake2s Index | Files

package blake2s

import "golang.org/x/crypto/blake2s"

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 https://blake2.net/blake2.pdf and for BLAKE2Xs see https://blake2.net/blake2x.pdf

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.

Index

Package Files

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

Constants

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.
    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 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 8 packages. Updated 2017-10-19. Refresh now. Tools for package owners.