mirror of
https://github.com/systemd/systemd.git
synced 2024-11-07 18:27:04 +03:00
siphash24: expose the internal helper functions
This commit is contained in:
parent
2c4cc3bdcd
commit
7c57f504c9
@ -52,16 +52,7 @@ typedef uint8_t u8;
|
||||
(state)->v2 += (state)->v1; (state)->v1=ROTL((state)->v1,17); (state)->v1 ^= (state)->v2; (state)->v2=ROTL((state)->v2,32); \
|
||||
} while(0)
|
||||
|
||||
struct siphash {
|
||||
u64 v0;
|
||||
u64 v1;
|
||||
u64 v2;
|
||||
u64 v3;
|
||||
u64 padding;
|
||||
size_t inlen;
|
||||
};
|
||||
|
||||
static void siphash_init(struct siphash *state, const uint8_t k[16]) {
|
||||
void siphash_init(struct siphash *state, const uint8_t k[16]) {
|
||||
u64 k0, k1;
|
||||
|
||||
k0 = U8TO64_LE( k );
|
||||
@ -76,7 +67,7 @@ static void siphash_init(struct siphash *state, const uint8_t k[16]) {
|
||||
state->inlen = 0;
|
||||
}
|
||||
|
||||
static void siphash24_compress(const void *_in, size_t inlen, struct siphash *state) {
|
||||
void siphash24_compress(const void *_in, size_t inlen, struct siphash *state) {
|
||||
u64 m;
|
||||
const u8 *in = _in;
|
||||
const u8 *end = in + inlen;
|
||||
@ -149,7 +140,7 @@ static void siphash24_compress(const void *_in, size_t inlen, struct siphash *st
|
||||
}
|
||||
}
|
||||
|
||||
static u64 siphash24_finalize(struct siphash *state) {
|
||||
uint64_t siphash24_finalize(struct siphash *state) {
|
||||
u64 b;
|
||||
|
||||
b = state->padding | (( ( u64 )state->inlen ) << 56);
|
||||
|
@ -3,4 +3,17 @@
|
||||
#include <inttypes.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
struct siphash {
|
||||
uint64_t v0;
|
||||
uint64_t v1;
|
||||
uint64_t v2;
|
||||
uint64_t v3;
|
||||
uint64_t padding;
|
||||
size_t inlen;
|
||||
};
|
||||
|
||||
void siphash_init(struct siphash *state, const uint8_t k[16]);
|
||||
void siphash24_compress(const void *in, size_t inlen, struct siphash *state);
|
||||
uint64_t siphash24_finalize(struct siphash *state);
|
||||
|
||||
void siphash24(uint8_t out[8], const void *in, size_t inlen, const uint8_t k[16]);
|
||||
|
Loading…
Reference in New Issue
Block a user