|Chris Babcock 2b8386885a||7 months ago|
|.gitignore||1 year ago|
|LICENSE||7 years ago|
|README.md||7 months ago|
|halfsiphash.c||1 year ago|
|makefile||1 year ago|
|siphash.c||1 year ago|
|test.c||1 year ago|
|testmain.c||1 year ago|
|vectors.h||4 years ago|
This is a maintenance fork
Reference implementation of SipHash, a family of pseudorandom functions optimized for speed on short messages.
SipHash was designed as a mitigation to hash-flooding DoS attacks. It is now used in the hash tables implementation of Python, Ruby, Perl 5, etc.
will build tests for
verifies 64 test vectors, and
does the same and prints intermediate values.
The code can be adapted to implement SipHash-c-d, the version of SipHash
with c compression rounds and d finalization rounds, by defining
dROUNDS when compiling. This can be done with
-D command line arguments
to many compilers such as below.
gcc -Wall --std=c99 -DcROUNDS=2 -DdROUNDS=4 siphash.c halfsiphash.c test.c -o test
makefile also takes c and d rounds values as parameters.
make cROUNDS=2 dROUNDS=4
Obviously, if the number of rounds is modified then the test vectors won’t verify.
The SipHash reference code is released under CC0 license, a public domain-like licence.
We aren’t aware of any patents or patent applications relevant to SipHash, and we aren’t planning to apply for any.
The SipHash page includes