MCPcopy Create free account
hub / github.com/BTCGPU/BTCGPU / siphash256

Function siphash256

test/functional/test_framework/siphash.py:30–63  ·  view source on GitHub ↗
(k0, k1, h)

Source from the content-addressed store, hash-verified

28 return (v0, v1, v2, v3)
29
30def siphash256(k0, k1, h):
31 n0 = h & ((1 << 64) - 1)
32 n1 = (h >> 64) & ((1 << 64) - 1)
33 n2 = (h >> 128) & ((1 << 64) - 1)
34 n3 = (h >> 192) & ((1 << 64) - 1)
35 v0 = 0x736f6d6570736575 ^ k0
36 v1 = 0x646f72616e646f6d ^ k1
37 v2 = 0x6c7967656e657261 ^ k0
38 v3 = 0x7465646279746573 ^ k1 ^ n0
39 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
40 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
41 v0 ^= n0
42 v3 ^= n1
43 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
44 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
45 v0 ^= n1
46 v3 ^= n2
47 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
48 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
49 v0 ^= n2
50 v3 ^= n3
51 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
52 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
53 v0 ^= n3
54 v3 ^= 0x2000000000000000
55 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
56 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
57 v0 ^= 0x2000000000000000
58 v2 ^= 0xFF
59 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
60 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
61 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
62 v0, v1, v2, v3 = siphash_round(v0, v1, v2, v3)
63 return v0 ^ v1 ^ v2 ^ v3

Callers 1

calculate_shortidFunction · 0.90

Calls 1

siphash_roundFunction · 0.85

Tested by

no test coverage detected