From e744e3907713a073100cfe96769fe235b1bf50b8 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Fri, 15 Mar 2019 17:25:56 +0100 Subject: [felics] Automatisation de la mise à jour des vecteurs FELICS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/felics/Makefile | 4 ++-- test/felics/make-vector.c | 41 +++++++++++++++++++++++++++++------------ test/felics/make-vectors.sh | 20 +++++++++++++++++++- 3 files changed, 50 insertions(+), 15 deletions(-) (limited to 'test') diff --git a/test/felics/Makefile b/test/felics/Makefile index e6a2e91..71728f2 100644 --- a/test/felics/Makefile +++ b/test/felics/Makefile @@ -1,5 +1,5 @@ define usage -$(error usage: make vector mode=[i|ii] keylen=[128|192|256]) +$(error usage: make vector mode=[i|ii] keylen=[128|192|256] [output=OUTPUT]) endef ifndef mode @@ -15,7 +15,7 @@ include ../common.mk vector: $(results_dir)/felics-make-vector | $(results_dir) - $(results_dir)/felics-make-vector 16 16 + $(results_dir)/felics-make-vector 16 16 $(output) $(results_dir)/felics-make-vector: $(results_dir)/felics-make-vector.o \ diff --git a/test/felics/make-vector.c b/test/felics/make-vector.c index 1abe088..b222f90 100644 --- a/test/felics/make-vector.c +++ b/test/felics/make-vector.c @@ -6,10 +6,21 @@ #include "lilliput-ae.h" -void parse_arguments(char const* const* argv, size_t* plaintext_len, size_t* auth_len) +void parse_arguments( + size_t argc, + char const* const* argv, + size_t* plaintext_len, + size_t* auth_len, + FILE** output +) { sscanf(argv[1], "%zu", plaintext_len); sscanf(argv[2], "%zu", auth_len); + + if (argc > 3) + *output = fopen(argv[3], "w"); + else + *output = stdout; } void init_buffer(size_t len, uint8_t buf[len]) @@ -18,25 +29,26 @@ void init_buffer(size_t len, uint8_t buf[len]) buf[i] = i; } -void dump_buffer(const char* header, size_t len, const uint8_t buf[len]) +void dump_buffer(FILE* output, const char* header, size_t len, const uint8_t buf[len]) { - printf("%s = { ", header); + fprintf(output, "%s = { ", header); for (const uint8_t* b=buf; b\n"); + fprintf(output, "#include \"test_vectors.h\"\n"); + + dump_buffer(output, "const uint8_t expectedPlaintext[MAXTEST_BYTES_M]", plaintext_len, plaintext); + dump_buffer(output, "const uint8_t expectedAssociated[MAXTEST_BYTES_AD]", auth_len, auth); + dump_buffer(output, "const uint8_t expectedKey[KEY_SIZE]", KEY_BYTES, key); + dump_buffer(output, "const uint8_t expectedCiphertext[MAXTEST_BYTES_M+CRYPTO_ABYTES]", plaintext_len+TAG_BYTES, ciphertext); + + fclose(output); } diff --git a/test/felics/make-vectors.sh b/test/felics/make-vectors.sh index 2ddbc77..d6050e8 100755 --- a/test/felics/make-vectors.sh +++ b/test/felics/make-vectors.sh @@ -1,9 +1,27 @@ #!/bin/bash +set -eu + + +FELICS_CIPHERS_DIR=$1 +LILLIPUT_VERSION=$2 + + +output-filename () +{ + local mode=$1 + local keylen=$2 + local lilliput_dir=Lilliput-${mode^^}-${keylen}_v${LILLIPUT_VERSION} + + echo "${FELICS_CIPHERS_DIR}"/${lilliput_dir}/source/test_vectors.c +} + + for mode in i ii do for keylen in 128 192 256 do - make vector mode=${mode} keylen=${keylen} + output=$(output-filename ${mode} ${keylen}) + make vector mode=${mode} keylen=${keylen} output=${output} done done -- cgit v1.2.3