X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fbasic%2Fsiphash24.h;h=54e2420cc6e94beea881250c0050746387c1ea98;hp=62e1168a798f222ff0b910d1a6acb4758b1bc825;hb=d0774825d606da65eef44ebdd3d8753907951896;hpb=3b22396a4b2767a98172f6915929c47738cb0a1e diff --git a/src/basic/siphash24.h b/src/basic/siphash24.h index 62e1168a7..54e2420cc 100644 --- a/src/basic/siphash24.h +++ b/src/basic/siphash24.h @@ -1,6 +1,23 @@ #pragma once #include +#include +#include #include -void siphash24(uint8_t out[8], const void *in, size_t inlen, const uint8_t k[16]); +struct siphash { + uint64_t v0; + uint64_t v1; + uint64_t v2; + uint64_t v3; + uint64_t padding; + size_t inlen; +}; + +void siphash24_init(struct siphash *state, const uint8_t k[16]); +void siphash24_compress(const void *in, size_t inlen, struct siphash *state); +#define siphash24_compress_byte(byte, state) siphash24_compress((const uint8_t[]) { (byte) }, 1, (state)) + +uint64_t siphash24_finalize(struct siphash *state); + +uint64_t siphash24(const void *in, size_t inlen, const uint8_t k[16]);