#!/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}