Apache HTTPD
Macros | Functions | Variables
apr_siphash.h File Reference

APR-UTIL siphash library "SipHash-c-d is a family of pseudorandom functions (a.k.a. keyed hash functions) optimized for speed on short messages", designed by Jean-Philippe Aumasson and Daniel J. Bernstein. It generates a 64bit hash (or MAC) from the message and a 128bit key. See http://cr.yp.to/siphash/siphash-20120620.pdf for the details, c is the number of compression rounds, d the number of finalization rounds; we also define fast implementations for c = 2 with d = 4 (aka siphash-2-4), and c = 4 with d = 8 (aka siphash-4-8), as recommended parameters per the authors. More...

#include "apr.h"
#include "apu.h"

Go to the source code of this file.

Macros

#define APR_SIPHASH_DSIZE   8
 
#define APR_SIPHASH_KSIZE   16
 

Functions

 APU_DECLARE (apr_uint64_t) apr_siphash(const void *src
 Computes SipHash-c-d, producing a 64bit (APR_SIPHASH_DSIZE) hash from a message and a 128bit (APR_SIPHASH_KSIZE) secret key.
 
 APU_DECLARE (void) apr_siphash_auth(unsigned char out[8]
 Computes SipHash-c-d, producing a 64bit (APR_SIPHASH_DSIZE) hash from a message and a 128bit (APR_SIPHASH_KSIZE) secret key, into a possibly unaligned buffer (using the little endian representation as defined by the authors for interoperabilty) usable as a MAC.
 

Variables

apr_size_t len
 
apr_size_t const unsigned char key [16]
 
apr_size_t const unsigned char unsigned int c
 
apr_size_t const unsigned char unsigned int unsigned int d
 
const void * src
 

Detailed Description

APR-UTIL siphash library "SipHash-c-d is a family of pseudorandom functions (a.k.a. keyed hash functions) optimized for speed on short messages", designed by Jean-Philippe Aumasson and Daniel J. Bernstein. It generates a 64bit hash (or MAC) from the message and a 128bit key. See http://cr.yp.to/siphash/siphash-20120620.pdf for the details, c is the number of compression rounds, d the number of finalization rounds; we also define fast implementations for c = 2 with d = 4 (aka siphash-2-4), and c = 4 with d = 8 (aka siphash-4-8), as recommended parameters per the authors.

Definition in file apr_siphash.h.

Macro Definition Documentation

◆ APR_SIPHASH_DSIZE

#define APR_SIPHASH_DSIZE   8

size of the siphash digest

Definition at line 54 of file apr_siphash.h.

◆ APR_SIPHASH_KSIZE

#define APR_SIPHASH_KSIZE   16

size of the siphash key

Definition at line 57 of file apr_siphash.h.

Function Documentation

◆ APU_DECLARE()

APU_DECLARE ( apr_uint64_t  ) const

Computes SipHash-c-d, producing a 64bit (APR_SIPHASH_DSIZE) hash from a message and a 128bit (APR_SIPHASH_KSIZE) secret key.

Computes SipHash-4-8, producing a 64bit (APR_SIPHASH_DSIZE) hash from a message and a 128bit (APR_SIPHASH_KSIZE) secret key.

Computes SipHash-2-4, producing a 64bit (APR_SIPHASH_DSIZE) hash from a message and a 128bit (APR_SIPHASH_KSIZE) secret key.

Parameters
srcThe message
lenThe length of the message
keyThe secret key
cThe number of compression rounds
dThe number of finalization rounds
Returns
The hash value as a 64bit unsigned integer
Parameters
srcThe message to hash
lenThe length of the message
keyThe secret key
Returns
The hash value as a 64bit unsigned integer
Parameters
srcThe message
lenThe length of the message
keyThe secret key
Returns
The hash value as a 64bit unsigned integer

Variable Documentation

◆ c

Definition at line 72 of file apr_siphash.h.

◆ d

Definition at line 72 of file apr_siphash.h.

◆ key

Definition at line 71 of file apr_siphash.h.

◆ len

const void apr_size_t len

Definition at line 70 of file apr_siphash.h.

◆ src

const void* src

Definition at line 88 of file apr_siphash.h.