From 3c802756aa4e6183fafeca36723416e19886e669 Mon Sep 17 00:00:00 2001 From: Joost Rijneveld Date: Thu, 26 Oct 2017 13:47:29 +0200 Subject: [PATCH] Separate UI and test files --- .gitignore | 12 +++---- Makefile | 18 ++++++---- test/xmssmt_keypair.c | 30 ----------------- test/xmssmt_open.c | 47 -------------------------- test/xmssmt_sign.c | 52 ----------------------------- test/xmss_keypair.c => ui/keypair.c | 16 +++++++-- test/xmss_open.c => ui/open.c | 12 +++++-- test/xmss_sign.c => ui/sign.c | 14 ++++++-- 8 files changed, 52 insertions(+), 149 deletions(-) delete mode 100644 test/xmssmt_keypair.c delete mode 100644 test/xmssmt_open.c delete mode 100644 test/xmssmt_sign.c rename test/xmss_keypair.c => ui/keypair.c (62%) rename test/xmss_open.c => ui/open.c (77%) rename test/xmss_sign.c => ui/sign.c (81%) diff --git a/.gitignore b/.gitignore index 03519f3..9d350c0 100644 --- a/.gitignore +++ b/.gitignore @@ -14,9 +14,9 @@ test/test_xmssmt_core_fast_XMSSMT* test/test_determinism test/speed test/gen_testvectors -test/xmss_keypair -test/xmss_open -test/xmss_sign -test/xmssmt_keypair -test/xmssmt_open -test/xmssmt_sign +ui/xmss_keypair +ui/xmss_open +ui/xmss_sign +ui/xmssmt_keypair +ui/xmssmt_open +ui/xmssmt_sign diff --git a/Makefile b/Makefile index 993e53c..eaa4342 100644 --- a/Makefile +++ b/Makefile @@ -17,12 +17,12 @@ TESTS = test/test_wots \ test/test_xmssmt \ test/test_determinism \ -UI = test/xmss_keypair \ - test/xmss_sign \ - test/xmss_open \ - test/xmssmt_keypair \ - test/xmssmt_sign \ - test/xmssmt_open \ +UI = ui/xmss_keypair \ + ui/xmss_sign \ + ui/xmss_open \ + ui/xmssmt_keypair \ + ui/xmssmt_sign \ + ui/xmssmt_open \ all: $(TESTS) $(UI) @@ -37,6 +37,12 @@ test/%: test/%.c $(SOURCES) $(OBJS) $(HEADERS) test/test_wots: params.c hash.c fips202.c hash_address.c randombytes.c wots.c xmss_commons.c test/test_wots.c params.h hash.h fips202.h hash_address.h randombytes.h wots.h xmss_commons.h $(CC) $(CFLAGS) params.c hash.c fips202.c hash_address.c randombytes.c wots.c xmss_commons.c test/test_wots.c -o $@ -lcrypto +ui/xmss_%: ui/%.c $(SOURCES) $(OBJS) $(HEADERS) + $(CC) $(CFLAGS) -o $@ $(SOURCES) $< $(LDLIBS) + +ui/xmssmt_%: ui/%.c $(SOURCES) $(OBJS) $(HEADERS) + $(CC) -DXMSSMT $(CFLAGS) -o $@ $(SOURCES) $< $(LDLIBS) + clean: -$(RM) $(TESTS) -$(RM) $(UI) diff --git a/test/xmssmt_keypair.c b/test/xmssmt_keypair.c deleted file mode 100644 index 375356e..0000000 --- a/test/xmssmt_keypair.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "../params.h" -#include "../xmss.h" -#include -#include - -int main(int argc, char **argv) -{ - xmss_params params; - uint32_t oid; - - if (argc != 2) { - fprintf(stderr, "Expected parameter string (e.g. 'XMSS-SHA2_10_256')" - " as only parameter.\n" - "The keypair is written to stdout.\n"); - return -1; - } - - xmssmt_str_to_oid(&oid, argv[1]); - xmssmt_parse_oid(¶ms, oid); - - unsigned char pk[XMSS_OID_LEN + params.pk_bytes]; - unsigned char sk[XMSS_OID_LEN + params.sk_bytes]; - - xmssmt_keypair(pk, sk, oid); - - fwrite(pk, 1, XMSS_OID_LEN + params.pk_bytes, stdout); - fwrite(sk, 1, XMSS_OID_LEN + params.sk_bytes, stdout); - - fclose(stdout); -} diff --git a/test/xmssmt_open.c b/test/xmssmt_open.c deleted file mode 100644 index 821f517..0000000 --- a/test/xmssmt_open.c +++ /dev/null @@ -1,47 +0,0 @@ -#include "../params.h" -#include "../xmss_core.h" -#include - -#define MLEN 32 - -int main(int argc, char **argv) { - FILE *keypair; - xmss_params params; - uint32_t oid; - int ret; - - if (argc != 2) { - fprintf(stderr, "Expected keypair filename as only parameter, " - "and the signature + message via stdin.\n" - "Keypair file needs only to contain the public key.\n" - "The return code 0 indicates verification success.\n"); - return -1; - } - - keypair = fopen(argv[1], "rb"); - if (keypair == NULL) { - return -1; - } - - fread(&oid, 1, XMSS_OID_LEN, keypair); - xmssmt_parse_oid(¶ms, oid); - - unsigned char pk[params.pk_bytes]; - unsigned char sm[params.sig_bytes + MLEN]; - unsigned char m[params.sig_bytes + MLEN]; - unsigned long long mlen; - - fread(pk, 1, params.pk_bytes, keypair); - fread(sm, 1, params.sig_bytes + MLEN, stdin); - - ret = xmssmt_core_sign_open(¶ms, m, &mlen, sm, params.sig_bytes + MLEN, pk); - - if (ret) { - printf("Verification failed!\n"); - } - else { - printf("Verification succeeded.\n"); - } - - return ret; -} diff --git a/test/xmssmt_sign.c b/test/xmssmt_sign.c deleted file mode 100644 index 6e29517..0000000 --- a/test/xmssmt_sign.c +++ /dev/null @@ -1,52 +0,0 @@ -#include "../params.h" -#include "../xmss_core.h" -#include - -#define MLEN 32 - -int main(int argc, char **argv) { - FILE *keypair; - xmss_params params; - uint32_t oid_pk; - uint32_t oid_sk; - - if (argc != 2) { - fprintf(stderr, "Expected keypair filename as only parameter, " - "and the message via stdin.\n" - "The keypair is updated with the changed state, " - "and the message + signature is output via stdout.\n"); - return -1; - } - - keypair = fopen(argv[1], "r+b"); - if (keypair == NULL) { - fprintf(stderr, "Could not open keypair file.\n"); - return -1; - } - - /* Read the OID from the public key, as we need its length to seek past it. */ - fread(&oid_pk, 1, XMSS_OID_LEN, keypair); - xmssmt_parse_oid(¶ms, oid_pk); - - /* fseek past the public key. */ - fseek(keypair, params.pk_bytes, SEEK_CUR); - /* This is the OID we're actually going to use. Likely the same, but still.. */ - fread(&oid_sk, 1, XMSS_OID_LEN, keypair); - xmssmt_parse_oid(¶ms, oid_sk); - - unsigned char sk[params.sk_bytes]; - unsigned char m[MLEN]; - unsigned char sm[params.sig_bytes + MLEN]; - unsigned long long smlen; - - fread(sk, 1, params.sk_bytes, keypair); - fread(m, 1, MLEN, stdin); - xmssmt_core_sign(¶ms, sk, sm, &smlen, m, MLEN); - - fseek(keypair, -((long int)params.sk_bytes), SEEK_CUR); - fwrite(sk, 1, params.sk_bytes, keypair); - fwrite(sm, 1, params.sig_bytes + MLEN, stdout); - - fclose(keypair); - fclose(stdout); -} diff --git a/test/xmss_keypair.c b/ui/keypair.c similarity index 62% rename from test/xmss_keypair.c rename to ui/keypair.c index 1d505d5..7c0833b 100644 --- a/test/xmss_keypair.c +++ b/ui/keypair.c @@ -3,6 +3,16 @@ #include #include +#ifdef XMSSMT + #define XMSS_STR_TO_OID xmssmt_str_to_oid + #define XMSS_PARSE_OID xmssmt_parse_oid + #define XMSS_KEYPAIR xmssmt_keypair +#else + #define XMSS_STR_TO_OID xmss_str_to_oid + #define XMSS_PARSE_OID xmss_parse_oid + #define XMSS_KEYPAIR xmss_keypair +#endif + int main(int argc, char **argv) { xmss_params params; @@ -15,13 +25,13 @@ int main(int argc, char **argv) return -1; } - xmss_str_to_oid(&oid, argv[1]); - xmss_parse_oid(¶ms, oid); + XMSS_STR_TO_OID(&oid, argv[1]); + XMSS_PARSE_OID(¶ms, oid); unsigned char pk[XMSS_OID_LEN + params.pk_bytes]; unsigned char sk[XMSS_OID_LEN + params.sk_bytes]; - xmss_keypair(pk, sk, oid); + XMSS_KEYPAIR(pk, sk, oid); fwrite(pk, 1, XMSS_OID_LEN + params.pk_bytes, stdout); fwrite(sk, 1, XMSS_OID_LEN + params.sk_bytes, stdout); diff --git a/test/xmss_open.c b/ui/open.c similarity index 77% rename from test/xmss_open.c rename to ui/open.c index fd41210..1cc4929 100644 --- a/test/xmss_open.c +++ b/ui/open.c @@ -4,6 +4,14 @@ #define MLEN 32 +#ifdef XMSSMT + #define XMSS_PARSE_OID xmssmt_parse_oid + #define XMSS_CORE_SIGN_OPEN xmssmt_core_sign_open +#else + #define XMSS_PARSE_OID xmss_parse_oid + #define XMSS_CORE_SIGN_OPEN xmss_core_sign_open +#endif + int main(int argc, char **argv) { FILE *keypair; xmss_params params; @@ -24,7 +32,7 @@ int main(int argc, char **argv) { } fread(&oid, 1, XMSS_OID_LEN, keypair); - xmss_parse_oid(¶ms, oid); + XMSS_PARSE_OID(¶ms, oid); unsigned char pk[params.pk_bytes]; unsigned char sm[params.sig_bytes + MLEN]; @@ -34,7 +42,7 @@ int main(int argc, char **argv) { fread(pk, 1, params.pk_bytes, keypair); fread(sm, 1, params.sig_bytes + MLEN, stdin); - ret = xmss_core_sign_open(¶ms, m, &mlen, sm, params.sig_bytes + MLEN, pk); + ret = XMSS_CORE_SIGN_OPEN(¶ms, m, &mlen, sm, params.sig_bytes + MLEN, pk); if (ret) { printf("Verification failed!\n"); diff --git a/test/xmss_sign.c b/ui/sign.c similarity index 81% rename from test/xmss_sign.c rename to ui/sign.c index c4132f5..574fa58 100644 --- a/test/xmss_sign.c +++ b/ui/sign.c @@ -4,6 +4,14 @@ #define MLEN 32 +#ifdef XMSSMT + #define XMSS_PARSE_OID xmssmt_parse_oid + #define XMSS_CORE_SIGN xmssmt_core_sign +#else + #define XMSS_PARSE_OID xmss_parse_oid + #define XMSS_CORE_SIGN xmss_core_sign +#endif + int main(int argc, char **argv) { FILE *keypair; xmss_params params; @@ -26,13 +34,13 @@ int main(int argc, char **argv) { /* Read the OID from the public key, as we need its length to seek past it */ fread(&oid_pk, 1, XMSS_OID_LEN, keypair); - xmss_parse_oid(¶ms, oid_pk); + XMSS_PARSE_OID(¶ms, oid_pk); /* fseek past the public key */ fseek(keypair, params.pk_bytes, SEEK_CUR); /* This is the OID we're actually going to use. Likely the same, but still. */ fread(&oid_sk, 1, XMSS_OID_LEN, keypair); - xmss_parse_oid(¶ms, oid_sk); + XMSS_PARSE_OID(¶ms, oid_sk); unsigned char sk[params.sk_bytes]; unsigned char m[MLEN]; @@ -41,7 +49,7 @@ int main(int argc, char **argv) { fread(sk, 1, params.sk_bytes, keypair); fread(m, 1, MLEN, stdin); - xmss_core_sign(¶ms, sk, sm, &smlen, m, MLEN); + XMSS_CORE_SIGN(¶ms, sk, sm, &smlen, m, MLEN); fseek(keypair, -((long int)params.sk_bytes), SEEK_CUR); fwrite(sk, 1, params.sk_bytes, keypair);