Original source: http://www.forward.com.au/pfod/SipHashLibrary/