aboutsummaryrefslogtreecommitdiff
path: root/src/or/nodelist.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-02-07 17:38:16 -0500
committerNick Mathewson <nickm@torproject.org>2014-02-12 11:32:10 -0500
commit0e97c8e23e2572c14dd0f4f4fbfca77ee8a48be2 (patch)
treea9d0e1914c9bf8e136486ca02658029273e86be5 /src/or/nodelist.c
parentf05820531a1e4bc5935609900f0067b2643f0529 (diff)
downloadtor-0e97c8e23e2572c14dd0f4f4fbfca77ee8a48be2.tar
tor-0e97c8e23e2572c14dd0f4f4fbfca77ee8a48be2.tar.gz
Siphash-2-4 is now our hash in nearly all cases.
I've made an exception for cases where I'm sure that users can't influence the inputs. This is likely to cause a slowdown somewhere, but it's safer to siphash everything and *then* look for cases to optimize. This patch doesn't actually get us any _benefit_ from siphash yet, since we don't really randomize the key at any point.
Diffstat (limited to 'src/or/nodelist.c')
-rw-r--r--src/or/nodelist.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/src/or/nodelist.c b/src/or/nodelist.c
index 402fb2e96..03fa836d4 100644
--- a/src/or/nodelist.c
+++ b/src/or/nodelist.c
@@ -43,14 +43,7 @@ typedef struct nodelist_t {
static INLINE unsigned int
node_id_hash(const node_t *node)
{
-#if SIZEOF_INT == 4
- const uint32_t *p = (const uint32_t*)node->identity;
- return p[0] ^ p[1] ^ p[2] ^ p[3] ^ p[4];
-#elif SIZEOF_INT == 8
- const uint64_t *p = (const uint32_t*)node->identity;
- const uint32_t *p32 = (const uint32_t*)node->identity;
- return p[0] ^ p[1] ^ p32[4];
-#endif
+ return (unsigned) siphash24g(node->identity, DIGEST_LEN);
}
static INLINE unsigned int