OpenVPN
Macros | Functions
siphash_reference.c File Reference
#include "siphash.h"
#include <assert.h>
#include <stddef.h>
#include <stdint.h>
Include dependency graph for siphash_reference.c:

Go to the source code of this file.

Macros

#define cROUNDS   2
 
#define dROUNDS   4
 
#define ROTL(x, b)   (uint64_t)(((x) << (b)) | ((x) >> (64 - (b))))
 
#define U32TO8_LE(p, v)
 
#define U64TO8_LE(p, v)
 
#define U8TO64_LE(p)
 
#define SIPROUND
 
#define TRACE
 

Functions

int siphash (const void *in, const size_t inlen, const void *k, uint8_t *out, const size_t outlen)
 

Macro Definition Documentation

◆ cROUNDS

#define cROUNDS   2

Definition at line 36 of file siphash_reference.c.

◆ dROUNDS

#define dROUNDS   4

Definition at line 39 of file siphash_reference.c.

◆ ROTL

#define ROTL (   x,
 
)    (uint64_t)(((x) << (b)) | ((x) >> (64 - (b))))

Definition at line 42 of file siphash_reference.c.

◆ SIPROUND

#define SIPROUND
Value:
do \
{ \
v0 += v1; \
v1 = ROTL(v1, 13); \
v1 ^= v0; \
v0 = ROTL(v0, 32); \
v2 += v3; \
v3 = ROTL(v3, 16); \
v3 ^= v2; \
v0 += v3; \
v3 = ROTL(v3, 21); \
v3 ^= v0; \
v2 += v1; \
v1 = ROTL(v1, 17); \
v1 ^= v2; \
v2 = ROTL(v2, 32); \
} while (0)
#define ROTL(x, b)

Definition at line 60 of file siphash_reference.c.

◆ TRACE

#define TRACE

Definition at line 91 of file siphash_reference.c.

◆ U32TO8_LE

#define U32TO8_LE (   p,
 
)
Value:
(p)[0] = (uint8_t)((v)); \
(p)[1] = (uint8_t)((v) >> 8); \
(p)[2] = (uint8_t)((v) >> 16); \
(p)[3] = (uint8_t)((v) >> 24);

Definition at line 44 of file siphash_reference.c.

◆ U64TO8_LE

#define U64TO8_LE (   p,
 
)
Value:
U32TO8_LE((p), (uint32_t)((v))); \
U32TO8_LE((p) + 4, (uint32_t)((v) >> 32));
#define U32TO8_LE(p, v)

Definition at line 50 of file siphash_reference.c.

◆ U8TO64_LE

#define U8TO64_LE (   p)
Value:
(((uint64_t)((p)[0])) | ((uint64_t)((p)[1]) << 8) \
| ((uint64_t)((p)[2]) << 16) | ((uint64_t)((p)[3]) << 24) \
| ((uint64_t)((p)[4]) << 32) | ((uint64_t)((p)[5]) << 40) \
| ((uint64_t)((p)[6]) << 48) | ((uint64_t)((p)[7]) << 56))

Definition at line 54 of file siphash_reference.c.

Function Documentation

◆ siphash()

int siphash ( const void *  in,
const size_t  inlen,
const void *  k,
uint8_t *  out,
const size_t  outlen 
)

Definition at line 103 of file siphash_reference.c.

References cROUNDS, dROUNDS, SIPROUND, TRACE, U64TO8_LE, and U8TO64_LE.