MCPcopy Create free account
hub / github.com/ElementsProject/elements / SipHashUint256

Function SipHashUint256

src/crypto/siphash.cpp:94–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

92}
93
94uint64_t SipHashUint256(uint64_t k0, uint64_t k1, const uint256& val)
95{
96 /* Specialized implementation for efficiency */
97 uint64_t d = val.GetUint64(0);
98
99 uint64_t v0 = 0x736f6d6570736575ULL ^ k0;
100 uint64_t v1 = 0x646f72616e646f6dULL ^ k1;
101 uint64_t v2 = 0x6c7967656e657261ULL ^ k0;
102 uint64_t v3 = 0x7465646279746573ULL ^ k1 ^ d;
103
104 SIPROUND;
105 SIPROUND;
106 v0 ^= d;
107 d = val.GetUint64(1);
108 v3 ^= d;
109 SIPROUND;
110 SIPROUND;
111 v0 ^= d;
112 d = val.GetUint64(2);
113 v3 ^= d;
114 SIPROUND;
115 SIPROUND;
116 v0 ^= d;
117 d = val.GetUint64(3);
118 v3 ^= d;
119 SIPROUND;
120 SIPROUND;
121 v0 ^= d;
122 v3 ^= ((uint64_t)4) << 59;
123 SIPROUND;
124 SIPROUND;
125 v0 ^= ((uint64_t)4) << 59;
126 v2 ^= 0xFF;
127 SIPROUND;
128 SIPROUND;
129 SIPROUND;
130 SIPROUND;
131 return v0 ^ v1 ^ v2 ^ v3;
132}
133
134uint64_t SipHashUint256Extra(uint64_t k0, uint64_t k1, const uint256& val, uint32_t extra)
135{

Callers 6

GetShortIDMethod · 0.85
BOOST_AUTO_TEST_CASEFunction · 0.85
FUZZ_TARGET_INITFunction · 0.85
SipHash_32bFunction · 0.85
operator()Method · 0.85
operator()Method · 0.85

Calls 1

GetUint64Method · 0.80

Tested by 2

BOOST_AUTO_TEST_CASEFunction · 0.68
FUZZ_TARGET_INITFunction · 0.68