summaryrefslogtreecommitdiff
path: root/src/ext/csiphash.c
AgeCommit message (Collapse)Author
2015-11-05Fix SipHash-2-4 performance for non multiple of 8 buffers.Yawning Angel
Code cribbed from Andrew Moon's Public Domain SipHash-2-4 implementation (which IMO is also cleaner). Fixes bug 17544.
2015-03-23Merge remote-tracking branch 'public/bug15436_025' into maint-0.2.6Nick Mathewson
2015-03-23Fix unaligned access in SipHash-2-4.Yawning Angel
The compiler is allowed to assume that a "uint64_t *" is aligned correctly, and will inline a version of memcpy that acts as such. Use "uint8_t *", so the compiler does the right thing.
2014-10-28Add another year to our copyright dates.Nick Mathewson
Because in 95 years, we or our successors will surely care about enforcing the BSD license terms on this code. Right?
2014-04-07Make csiphash use the proper endian-converter on solarisNick Mathewson
fixes bug 11426; bugfix on 0.2.5.3-alpha, where csiphash was introduced.
2014-03-18csiphash: don't attempt unaligned accessNick Mathewson
In digestmap_set/get benchmarks, doing unaligned access on x86 doesn't save more than a percent or so in the fast case. In the slow case (where we cross a cache line), it could be pretty expensive. It also makes ubsan unhappy.
2014-02-17Appropriately condition the _le64toh macro definition for OpenBSD.dana koch
This corrects a linker error on OpenBSD, where the function is called letoh64. See also http://git.kernel.org/cgit/docs/man-pages/man-pages.git/tree/man3/endian.3#n84.
2014-02-12Randomize the global siphash key at startupNick Mathewson
This completes our conversion to using siphash for our hash functions.
2014-02-12csiphash: Add functions to take a global key.Nick Mathewson
2014-02-12csiphash: avoid unaligned access on non-x86Nick Mathewson
2014-02-12Get csiphash better integrated with our build systemNick Mathewson
2014-02-12Raw import of Marek Majkowski's cisphash.cNick Mathewson
siphash is a hash function designed for producing hard-to-predict 64-bit outputs from short inputs and a 128-bit key. It's chosen for security and speed. See https://131002.net/siphash/ for more information on siphash. Source: https://github.com/majek/csiphash/