Laut Wiki-Eintrag können auch .asc Dateien rauskommen. Eventuell kann man auch mit
filenachsehen, welchen Dateityp man hat, aber das gibt mir bei .gpg Dateien nichts wirklich eindeutiges zurück. Man könnte auch versuchen zu entschlüsseln und wenn das nicht geht, dann verschlüsselt man.Wenn man die Schlüssel-ID einbaut, dann kann ein Angreifer sehen, für wen die Datei bestimmt ist. Daher würde ich das weglassen, denn einen richtigen Vorteil sehe ich nicht.
Okay, asc habe ich jetzt erstmal ausgelassen, gucke ich mir noch an was das genau ist. Hab jetzt alles halbwegs sauber in Funktionen aufgeteilt und Fehlermeldungen mit eingebaut. Dadurch ist das Skript nur leider etwas länger geworden. Wer Lust hat probiere es mal bitte aus. Verbesserungsvorschläge sind jederzeit willkommen.
Ich benutze Xfce, daher habe ich es bisher nur mit Thunar getestet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #!/bin/bash errormsg(){ zenity --error --text="$1" } decrypt(){ [[ -e "$2" ]] && { errormsg "Datei existiert bereits: '$2'"; exit 20; } [[ -z "$GPG_AGENT_INFO" ]] && { errormsg "GPG_AGENT_INFO nicht gesetzt.\nBitte gpg-agent einrichten."; exit 20; } gpg -d -o "$2" --batch --no-tty "$1" || exit 40 } encrypt(){ [[ -e "$1.gpg" ]] && { errormsg "Datei existiert bereits: '$1.gpg'"; exit 30; } RECIPIENT=$(gpg --list-keys | sed -n -e '/^uid/s/^uid *//p;' | zenity --list --text='' --column='verfügbare Schlüssel' --title='Bitte Schlüssel auswählen') [[ $? -eq 0 ]] || exit $? if [[ -z "$RECIPIENT" ]]; then gpg -e --default-recipient-self --batch --no-tty "$1" || exit 40 else gpg -e --recipient "$RECIPIENT" --batch --no-tty "$1" || exit 40 fi } which zenity >/dev/null || { echo "Zenity nicht gefunden, bitte installieren."; exit 10; } [[ -n "$1" ]] || { errormsg "Keine Datei angegeben.\n\nAufruf: ${0##*/} DATEI"; exit 10; } [[ -e "$1" ]] || { errormsg "Datei nicht gefunden: '$1'"; exit 10; } if [[ "${1##*.}" == 'gpg' ]]; then decrypt "$1" "${1%.*}" else encrypt "$1" fi |
2004 – 2012 ubuntuusers.de • Einige Rechte vorbehalten