diff options
-rw-r--r--[-rwxr-xr-x] | passwort-tresor.in | 64 | ||||
-rw-r--r-- | passwort-tresor.konf | 6 |
2 files changed, 56 insertions, 14 deletions
diff --git a/passwort-tresor.in b/passwort-tresor.in index 9d6d3c6..29762c4 100755..100644 --- a/passwort-tresor.in +++ b/passwort-tresor.in @@ -5,25 +5,65 @@ echo "Dienst: " read dienst +beenden () { + [ -n "${tmpDir}" ] && rm -rf "${tmpDir}" + exit $1 +} + +beiFehlerBeenden () { + err=$? + if [ ${err} -ne 0 ] + then + if [ -e "${tmpDir}/humanStatus" ] + then + less "${tmpDir}/humanStatus" + fi + beenden ${err} + fi +} + tmpDir="$(mktemp -d)" -text="$(${passwortDateiBefehl} | gpg -o - -d - 2> "${tmpDir}/")" +output="$( + ${passwortDateiBefehl} \ + | tee "${tmpDir}/original" \ + | gpg --status-fd 3 -d - \ + 2> "${tmpDir}/humanStatus" \ + 3> "${tmpDir}/status" +)" -if [ ! $(grep -c "Good signature from \"Erich Eckner \([^\"]*\)\?<erich@eckner.net>\"" ${tmpMsg}) -eq 1 ] || [ ! $(grep -c "Signature made .* using RSA key ID 0AEEC90755DA7B5A" ${tmpMsg}) -eq 1 ] -then - dialog --textbox ${tmpMsg} 14 70 -fi +beiFehlerBeenden + +grep -q "VALIDSIG ${schluessel} \(.* \)\?${schluessel}\$" "${tmpDir}/status" + +beiFehlerBeenden -rm -f ${tmpMsg} +rm -f "${tmpDir}/humanStatus" -[ $(echo -e "${text}" | grep -c "${dienst}") -gt 1 ] && dienst="^${dienst}" -[ $(echo -e "${text}" | grep -c "${dienst}") -gt 1 ] && dienst="${dienst}:\$" -[ $(echo -e "${text}" | grep -c "${dienst}") -eq 1 ] || exit 1 +${passwortSummenBefehl} \ + | awk "{print \$1\" ${tmpDir}/original\"}" \ + | sha512sum -c \ + > "${tmpDir}/humanStatus" -text="$(echo "${text}" | grep -2 "${dienst}" | tail -n2)" -echo "${text}" | head -n1 | xclip -i +beiFehlerBeenden + +sDienst="${dienst}" +[ $(echo "${output}" | grep -c "${sDienst}") -gt 1 ] && sDienst="${dienst}.*:\$" +[ $(echo "${output}" | grep -c "${sDienst}") -gt 1 ] && sDienst="^${dienst}.*:\$" +[ $(echo "${output}" | grep -c "${sDienst}") -gt 1 ] && sDienst="^${dienst}:\$" +if [ $(echo "${output}" | grep -c "${sDienst}") -ne 1 ] +then + echo "'${dienst}' ist nicht genau ein Mal vorhanden, sondern $(echo "${output}" | grep -c "${sDienst}") Mal!" + beenden 1 +fi + +output="$(echo "${output}" | grep -2 "${dienst}" | tail -n2)" +echo "${output}" | head -n1 | xclip -i echo -n "." read dienst -echo "${text}" | tail -n1 | xclip -i +echo "${output}" | tail -n1 | xclip -i echo -n "." read dienst +echo "" | xclip -i + +beenden 0 diff --git a/passwort-tresor.konf b/passwort-tresor.konf index 168e2e0..91f21e0 100644 --- a/passwort-tresor.konf +++ b/passwort-tresor.konf @@ -1,4 +1,6 @@ #!/bin/bash -passwortDateiBefehl='ssh nlopc46 "cat ~/Dokumente/pws.gpg"' -passwortSummenBefehl='ssh nlopc43 "cat .sums/pws.512"' +schluessel='DE9F7688CACF04FEB81A6C590AEEC90755DA7B5A' + +passwortDateiBefehl="ssh nlopc46 cat Dokumente/pws.gpg" +passwortSummenBefehl="ssh nlopc43 cat .sums/pws.512" |