lilliput-ae-reference-implementation

Implementations of Lilliput-AE submitted to the NIST LWC standardization process
git clone https://git.kevinlegouguec.net/lilliput-ae-reference-implementation
Log | Files | Refs | README

commit 6726d240017eb64ea042115005251e457bbb112b
parent fca886ea9494d7ae6178004d0080ed1a09f03cc9
Author: Kévin Le Gouguec <kevin.legouguec@airbus.com>
Date:   Mon,  4 Feb 2019 08:50:22 +0100

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.

Diffstat:
Mtest/check-implementation.sh | 43+++++++++++++++++++++++++++----------------
1 file changed, 27 insertions(+), 16 deletions(-)

diff --git 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}