Changeset View
Changeset View
Standalone View
Standalone View
src/crypto/siphash.cpp
Show First 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | CSipHasher &CSipHasher::Write(uint64_t data) { | ||||
count += 8; | count += 8; | ||||
return *this; | return *this; | ||||
} | } | ||||
CSipHasher &CSipHasher::Write(const uint8_t *data, size_t size) { | CSipHasher &CSipHasher::Write(const uint8_t *data, size_t size) { | ||||
uint64_t v0 = v[0], v1 = v[1], v2 = v[2], v3 = v[3]; | uint64_t v0 = v[0], v1 = v[1], v2 = v[2], v3 = v[3]; | ||||
uint64_t t = tmp; | uint64_t t = tmp; | ||||
int c = count; | uint8_t c = count; | ||||
while (size--) { | while (size--) { | ||||
t |= uint64_t(*(data++)) << (8 * (c % 8)); | t |= uint64_t(*(data++)) << (8 * (c % 8)); | ||||
c++; | c++; | ||||
if ((c & 7) == 0) { | if ((c & 7) == 0) { | ||||
v3 ^= t; | v3 ^= t; | ||||
SIPROUND; | SIPROUND; | ||||
SIPROUND; | SIPROUND; | ||||
▲ Show 20 Lines • Show All 111 Lines • Show Last 20 Lines |