diff options
Diffstat (limited to '')
-rw-r--r-- | common.c | 4 | ||||
-rw-r--r-- | common.h | 23 |
2 files changed, 18 insertions, 9 deletions
@@ -122,7 +122,7 @@ make_spec(libkeccak_generalised_spec_t *restrict gspec, libkeccak_spec_t *restri { int r; -#define TEST(CASE, STR) case LIBKECCAK_GENERALISED_SPEC_ERROR_##CASE: return USER_ERROR(STR) +#define TEST(CASE, STR) case LIBKECCAK_GENERALISED_SPEC_ERROR_##CASE: return USER_ERROR(STR) if (r = libkeccak_degeneralise_spec(gspec, spec), r) { switch (r) { TEST (STATE_NONPOSITIVE, "the state size must be positive"); @@ -142,7 +142,7 @@ make_spec(libkeccak_generalised_spec_t *restrict gspec, libkeccak_spec_t *restri } #undef TEST -#define TEST(CASE, STR) case LIBKECCAK_SPEC_ERROR_##CASE: return USER_ERROR(STR) +#define TEST(CASE, STR) case LIBKECCAK_SPEC_ERROR_##CASE: return USER_ERROR(STR) if (r = libkeccak_spec_check(spec), r) { switch (r) { TEST (BITRATE_NONPOSITIVE, "the rate size must be positive"); @@ -1,13 +1,22 @@ /* See LICENSE file for copyright and license details. */ #include <libkeccak.h> -/** - * Wrapper for `run` that also initialises the command line parser - * - * @param suffix The message suffix - */ -#define RUN(suffix)\ - (run(argc, argv, &spec, suffix)) + +#define COMMON_MAIN(CONFIGURATION, SUFFIX)\ + int main(int argc, char *argv[]) {\ + libkeccak_generalised_spec_t spec;\ + libkeccak_generalised_spec_initialise(&spec);\ + CONFIGURATION;\ + return run(argc, argv, &spec, SUFFIX);\ + } +#define KECCAK_MAIN(N)\ + COMMON_MAIN(libkeccak_spec_sha3((libkeccak_spec_t *)&spec, N), "") +#define SHA3_MAIN(N)\ + COMMON_MAIN(libkeccak_spec_sha3((libkeccak_spec_t *)&spec, N), LIBKECCAK_SHA3_SUFFIX) +#define RAWSHAKE_MAIN(N)\ + COMMON_MAIN(libkeccak_spec_rawshake((libkeccak_spec_t *)&spec, N, N), LIBKECCAK_RAWSHAKE_SUFFIX) +#define SHAKE_MAIN(N)\ + COMMON_MAIN(libkeccak_spec_shake((libkeccak_spec_t *)&spec, N, N), LIBKECCAK_SHAKE_SUFFIX) /** |