#!/bin/bash
#< Simple wrapper to openssl for encryption and decryption

CAT=/bin/cat
OPENSSL=/usr/bin/openssl

usage() {
   cat <<EoF
Usage: $(basename $0) [-d|-e] infile outfile
       -d decrypt
       -e encrypt
EoF
   exit 1
}

check_args() {
   check_file_exists ${INFILE} || {
      echo "Error: ${INFILE} does not exist" >&2
      exit 1
   }
   check_file_exists ${OUTFILE} && {
      echo "Error: ${OUTFILE} already exists" >&2
      exit 1
   }
   return 0
}

check_file_exists() {
   [[ -e "$1" ]] && return $?
}

decrypt() {
   openssl des3 -salt -d < ${INFILE} > ${OUTFILE}
}

encrypt() {
   # Can do this like this too:
   # openssl enc -des3 -salt -in inputfile -out outputfile2
   openssl des3 -salt < ${INFILE} > ${OUTFILE}
}

# main()
if [ "$#" -ne "3" ]; then
   usage
fi

INFILE=$2
OUTFILE=$3

case "$1" in
  -d ) check_args && decrypt ;;
  -e ) check_args && encrypt ;;
  *  ) usage ;;
esac

exit 0