summaryrefslogtreecommitdiff
path: root/src/basic/siphash24.c
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2015-11-16 15:50:13 +0100
committerTom Gundersen <teg@jklm.no>2015-11-16 15:50:13 +0100
commitf5ed8d4a51b7f168eba9114a7cf4c2a3132cafff (patch)
treeaaf3b2b5a03de9ca3801a912ae42b7f61d95ff6e /src/basic/siphash24.c
parent920a7262211254a6f728af5ed4f6cd7f9a83e9a6 (diff)
parentdbe81cbd2a93088236a2e4e41eeb33378940f7b9 (diff)
Merge pull request #1916 from zonque/align
siphash: alignment
Diffstat (limited to 'src/basic/siphash24.c')
-rw-r--r--src/basic/siphash24.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/basic/siphash24.c b/src/basic/siphash24.c
index 3b61961389..d7640d395d 100644
--- a/src/basic/siphash24.c
+++ b/src/basic/siphash24.c
@@ -20,6 +20,7 @@
#include "sparse-endian.h"
#include "siphash24.h"
+#include "unaligned.h"
#include "util.h"
static inline uint64_t rotate_left(uint64_t x, uint8_t b) {
@@ -104,7 +105,7 @@ void siphash24_compress(const void *_in, size_t inlen, struct siphash *state) {
end -= ( state->inlen % sizeof (uint64_t) );
for ( ; in < end; in += 8 ) {
- m = le64toh(*(le64_t*) in);
+ m = unaligned_read_le64(in);
#ifdef DEBUG
printf("(%3zu) v0 %08x %08x\n", state->inlen, (uint32_t) (state->v0 >> 32), (uint32_t) state->v0);
printf("(%3zu) v1 %08x %08x\n", state->inlen, (uint32_t) (state->v1 >> 32), (uint32_t) state->v1);
@@ -140,7 +141,7 @@ void siphash24_compress(const void *_in, size_t inlen, struct siphash *state) {
}
}
-void siphash24_finalize(uint8_t out[8], struct siphash *state) {
+void siphash24_finalize(uint64_t *out, struct siphash *state) {
uint64_t b;
b = state->padding | (( ( uint64_t )state->inlen ) << 56);
@@ -173,7 +174,7 @@ void siphash24_finalize(uint8_t out[8], struct siphash *state) {
}
/* SipHash-2-4 */
-void siphash24(uint8_t out[8], const void *_in, size_t inlen, const uint8_t k[16]) {
+void siphash24(uint64_t *out, const void *_in, size_t inlen, const uint8_t k[16]) {
struct siphash state;
siphash24_init(&state, k);