diff options
Diffstat (limited to 'libkeccak_state_unmarshal_skip.c')
-rw-r--r-- | libkeccak_state_unmarshal_skip.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/libkeccak_state_unmarshal_skip.c b/libkeccak_state_unmarshal_skip.c new file mode 100644 index 0000000..df488bf --- /dev/null +++ b/libkeccak_state_unmarshal_skip.c @@ -0,0 +1,18 @@ +/* See LICENSE file for copyright and license details. */ +#include "common.h" + + +/** + * Gets the number of bytes the `libkeccak_state_t` stored + * at the beginning of `data` occupies + * + * @param data The data buffer + * @return The byte size of the stored state + */ +size_t +libkeccak_state_unmarshal_skip(const void *restrict data_) +{ + const char *restrict data = data_; + data += (7 * sizeof(long int) + 26 * sizeof(int64_t)) / sizeof(char); + return sizeof(libkeccak_state_t) - sizeof(char *) + *(const size_t *)data * sizeof(char); +} |