SIPHASH24(9) Kernel Developer's Manual SIPHASH24(9)

SipHash24_Init, SipHash24_Update, SipHash24_End, SipHash24_Final, SipHash24calculate SipHash24 hashes

#include <crypto/siphash.h>

void
SipHash24_Init(SIPHASH_CTX *ctx, const SIPHASH_KEY *key);

void
SipHash24_Update(SIPHASH_CTX *ctx, const void *data, size_t len);

uint64_t
SipHash24_End(SIPHASH_CTX *ctx);

void
SipHash24_Final(void *digest, SIPHASH_CTX *ctx);

uint64_t
SipHash24(const SIPHASH_KEY *key, const void *data, size_t len);

The SipHash algorithm is a keyed hash algorithm optimised for short inputs which produces a 64-bit digest of data. The SipHash24 functions implement the algorithm with 2 compression rounds and 4 finalisation rounds.

() initialises a SIPHASH_CTX context ctx with the secret key.

() adds data of length len to the context ctx.

() is called after all data has been added to ctx via SipHash24_Update() and returns a message digest in the host's native endian.

() is called after all data has been added to ctx via SipHash24_Update() and stores the message digest at the address specified by the digest parameter. The buffer at digest must be SIPHASH_DIGEST_LENGTH bytes long.

() calculates the digest of data of length len with the secret key.

It is recommended that the SIPHASH_KEY key be generated with arc4random_buf(9).

SipHash24_Init(), SipHash24_Update(), SipHash24_End(), SipHash24_Final() and SipHash24() can be called during autoconf, from process context, or from interrupt context.

SipHash24_End() and SipHash24() return the 64-bit message digest in the host's native endian representation.

arc4random_buf(9)

September 14, 2015 OpenBSD 7.5