chiark / gitweb /
tests: add tests for environment serialization
[elogind.git] / src / basic / siphash24.h
1 #pragma once
2
3 #include <inttypes.h>
4 #include <stddef.h>
5 #include <stdint.h>
6 #include <sys/types.h>
7
8 struct siphash {
9         uint64_t v0;
10         uint64_t v1;
11         uint64_t v2;
12         uint64_t v3;
13         uint64_t padding;
14         size_t inlen;
15 };
16
17 void siphash24_init(struct siphash *state, const uint8_t k[16]);
18 void siphash24_compress(const void *in, size_t inlen, struct siphash *state);
19 #define siphash24_compress_byte(byte, state) siphash24_compress((const uint8_t[]) { (byte) }, 1, (state))
20
21 uint64_t siphash24_finalize(struct siphash *state);
22
23 uint64_t siphash24(const void *in, size_t inlen, const uint8_t k[16]);