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 e83abe9fdbab07e6df80443240d4d649303a3dd4
parent ba01ba773731cb2c906beb6855dfea588dc8cf09
Author: Kévin Le Gouguec <kevin.legouguec@airbus.com>
Date:   Fri, 22 Mar 2019 16:41:34 +0100

[implem-python] Déplacement dans le dossier SOUMISSION_NIST

Et ajout d'un métascript pour vérifier la conformité.

Il ne reste plus qu'à… (bis)

Diffstat:
M.gitignore | 1+
Dpython/.gitignore | 3---
Dpython/compare.sh | 15---------------
Dpython/generate-vectors.sh | 27---------------------------
Rpython/lilliput/__init__.py -> src/add_python/lilliput/__init__.py | 0
Rpython/lilliput/constants.py -> src/add_python/lilliput/constants.py | 0
Rpython/lilliput/helpers.py -> src/add_python/lilliput/helpers.py | 0
Rpython/lilliput/lilliput_ae_1.py -> src/add_python/lilliput/lilliput_ae_1.py | 0
Rpython/lilliput/lilliput_ae_2.py -> src/add_python/lilliput/lilliput_ae_2.py | 0
Rpython/lilliput/multiplications.py -> src/add_python/lilliput/multiplications.py | 0
Rpython/lilliput/tbc.py -> src/add_python/lilliput/tbc.py | 0
Atest/python.sh | 11+++++++++++
Atest/python/compare.sh | 17+++++++++++++++++
Rpython/crypto_aead.py -> test/python/crypto_aead.py | 0
Atest/python/generate-vectors.sh | 31+++++++++++++++++++++++++++++++
Rpython/genkat_aead.py -> test/python/genkat_aead.py | 0
16 files changed, 60 insertions(+), 45 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -1,3 +1,4 @@ crypto_aead results +__pycache__ *.tgz diff --git a/python/.gitignore b/python/.gitignore @@ -1,2 +0,0 @@ -__pycache__ -results -\ No newline at end of file diff --git a/python/compare.sh b/python/compare.sh @@ -1,15 +0,0 @@ -#!/bin/bash - -# TODO: make sure reference crypto_aead exists -# TODO: cleanup previous vectors and run genkat_aead.py - -set -eux - -mkdir -p results/crypto_aead_ref -for d in ../../SOUMISSION_NIST/REFERENCE_IMPLEMENTATION/crypto_aead/lilliputaei* -do - mkdir -p results/crypto_aead_ref/$(basename $d) - cp $d/LWC*.txt results/crypto_aead_ref/$(basename $d)/ -done - -diff -ru results/crypto_aead_ref results/crypto_aead diff --git a/python/generate-vectors.sh b/python/generate-vectors.sh @@ -1,27 +0,0 @@ -#!/bin/bash - -set -eu - -rm -rf results - -mkdir -p results/crypto_aead/lilliputae{i,ii}{128,192,256}v1 - -declare -A names=([1]=lilliputaei [2]=lilliputaeii) - -for mode in 1 2 -do - for keylen in 128 192 256 - do - echo generating for ${mode} ${keylen} - - cat <<EOF > results/parameters.py -MODE = ${mode} -KEYBYTES = $((keylen/8)) -EOF - - PYTHONPATH=results ./genkat_aead.py - - dest=results/crypto_aead/${names[${mode}]}${keylen}v1 - mv LWC_AEAD_KAT_${keylen}_120.txt ${dest} - done -done diff --git a/python/lilliput/__init__.py b/src/add_python/lilliput/__init__.py diff --git a/python/lilliput/constants.py b/src/add_python/lilliput/constants.py diff --git a/python/lilliput/helpers.py b/src/add_python/lilliput/helpers.py diff --git a/python/lilliput/lilliput_ae_1.py b/src/add_python/lilliput/lilliput_ae_1.py diff --git a/python/lilliput/lilliput_ae_2.py b/src/add_python/lilliput/lilliput_ae_2.py diff --git a/python/lilliput/multiplications.py b/src/add_python/lilliput/multiplications.py diff --git a/python/lilliput/tbc.py b/src/add_python/lilliput/tbc.py diff --git a/test/python.sh b/test/python.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -eu + +TEST_DIR=$(dirname $0) +ROOT_DIR=${TEST_DIR}/.. + +make -C ${ROOT_DIR} nist + +./python/generate-vectors.sh +./python/compare.sh diff --git a/test/python/compare.sh b/test/python/compare.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +PYTHON_DIR=$(dirname $0) +ROOT_DIR=${PYTHON_DIR}/../../ +RESULTS_DIR=${ROOT_DIR}/results +CRYPTO_AEAD=${ROOT_DIR}/crypto_aead + +set -eu + +mkdir -p ${RESULTS_DIR}/crypto_aead_ref +for d in ${CRYPTO_AEAD}/lilliputaei* +do + mkdir -p ${RESULTS_DIR}/crypto_aead_ref/$(basename $d) + cp $d/LWC*.txt ${RESULTS_DIR}/crypto_aead_ref/$(basename $d)/ +done + +diff -ru ${RESULTS_DIR}/crypto_aead_ref ${RESULTS_DIR}/crypto_aead_py diff --git a/python/crypto_aead.py b/test/python/crypto_aead.py diff --git a/test/python/generate-vectors.sh b/test/python/generate-vectors.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +set -eu + +PYTHON_DIR=$(dirname $0) +ROOT_DIR=${PYTHON_DIR}/../../ +SRC_DIR=${ROOT_DIR}/src/add_python +RESULTS_DIR=${ROOT_DIR}/results +CRYPTO_AEAD=${RESULTS_DIR}/crypto_aead_py + +mkdir -p ${CRYPTO_AEAD}/lilliputae{i,ii}{128,192,256}v1 + +declare -A names=([1]=lilliputaei [2]=lilliputaeii) + +for mode in 1 2 +do + for keylen in 128 192 256 + do + echo generating for ${mode} ${keylen} + + cat <<EOF > ${RESULTS_DIR}/parameters.py +MODE = ${mode} +KEYBYTES = $((keylen/8)) +EOF + + PYTHONPATH=${RESULTS_DIR}:${SRC_DIR} ${PYTHON_DIR}/genkat_aead.py + + dest=${CRYPTO_AEAD}/${names[${mode}]}${keylen}v1 + mv LWC_AEAD_KAT_${keylen}_120.txt ${dest} + done +done diff --git a/python/genkat_aead.py b/test/python/genkat_aead.py