116 lines
3.5 KiB
Bash
116 lines
3.5 KiB
Bash
|
|
#!/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}
|