Thrill  0.1
siphash.hpp File Reference
#include <tlx/define/attribute_fallthrough.hpp>
#include <tlx/math/bswap_le.hpp>
#include <tlx/math/rol.hpp>
#include <cstdint>
#include <cstdlib>
#include <string>
+ Include dependency graph for siphash.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 tlx
 

Macros

#define TLX_SIPCOMPRESS()
 

Functions

static uint64_t siphash (const uint8_t key[16], const uint8_t *msg, size_t size)
 
static uint64_t siphash (const uint8_t *msg, size_t size)
 
static uint64_t siphash (const char *msg, size_t size)
 
static uint64_t siphash (const std::string &str)
 
template<typename Type >
static uint64_t siphash (const Type &value)
 
static uint64_t siphash_plain (const uint8_t key[16], const uint8_t *m, size_t len)
 

Macro Definition Documentation

◆ TLX_SIPCOMPRESS

#define TLX_SIPCOMPRESS ( )
Value:
v0 += v1; v2 += v3; \
v1 = rol64(v1, 13); \
v3 = rol64(v3, 16); \
v1 ^= v0; v3 ^= v2; \
v0 = rol64(v0, 32); \
v2 += v1; v0 += v3; \
v1 = rol64(v1, 17); \
v3 = rol64(v3, 21); \
v1 ^= v2; v3 ^= v0; \
v2 = rol64(v2, 32);
static uint64_t rol64(const uint64_t &x, int i)
rol64 - generic
Definition: rol.hpp:89

Referenced by tlx::siphash_plain().