From 6726d240017eb64ea042115005251e457bbb112b Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Mon, 4 Feb 2019 08:50:22 +0100 Subject: Finalisation du script de comparaison d'implémentations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- test/check-implementation.sh | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) (limited to 'test/check-implementation.sh') 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} -- cgit v1.2.3