diff options
Diffstat (limited to 'libkeccak_state_marshal.c')
-rw-r--r-- | libkeccak_state_marshal.c | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/libkeccak_state_marshal.c b/libkeccak_state_marshal.c deleted file mode 100644 index 480b4a4..0000000 --- a/libkeccak_state_marshal.c +++ /dev/null @@ -1,55 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include "common.h" - - -#if defined(__clang__) -# pragma clang diagnostic ignored "-Wcast-align" -#endif - - -/** - * Marshal a `struct libkeccak_state` into a buffer - * - * @param state The state to marshal - * @param data_ The output buffer, can be `NULL` - * @return The number of bytes stored to `data` - */ -size_t -libkeccak_state_marshal(const struct libkeccak_state *restrict state, void *restrict data_) -{ -#define set(VAR)\ - do {\ - __builtin_memcpy(data, &state->VAR, sizeof(state->VAR));\ - data += sizeof(state->VAR);\ - } while (0) - - unsigned char *restrict start = data_; - unsigned char *restrict data = start; - - if (!data) { - return 7 * sizeof(long int) + - 1 * sizeof(int64_t) + - sizeof(state->S) + - 2 * sizeof(size_t) + - state->mptr; - } - - set(r); - set(c); - set(n); - set(b); - set(w); - set(wmod); - set(l); - set(nr); - __builtin_memcpy(data, state->S, sizeof(state->S)); - data += sizeof(state->S); - set(mptr); - set(mlen); - memcpy(data, state->M, state->mptr * sizeof(char)); - data += state->mptr; - - return (size_t)(data - start); - -#undef set -} |