Nick Mathewson
2b26815e09
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-09-11 17:49:18 -04:00
Andreas Stieger
6cd5a80275
Fix GCC 7 -Wimplicit-fallthrough warnings
...
Add magic comments recognized by default -Wimplicit-fallthrough=3
or break, as required.
2017-09-11 17:47:04 -04:00
cypherpunks
27df23abb6
Use the standard OpenBSD preprocessor definition
2017-02-03 09:37:39 -05:00
Yawning Angel
b71f6d6a47
Fix SipHash-2-4 performance for non multiple of 8 buffers.
...
Code cribbed from Andrew Moon's Public Domain SipHash-2-4
implementation (which IMO is also cleaner).
Fixes bug 17544.
2015-11-05 18:21:43 +00:00
Nick Mathewson
c113544a94
Merge remote-tracking branch 'public/bug15436_025' into maint-0.2.6
2015-03-23 09:25:15 -04:00
Yawning Angel
732f522a42
Fix unaligned access in SipHash-2-4.
...
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.
2015-03-23 09:20:02 -04:00
Nick Mathewson
fcdcb377a4
Add another year to our copyright dates.
...
Because in 95 years, we or our successors will surely care about
enforcing the BSD license terms on this code. Right?
2014-10-28 15:30:16 -04:00
Nick Mathewson
9ccedbece0
Make csiphash use the proper endian-converter on solaris
...
fixes bug 11426; bugfix on 0.2.5.3-alpha, where csiphash was
introduced.
2014-04-07 13:07:14 -04:00
Nick Mathewson
aaa33f144c
csiphash: don't attempt unaligned access
...
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-03-18 10:43:46 -04:00
dana koch
8999150f71
Appropriately condition the _le64toh macro definition for OpenBSD.
...
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-17 22:42:19 +00:00
Nick Mathewson
c1e98c8afe
Randomize the global siphash key at startup
...
This completes our conversion to using siphash for our hash functions.
2014-02-12 12:12:58 -05:00
Nick Mathewson
f05820531a
csiphash: Add functions to take a global key.
2014-02-12 11:27:41 -05:00
Nick Mathewson
1bd86b69b6
csiphash: avoid unaligned access on non-x86
2014-02-12 10:57:46 -05:00
Nick Mathewson
9605978eb6
Get csiphash better integrated with our build system
2014-02-12 10:24:04 -05:00
Nick Mathewson
f4656c0cc9
Raw import of Marek Majkowski's cisphash.c
...
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/
2014-02-12 10:09:45 -05:00