Sleds/libeye/testgeneratekeys.sh

116 lines
3.5 KiB
Bash
Raw Normal View History

2025-03-13 21:28:38 +00:00
#!/bin/bash
# testgeneratekeys.sh
# Unit test generation of keys...
# setup
SCRIPT=$0
echo "[OK] Script: ${SCRIPT}"
# Absolute path this script is in, thus /home/user/bin
SCRIPTPATH=`dirname ${SCRIPT}`
echo "[OK] This script is located at: $SCRIPTPATH"
if [ "$GENKEYSHOME" = "" ]; then
echo "[INFO] Using default currect working directory value"
export GENKEYSHOME=`pwd`
fi
echo "[OK] Looking for generatekeys in ${GENKEYSHOME}"
if [ ! -f ${GENKEYSHOME}/generatekeys ]; then
echo "'generatekeys' executable not found!"
exit -1
fi
VANUUID=000000
PMOCR1="bestcostume::BOB"
PMOCR2="concert::BOB"
PMOCR3="favbook::BOB"
declare -A RSAKEYS
for ((i=1; i<=100; i++))
do
PMOUSER=test${i}
echo "Generating keys for user ${PMOUSER}"
#SALT=$(createRSAKeys "${VANUUID}:${PMOUSER}" "${PMOCR1}" "${PMOCR2}" "${PMOCR3}")
${GENKEYSHOME}/generatekeys -user "${VANUUID}:${PMOUSER}" -salt "" -cr1 "${PMOCR1}" -cr2 "${PMOCR2}" -cr3 "${PMOCR3}" -noac > ./slkeytest.txt
RSAKEYS["${PMOUSER}private"]=$(cat ./slkeytest.txt | grep 'private' | sed 's/^.*: "//' | sed 's/"[,]*/\\n/')
RSAKEYS["${PMOUSER}public"]=$(cat ./slkeytest.txt | grep 'public' | sed 's/^.*: "//' | sed 's/"[,]*/\\n/')
RSAKEYS["${PMOUSER}salt"]=$(cat ./slkeytest.txt | grep 'salt' | sed 's/^.*: "//' | sed 's/"[,]*//')
done
RETCODE=0
for ((i=1; i<=100; i++))
do
PMOUSER=test${i}
SALT=${RSAKEYS["${PMOUSER}salt"]}
${GENKEYSHOME}/generatekeys -user "${VANUUID}:${PMOUSER}" -cr1 "${PMOCR1}" -cr2 "${PMOCR2}" -salt "${SALT}" -cr3 "${PMOCR3}" -noac > ./slkeytest.txt
PRIVATE=$(cat ./slkeytest.txt | grep 'private' | sed 's/^.*: "//' | sed 's/"[,]*/\\n/')
PUBLIC=$(cat ./slkeytest.txt | grep 'public' | sed 's/^.*: "//' | sed 's/"[,]*/\\n/')
SALT=$(cat ./slkeytest.txt | grep 'salt' | sed 's/^.*: "//' | sed 's/"[,]*//')
TEMP=${RSAKEYS["${PMOUSER}private"]}
if [ "${PRIVATE}" != "${TEMP}" ]; then
RETCODE=-1
echo "[ERROR] ${PMOUSER}: Private key mismatch!!!"
else
echo "[OK] ${PMOUSER}: Private key matched!"
fi
TEMP=${RSAKEYS["${PMOUSER}public"]}
if [ "${PUBLIC}" != "${TEMP}" ]; then
RETCODE=-1
echo "[ERROR] ${PMOUSER}: Public key mismatch!!!"
else
echo "[OK] ${PMOUSER}: Public key matched!"
fi
TEMP=${RSAKEYS["${PMOUSER}salt"]}
if [ "${SALT}" != "${TEMP}" ]; then
RETCODE=-1
echo "[ERROR] ${PMOUSER}: Salt mismatch!!!"
else
echo "[OK] ${PMOUSER}: Salt matched!"
fi
done
for ((i=1; i<=100; i++))
do
PMOUSER=test${i}
SALT=${PMOUSER}
${GENKEYSHOME}/generatekeys -user "${VANUUID}:${PMOUSER}" -cr1 "${PMOCR1}" -cr2 "${PMOCR2}" -salt "${SALT}" -cr3 "${PMOCR3}" -noac > ./slkeytest.txt
PRIVATE=$(cat ./slkeytest.txt | grep 'private' | sed 's/^.*: "//' | sed 's/"[,]*/\\n/')
PUBLIC=$(cat ./slkeytest.txt | grep 'public' | sed 's/^.*: "//' | sed 's/"[,]*/\\n/')
SALT=$(cat ./slkeytest.txt | grep 'salt' | sed 's/^.*: "//' | sed 's/"[,]*//')
TEMP=${RSAKEYS["${PMOUSER}private"]}
if [ "${PRIVATE}" == "${TEMP}" ]; then
RETCODE=-1
echo "[ERROR] ${PMOUSER}: Negative test, Private key matched!!!"
else
echo "[OK] ${PMOUSER}: Negative test, Private key mismatch!"
fi
TEMP=${RSAKEYS["${PMOUSER}public"]}
if [ "${PUBLIC}" == "${TEMP}" ]; then
RETCODE=-1
echo "[ERROR] ${PMOUSER}: Negative test, Public key matched!!!"
else
echo "[OK] ${PMOUSER}: Negative test, Public key mismatch!"
fi
TEMP=${RSAKEYS["${PMOUSER}salt"]}
if [ "${SALT}" == "${TEMP}" ]; then
RETCODE=-1
echo "[ERROR] ${PMOUSER}: Negative test, Salt matched!!!"
else
echo "[OK] ${PMOUSER}: Negative test, Salt mismatch!"
fi
done
exit ${RETCODE}