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

generate-vectors.sh (955B)


      1 #!/bin/bash
      2 
      3 set -eu
      4 
      5 PYTHON_DIR=$(dirname $0)
      6 ROOT_DIR=${PYTHON_DIR}/../..
      7 SRC_DIR=${ROOT_DIR}/src/add_python
      8 RESULTS_DIR=${ROOT_DIR}/results
      9 CRYPTO_AEAD=${RESULTS_DIR}/crypto_aead_py
     10 
     11 VERSION=$(${ROOT_DIR}/nist/version.sh)
     12 
     13 mkdir -p ${CRYPTO_AEAD}/lilliputae{i,ii}{128,192,256}v${VERSION}
     14 
     15 declare -A NAMES=([1]=lilliputaei [2]=lilliputaeii)
     16 
     17 
     18 generate ()
     19 {
     20     local mode=$1
     21     local keylen=$2
     22     local dest_dir=${CRYPTO_AEAD}/${NAMES[${mode}]}${keylen}v${VERSION}
     23     local param_dir=${RESULTS_DIR}/python-${mode}-${keylen}
     24 
     25     mkdir -p ${param_dir}
     26     cat <<EOF > ${param_dir}/parameters.py
     27 MODE = ${mode}
     28 KEYBYTES = $((keylen/8))
     29 EOF
     30 
     31     echo ${mode} ${keylen}: starting
     32 
     33     PYTHONPATH=${param_dir}:${SRC_DIR} ${PYTHON_DIR}/genkat_aead.py ${dest_dir}
     34 
     35     echo ${mode} ${keylen}: finished
     36 }
     37 
     38 
     39 for mode in 1 2
     40 do
     41     for keylen in 128 192 256
     42     do
     43         generate ${mode} ${keylen} &
     44     done
     45 done
     46 
     47 for ((i=0; i<6; i++))
     48 do
     49     wait -n
     50 done