#include <string.h>
#include <stdio.h>
#include "siphash.h"
Go to the source code of this file.
|
#define | lo u32[0] |
|
#define | hi u32[1] |
|
#define | UNALIGNED_WORD_ACCESS 0 |
|
#define | U8TO32_LE(p) |
|
#define | U32TO8_LE(p, v) |
|
#define | U8TO64_LE(p) u8to64_le(p) |
|
#define | U64TO8_LE(p, v) u64to8_le(p, v) |
|
#define | ROTL64_TO(v, s) |
|
#define | ADD64_TO(v, s) add64_to(&(v), (s)) |
|
#define | XOR64_TO(v, s) xor64_to(&(v), (s)) |
|
#define | XOR64_INT(v, x) ((v).lo ^= (x)) |
|
#define | sip_init_state sip_init_state_bin.u64 |
|
#define | SIP_COMPRESS(v0, v1, v2, v3) |
|
#define | SIP_ROUND(m, v0, v1, v2, v3) |
|
#define | OR_BYTE(n) |
|
◆ ADD64_TO
#define ADD64_TO |
( |
|
v, |
|
|
|
s |
|
) |
| add64_to(&(v), (s)) |
◆ hi
◆ lo
◆ OR_BYTE
Value: do { \
last.hi |= ((
uint32_t) end[
n]) << ((
n) >= 4 ? (
n) * 8 - 32 : 0); \
else \
last.lo |= ((
uint32_t) end[
n]) << ((
n) >= 4 ? 0 : (
n) * 8); \
} while (0)
◆ ROTL64_TO
#define ROTL64_TO |
( |
|
v, |
|
|
|
s |
|
) |
| |
Value: ((s) > 32 ? rotl64_swap(rotl64_to(&(
v), (s) - 32)) : \
(s) == 32 ? rotl64_swap(&(
v)) : rotl64_to(&(
v), (s)))
Definition at line 91 of file siphash.c.
◆ SIP_COMPRESS
#define SIP_COMPRESS |
( |
|
v0, |
|
|
|
v1, |
|
|
|
v2, |
|
|
|
v3 |
|
) |
| |
Value:do { \
ADD64_TO((v0), (v1)); \
ADD64_TO((v2), (v3)); \
ROTL64_TO((v1), 13); \
ROTL64_TO((v3), 16); \
XOR64_TO((v1), (v0)); \
XOR64_TO((v3), (v2)); \
ROTL64_TO((v0), 32); \
ADD64_TO((v2), (v1)); \
ADD64_TO((v0), (v3)); \
ROTL64_TO((v1), 17); \
ROTL64_TO((v3), 21); \
XOR64_TO((v1), (v2)); \
XOR64_TO((v3), (v0)); \
ROTL64_TO((v2), 32); \
} while(0)
Definition at line 158 of file siphash.c.
◆ sip_init_state
◆ SIP_ROUND
#define SIP_ROUND |
( |
|
m, |
|
|
|
v0, |
|
|
|
v1, |
|
|
|
v2, |
|
|
|
v3 |
|
) |
| |
Value:do { \
XOR64_TO((v3), (m)); \
SIP_COMPRESS(v0, v1, v2, v3); \
XOR64_TO((v0), (m)); \
} while (0)
Definition at line 389 of file siphash.c.
◆ U32TO8_LE
#define U32TO8_LE |
( |
|
p, |
|
|
|
v |
|
) |
| |
◆ U64TO8_LE
#define U64TO8_LE |
( |
|
p, |
|
|
|
v |
|
) |
| u64to8_le(p, v) |
◆ U8TO32_LE
◆ U8TO64_LE
#define U8TO64_LE |
( |
|
p | ) |
u8to64_le(p) |
◆ UNALIGNED_WORD_ACCESS
#define UNALIGNED_WORD_ACCESS 0 |
◆ XOR64_INT
#define XOR64_INT |
( |
|
v, |
|
|
|
x |
|
) |
| ((v).lo ^= (x)) |
◆ XOR64_TO
#define XOR64_TO |
( |
|
v, |
|
|
|
s |
|
) |
| xor64_to(&(v), (s)) |
◆ sip_hash13()
Definition at line 397 of file siphash.c.
References key, last, len, OR_BYTE, SIP_COMPRESS, sip_init_state, SIP_ROUND, U8TO64_LE, uint64_t, XOR64_INT, and XOR64_TO.
◆ bin
◆ u64