#!/bin/bash

QUESTTEXT='Wie ist dein Name/Nick?'
HELPTEXT="Nickname"

DLG=`which zenity`
if [[ $? -ne 0 ]] ; then
    if [[ "$1" == "" ]] ; then
        echo "Passphrasengenerierung abgebrochen. Bitte einen Nutzernamen als Kommandoparameter angeben."
        exit 1
    else
        USER=$1
        DIALOG=cmd
    fi
else
    if [[ "$1" == "" ]] ; then
        USER=`zenity --entry --text="$QUESTTEXT" --entry-text=$HELPTEXT`
    else
        USER=`zenity --entry --text="$QUESTTEXT" --entry-text="$1"`
    fi
    if [[ $? -ne 0   ||  "$USER" == "$HELPTEXT" ]] ; then
        echo "Passphrasengenerierung abgebrochen."
        exit 1
    fi
    DIALOG=zenity
fi

STAMP=`date +%Y-%m-%dT%T`
FILE="$PWD/$USER.$STAMP.keyhash"
PASSPHRASE=`tr -dc _a-z0-9 </dev/urandom | head -c 31`
PPHASH=`echo "$PASSPHRASE" | sha512sum | tr --delete " -"`

echo "$USER;$STAMP;$PPHASH">>$FILE

# Ausgabe
TEXT="Hallo $USER,\ndeine neue Passphrase ist:\n\n\t$PASSPHRASE\n
Hinweis:\tDie Passphrase erscheint nur in diesem Dialog und im Terminal\n\t\tund wird sonst nirgendwo gespeichert. Sichere sie dir bitte!\n\n
Es wurde eine Datei mit deinen Schlüsseldaten generiert. Ihr Name lautet:
\n\t$FILE\n\nÜbergib sie bitte vertrauensvoll an einen Schließsystemverantwortlichen.\n"

case "$DIALOG" in
    zenity)
        zenity --info --text="$TEXT" --window-icon=warning
        ;;
    *)
    ;;
esac

echo -e "$TEXT"
