-
-
Couldn't load subscription status.
- Fork 299
Add SipHash Family of Keyed PRFs #2287
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
I posted some suggested improvements above. |
…undancies, add to release notes
|
I incorporated your feedback, and then some. I tend to put a lot of idiosyncrasies around explicit casts and parentheses in my code because I'm paranoid of C's UB and other spooky behaviors, so it'll take a bit for me to be a little more lax with the help of C3. Thank you for your time reviewing this. |
|
Updated the test to use this: char[64] plaintext = math::iota(char[64]); |
Implementation of the SipHash family of pseudorandom functions, complete with accompanying tests.
Predefined modules include:
siphash24- Performant - 64-bit hash from 2 rounds-per-block and 4 finalization rounds.siphash24_128- Same as above but for 128-bit outputs.siphash48- Hardened - 64-bit hash from 4 rounds-per-block and 8 finalization rounds.siphash48_128- Same as above but for 128-bit outputs.Out-of-the-box usage:
Other non-standard variations of SipHash can be used with an
aliasdeclaration like so: