#! /bin/bash

# selection menu
echo "Please select your key type to generate"
printf "1.) ecdsa\n2.) rsa\n3.) ed25519\n4.) dsa\n[default ecdsa]:"
read opt
case $opt in
  "ecdsa"|1) TYPE="ecdsa" BITS="-b 521";;
  "rsa"|2) TYPE="rsa";;
  "ed25519"|3) TYPE="ed25519";;
  "dsa"|4) TYPE="dsa";;
  *) echo "blank or unkown option choosing ecdsa" && TYPE="ecdsa" BITS="-b 521";;
esac
# rsa bit selection
if [[ "$TYPE" == "rsa" ]]; then
echo "Please select RSA bits"
printf "1.) 4096\n2.) 2048\n3.) 1024\n[default 4096]:"
read opt
case $opt in
  4096|1) BITS="-b 4096";;
  2048|2) BITS="-b 2048";;
  1024|3) BITS="-b 1024";;
  *) echo "blank or unkown option choosing 4096" && BITS="-b 4096";;
esac
fi

# key generation
echo "YOUR KEY/PUBFILE IS BELOW PLEASE SAVE THIS DATA AS WE WILL NOT"
echo /tmp/stderr{,.pub} | xargs -n 1 ln -sf /dev/stderr && yes | ssh-keygen -t ${TYPE} ${BITS} -N '' -qf /tmp/stderr > /dev/null
