diff options
Diffstat (limited to 'libkeccak_state_create.c')
-rw-r--r-- | libkeccak_state_create.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libkeccak_state_create.c b/libkeccak_state_create.c new file mode 100644 index 0000000..a9ebc84 --- /dev/null +++ b/libkeccak_state_create.c @@ -0,0 +1,20 @@ +/* See LICENSE file for copyright and license details. */ +#include "common.h" + + +/** + * Wrapper for `libkeccak_state_initialise` that also allocates the states + * + * @param spec The specifications for the state + * @return The state, `NULL` on error + */ +struct libkeccak_state * +libkeccak_state_create(const struct libkeccak_spec *restrict spec) +{ + struct libkeccak_state *restrict state = malloc(sizeof(struct libkeccak_state)); + if (!state || libkeccak_state_initialise(state, spec)) { + free(state); + return NULL; + } + return state; +} |