#include <string.h>
#include "e_os.h"
-static ossl_inline uint32_t load32(const void *src)
+static ossl_inline uint32_t load32(const uint8_t *src)
{
const union {
long one;
memcpy(&w, src, sizeof(w));
return w;
} else {
- const uint8_t *p = (const uint8_t *)src;
- uint32_t w = *p++;
- w |= (uint32_t)(*p++) << 8;
- w |= (uint32_t)(*p++) << 16;
- w |= (uint32_t)(*p++) << 24;
+ uint32_t w = *src++;
+ w |= (uint32_t)(*src++) << 8;
+ w |= (uint32_t)(*src++) << 16;
+ w |= (uint32_t)(*src++) << 24;
return w;
}
}
-static ossl_inline uint64_t load64(const void *src)
+static ossl_inline uint64_t load64(const uint8_t *src)
{
const union {
long one;
memcpy(&w, src, sizeof(w));
return w;
} else {
- const uint8_t *p = (const uint8_t *)src;
- uint64_t w = *p++;
- w |= (uint64_t)(*p++) << 8;
- w |= (uint64_t)(*p++) << 16;
- w |= (uint64_t)(*p++) << 24;
- w |= (uint64_t)(*p++) << 32;
- w |= (uint64_t)(*p++) << 40;
- w |= (uint64_t)(*p++) << 48;
- w |= (uint64_t)(*p++) << 56;
+ uint64_t w = *src++;
+ w |= (uint64_t)(*src++) << 8;
+ w |= (uint64_t)(*src++) << 16;
+ w |= (uint64_t)(*src++) << 24;
+ w |= (uint64_t)(*src++) << 32;
+ w |= (uint64_t)(*src++) << 40;
+ w |= (uint64_t)(*src++) << 48;
+ w |= (uint64_t)(*src++) << 56;
return w;
}
}
-static ossl_inline void store32(void *dst, uint32_t w)
+static ossl_inline void store32(uint8_t *dst, uint32_t w)
{
const union {
long one;
}
}
-static ossl_inline void store64(void *dst, uint64_t w)
+static ossl_inline void store64(uint8_t *dst, uint64_t w)
{
const union {
long one;
}
}
-static ossl_inline uint64_t load48(const void *src)
+static ossl_inline uint64_t load48(const uint8_t *src)
{
- const uint8_t *p = (const uint8_t *)src;
- uint64_t w = *p++;
- w |= (uint64_t)(*p++) << 8;
- w |= (uint64_t)(*p++) << 16;
- w |= (uint64_t)(*p++) << 24;
- w |= (uint64_t)(*p++) << 32;
- w |= (uint64_t)(*p++) << 40;
+ uint64_t w = *src++;
+ w |= (uint64_t)(*src++) << 8;
+ w |= (uint64_t)(*src++) << 16;
+ w |= (uint64_t)(*src++) << 24;
+ w |= (uint64_t)(*src++) << 32;
+ w |= (uint64_t)(*src++) << 40;
return w;
}
-static ossl_inline void store48(void *dst, uint64_t w)
+static ossl_inline void store48(uint8_t *dst, uint64_t w)
{
uint8_t *p = (uint8_t *)dst;
*p++ = (uint8_t)w;
/* init2 xors IV with input parameter block */
static void blake2s_init_param(BLAKE2S_CTX *S, const BLAKE2S_PARAM *P)
{
- const uint32_t *p = (const uint32_t *)(P);
+ const uint8_t *p = (const uint8_t *)(P);
size_t i;
/* The param struct is carefully hand packed, and should be 32 bytes on
blake2s_init0(S);
/* IV XOR ParamBlock */
for(i = 0; i < 8; ++i) {
- S->h[i] ^= load32(&p[i]);
+ S->h[i] ^= load32(&p[i*4]);
}
}
P->key_length = 0;
P->fanout = 1;
P->depth = 1;
- store32(&P->leaf_length, 0);
- store48(&P->node_offset, 0);
+ store32(P->leaf_length, 0);
+ store48(P->node_offset, 0);
P->node_depth = 0;
P->inner_length = 0;
memset(P->salt, 0, sizeof(P->salt));
uint8_t key_length; /* 2 */
uint8_t fanout; /* 3 */
uint8_t depth; /* 4 */
- uint32_t leaf_length; /* 8 */
+ uint8_t leaf_length[4];/* 8 */
uint8_t node_offset[6];/* 14 */
uint8_t node_depth; /* 15 */
uint8_t inner_length; /* 16 */
uint8_t key_length; /* 2 */
uint8_t fanout; /* 3 */
uint8_t depth; /* 4 */
- uint32_t leaf_length; /* 8 */
- uint64_t node_offset; /* 16 */
+ uint8_t leaf_length[4];/* 8 */
+ uint8_t node_offset[8];/* 16 */
uint8_t node_depth; /* 17 */
uint8_t inner_length; /* 18 */
uint8_t reserved[14]; /* 32 */