Go implementation of SipHash-2-4, a fast short-input PRF created by
Jean-Philippe Aumasson and Daniel J. Bernstein (http://131002.net/siphash/).

INSTALLATION

    $ go get github.com/dchest/siphash

USAGE

    import "github.com/dchest/siphash"

There are two ways to use this package.
The slower one is to use the standard hash.Hash64 interface:

    h := siphash.New(key)
    h.Write([]byte("Hello"))
    sum := h.Sum(nil) // returns 8-byte []byte

or

    sum64 := h.Sum64() // returns uint64

The faster one is to use Hash() function, which takes two uint64 parts of
16-byte key and a byte slice, and returns uint64 hash:

    sum64 := siphash.Hash(key0, key1, []byte("Hello"))

The keys and output are little-endian.

FUNCTIONS

func Hash(k0, k1 uint64, p []byte) uint64

    Hash returns the 64-bit SipHash-2-4 of the given byte slice with two
    64-bit parts of 128-bit key: k0 and k1.

func New(key []byte) hash.Hash64

    New returns a new hash.Hash64 computing SipHash-2-4 with 16-byte key.


PUBLIC DOMAIN DEDICATION

Written in 2012 by Dmitry Chestnykh.

To the extent possible under law, the author have dedicated all copyright
and related and neighboring rights to this software to the public domain
worldwide. This software is distributed without any warranty.
http://creativecommons.org/publicdomain/zero/1.0/
