#!/bin/sh

# change directory to $AUTOPKGTEST_TMP
cd "${AUTOPKGTEST_TMP}" || exit 1

cleanup() {
  ex=$?
  rm -f alice.* bob.*
  exit "${ex}"
}
trap "cleanup" EXIT TERM INT

# main test
EX=0
for primitive in 6960119 6688128 8192128 460896 348864; do
  for variant in '' f; do
    # alice - keypair
    "mceliece${primitive}${variant}-keypair" 5>alice.publickey 9>alice.secretkey
    # bob - encrypts
    "mceliece${primitive}-enc" >bob.ciphertext 7>bob.sessionkey 4<alice.publickey
    # alice - decrypts
    "mceliece${primitive}-dec" 7>alice.sessionkey <bob.ciphertext 8<alice.secretkey
    # compare session keys
    if [ x"`sha256sum < alice.sessionkey`" != x"`sha256sum < bob.sessionkey`" ]; then
      echo "mceliece${primitive}${variant} ... FAILED" >&2
      EX=2
    else
      echo "mceliece${primitive}${variant} ... OK"
    fi
  done
done

exit "${EX}"
