diff options
| author | Kévin Le Gouguec <kevin.legouguec@airbus.com> | 2019-02-04 08:50:22 +0100 |
|---|---|---|
| committer | Kévin Le Gouguec <kevin.legouguec@airbus.com> | 2019-02-04 08:50:22 +0100 |
| commit | 6726d240017eb64ea042115005251e457bbb112b (patch) | |
| tree | 88c81a3e0103ad3124f4aee6d16bf271c2d6b16a | |
| parent | fca886ea9494d7ae6178004d0080ed1a09f03cc9 (diff) | |
| download | lilliput-ae-implem-6726d240017eb64ea042115005251e457bbb112b.tar.xz | |
Finalisation du script de comparaison d'implémentations
Comme mentionné dans le commit précédent, ce test devrait permettre de
détecter des déviations par rapport à l'implémentation de référence.
Les tests de Lilliput-Ⅰ-128 remplissent le même rôle, mais je n'avais
pas envie de passer du temps à les copier-coller puis à les adapter
aux différentes tailles de clés et de tweaks.
| -rwxr-xr-x | test/check-implementation.sh | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/test/check-implementation.sh b/test/check-implementation.sh index 985ff04..0ce739d 100755 --- a/test/check-implementation.sh +++ b/test/check-implementation.sh @@ -6,7 +6,7 @@ set -eu # well as another one, and compare vectors. TEST_DIR=$(dirname $0) -ROOT=${TEST_DIR}/.. +ROOT_DIR=${TEST_DIR}/.. implem=$1 @@ -17,8 +17,12 @@ run-genkat () local implem=$2 local mode=$3 local keylen=$4 + echo "Testing mode ${mode}-${keylen}…" - local src_dir=${ROOT}/src/ + local src_dir=${ROOT_DIR}/src + local vectors_dir=${tmp_dir}/vectors/${implem} + local genkat_dir=${tmp_dir}/genkat/${implem}/${mode}-${keylen} + local genkat=${genkat_dir}/genkat local source_files=( ae-common.h @@ -28,30 +32,34 @@ run-genkat () tweakey.{c,h} ) + mkdir -p ${genkat_dir} # "-p" to allow comparing ref against ref. + local f for f in ${source_files[@]} do - cp ${src_dir}/${implem}/${f} ${tmp_dir} + cp ${src_dir}/${implem}/${f} ${genkat_dir} done - cp ${src_dir}/${mode}-${keylen}/_parameters.h ${tmp_dir} - cp ${ROOT_DIR}/nist/{api.h,encrypt.c} ${tmp_dir} + cp ${src_dir}/${mode}-${keylen}/_parameters.h ${genkat_dir} + cp ${ROOT_DIR}/nist/{api.h,encrypt.c} ${genkat_dir} + cp ${ROOT_DIR}/nist/TestVectorGen/* ${genkat_dir} local nist_flags=(-std=c99 -Wall -Wextra -Wshadow -fsanitize=address,undefined -O2) - gcc ${nist_flags[@]} -Werror -I${tmp_dir} -o ${tmp_dir}/genkat - ( - cd ${tmp_dir} - ./genkat - cat LWC_AEAD_KAT*.txt - ) + gcc ${nist_flags[@]} -Werror -I${genkat_dir} ${genkat_dir}/*.c -o ${genkat} + + ${genkat} + mv LWC_AEAD_KAT*.txt ${vectors_dir}/${mode}-${keylen} } test-implem () { - local implem=$1 - local tmp_dir=$(mktemp -d) + local tmp_dir=$1 + local implem=$2 + echo "Testing implementation ${implem}…" + + mkdir -p ${tmp_dir}/{genkat,vectors}/${implem} local mode local keylen @@ -63,9 +71,12 @@ test-implem () run-genkat ${tmp_dir} ${implem} ${mode} ${keylen} done done - - rm -r ${tmp_dir} } -diff -u <(test-implem ref) <(test-implem ${implem}) +tmp_dir=$(mktemp -d) + +test-implem ${tmp_dir} ref +test-implem ${tmp_dir} ${implem} + +diff --brief --new-file --recursive ${tmp_dir}/vectors/ref ${tmp_dir}/vectors/${implem} |
