itgtomb gui based on zenity, contributed by Parazyd - tomb - the crypto undertaker Err parazyd.org 70 hgit clone git://parazyd.org/tomb.git URL:git://parazyd.org/tomb.git parazyd.org 70 1Log /git/tomb/log.gph parazyd.org 70 1Files /git/tomb/files.gph parazyd.org 70 1Refs /git/tomb/refs.gph parazyd.org 70 1README /git/tomb/file/README.md.gph parazyd.org 70 1LICENSE /git/tomb/file/COPYING.gph parazyd.org 70 i--- Err parazyd.org 70 1commit 00e0ac323b4122ee5dd2b70d957a261544dd5446 /git/tomb/commit/00e0ac323b4122ee5dd2b70d957a261544dd5446.gph parazyd.org 70 1parent 46c41f35728a581ab8fce1e879aa4c5f2a48cc01 /git/tomb/commit/46c41f35728a581ab8fce1e879aa4c5f2a48cc01.gph parazyd.org 70 hAuthor: Jaromil URL:mailto:jaromil@dyne.org parazyd.org 70 iDate: Wed, 30 Dec 2015 17:45:10 +0100 Err parazyd.org 70 i Err parazyd.org 70 igtomb gui based on zenity, contributed by Parazyd Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i A extras/gtomb/LICENSE | 15 +++++++++++++++ Err parazyd.org 70 i A extras/gtomb/README.md | 26 ++++++++++++++++++++++++++ Err parazyd.org 70 i A extras/gtomb/gtomb | 985 +++++++++++++++++++++++++++++++ Err parazyd.org 70 i Err parazyd.org 70 i3 files changed, 1026 insertions(+), 0 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/extras/gtomb/LICENSE b/extras/gtomb/LICENSE /git/tomb/file/extras/gtomb/LICENSE.gph parazyd.org 70 it@@ -0,0 +1,15 @@ Err parazyd.org 70 i+gtomb - A GUI wrapper for Tomb, the crypto undertaker Err parazyd.org 70 i+Copyright (C) 2015 Parazyd Err parazyd.org 70 i+ Err parazyd.org 70 i+This program is free software: you can redistribute it and/or modify Err parazyd.org 70 i+it under the terms of the GNU General Public License as published by Err parazyd.org 70 i+the Free Software Foundation, either version 3 of the License, or Err parazyd.org 70 i+(at your option) any later version. Err parazyd.org 70 i+ Err parazyd.org 70 i+This program is distributed in the hope that it will be useful, Err parazyd.org 70 i+but WITHOUT ANY WARRANTY; without even the implied warranty of Err parazyd.org 70 i+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Err parazyd.org 70 i+GNU General Public License for more details. Err parazyd.org 70 i+ Err parazyd.org 70 i+You should have received a copy of the GNU General Public License Err parazyd.org 70 i+along with this program. If not, see http://www.gnu.org/licenses/ Err parazyd.org 70 1diff --git a/extras/gtomb/README.md b/extras/gtomb/README.md /git/tomb/file/extras/gtomb/README.md.gph parazyd.org 70 it@@ -0,0 +1,26 @@ Err parazyd.org 70 i+# gtomb Err parazyd.org 70 i+A GUI for Tomb (https://www.dyne.org/software/tomb/) Err parazyd.org 70 i+ Err parazyd.org 70 i+`gtomb` is a wrapper for another wrapper called [Tomb](https://github.com/dyne/Tomb) Err parazyd.org 70 i+It is imagined to make usage of Tomb even easier for end-users. Err parazyd.org 70 i+ Err parazyd.org 70 i+## Usage Err parazyd.org 70 i+![gtomb UI](https://github.com/parazyd/gtomb/raw/master/screenshot.png "gtomb UI") Err parazyd.org 70 i+The UI consists of all commands included in Tomb. You can choose a command you wish to run via the Err parazyd.org 70 i+list and the script will run it for you. Easy-peasy. Err parazyd.org 70 i+ Err parazyd.org 70 i+### Random notes Err parazyd.org 70 i+* If you type in your sudo password once correctly, in the next 5 (or whatever your sudoers timeout is) minutes, you can type in the wrong password as well. Err parazyd.org 70 i+* The function for catching cancellation sometimes fails because of bad ps syntax. No idea why yet. Err parazyd.org 70 i+ Err parazyd.org 70 i+## Dependencies Err parazyd.org 70 i+* [tomb](https://github.com/dyne/Tomb) (also get tomb's dependencies) Err parazyd.org 70 i+* zenity Err parazyd.org 70 i+ Err parazyd.org 70 i+## TODO Err parazyd.org 70 i+* Complete error checking Err parazyd.org 70 i+* Figure out why ps fails sometimes Err parazyd.org 70 i+* and more stuff Err parazyd.org 70 i+ Err parazyd.org 70 i+## What you need to do Err parazyd.org 70 i+* Be patient or help with coding :) Err parazyd.org 70 1diff --git a/extras/gtomb/gtomb b/extras/gtomb/gtomb /git/tomb/file/extras/gtomb/gtomb.gph parazyd.org 70 it@@ -0,0 +1,985 @@ Err parazyd.org 70 i+#!/usr/bin/env zsh Err parazyd.org 70 i+# Err parazyd.org 70 i+# gtomb - a GUI wrapper for Tomb Err parazyd.org 70 i+# Err parazyd.org 70 i+# Maintained and written by parazyd Err parazyd.org 70 i+# https://github.com/parazyd/gtomb Err parazyd.org 70 i+# https://github.com/dyne/Tomb Err parazyd.org 70 i+# Err parazyd.org 70 i+# gtomb is experimental software. It still does not work completely as Err parazyd.org 70 i+# intended and should be used with caution. Err parazyd.org 70 i+# Err parazyd.org 70 i+# {{{ License Err parazyd.org 70 i+# gtomb - A GUI wrapper for Tomb, the crypto undertaker Err parazyd.org 70 i+# Copyright (C) 2015 Parazyd Err parazyd.org 70 i+# Err parazyd.org 70 i+# This program is free software: you can redistribute it and/or modify Err parazyd.org 70 i+# it under the terms of the GNU General Public License as published by Err parazyd.org 70 i+# the Free Software Foundation, either version 3 of the License, or Err parazyd.org 70 i+# (at your option) any later version. Err parazyd.org 70 i+# Err parazyd.org 70 i+# This program is distributed in the hope that it will be useful, Err parazyd.org 70 i+# but WITHOUT ANY WARRANTY; without even the implied warranty of Err parazyd.org 70 i+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Err parazyd.org 70 i+# GNU General Public License for more details. Err parazyd.org 70 i+# Err parazyd.org 70 i+# You should have received a copy of the GNU General Public License Err parazyd.org 70 i+# along with this program. If not, see http://www.gnu.org/licenses/ Err parazyd.org 70 i+# Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+#set -x Err parazyd.org 70 i+#set -v Err parazyd.org 70 i+ver="0.6.2" Err parazyd.org 70 i+TOMBPATH="/usr/bin/tomb" # Set this to your tomb executable's path Err parazyd.org 70 i+KDFPATH="/usr/bin/" # Set this to the path of your KDF binaries (if you're using them) Err parazyd.org 70 i+# The ones below should not need changing Err parazyd.org 70 i+HEXENC="$KDFPATH/tomb-kdb-hexencode" Err parazyd.org 70 i+GENSALT="$KDFPATH/tomb-kdb-pbkdf2-gensalt" Err parazyd.org 70 i+GETITER="$KDFPATH/tomb-kdb-pbkdf2-getiter" Err parazyd.org 70 i+PBKDF="$KDFPATH/tomb-kdb-pbkdf2" Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ monmort icon Err parazyd.org 70 i+MONMORT="/tmp/monmort.png" Err parazyd.org 70 i+ICONB64="iVBORw0KGgoAAAANSUhEUgAAACAAAAAgEAQAAACJ4248AAAAAmJLR0T//xSrMc0AAAAJcEhZcwAA\n Err parazyd.org 70 i+AEgAAABIAEbJaz4AAAAJdnBBZwAAACAAAAAgAIf6nJ0AAADrSURBVFjD5ZZBEsMgCEU/TO/l2XMx\n Err parazyd.org 70 i+04VjQ1K1CDYswkwWJnH+E/EL4RP7jluDCACoim/bvfIpFQiKEJcQHCN9xEtLCgDMQM7f33sZrPNG\n Err parazyd.org 70 i+/05loCXujfAtCAVgNgLwIuycjQAra8G9Fm823ADabPRA1QDelfZAVUZktWrNvL8ew5YTnsStx3Am\n Err parazyd.org 70 i+AyOInJVbYF1prZuU+tsR1g9UMDqGuo5oFWhtSEQNEGmeVrqv73Tj0pIZirANMYqRhyw5Bb9MauSW\n Err parazyd.org 70 i+SwA8l9OzG5LnAsiiDQGQRRvaEwInK54J390hndAIYIeQ4k6AAjE/h06ab0SjP08MA1xDAAAAJXRF\n Err parazyd.org 70 i+WHRkYXRlOmNyZWF0ZQAyMDExLTAxLTEyVDA5OjM0OjI0KzAxOjAwo//d7wAAACV0RVh0ZGF0ZTpt\n Err parazyd.org 70 i+b2RpZnkAMjAxMS0wMS0xMlQwOTozNDoyNCswMTowMNKiZVMAAAAASUVORK5CYII=" Err parazyd.org 70 i+echo -e "$ICONB64" | base64 --decode > $MONMORT Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+function _ { _clean } # I like cleaning :) Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ sudo function Err parazyd.org 70 i+function _sudowrong { Err parazyd.org 70 i+ if [[ $? == 1 ]]; then Err parazyd.org 70 i+ sudoassword=$(ask_password "Wrong password. Insert sudo password for user $USER") Err parazyd.org 70 i+ echo -e "$sudoassword\n" | sudo -S -v Err parazyd.org 70 i+ _sudowrong Err parazyd.org 70 i+ fi Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ Zenity dialogs Err parazyd.org 70 i+function _zenques { Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --question \ Err parazyd.org 70 i+ --text="$1" Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+function _fsel { Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --file-selection \ Err parazyd.org 70 i+ --title="$1" Err parazyd.org 70 i+} Err parazyd.org 70 i+function _fsave { Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --file-selection \ Err parazyd.org 70 i+ --save \ Err parazyd.org 70 i+ --title="$1" \ Err parazyd.org 70 i+ --filename="$2" Err parazyd.org 70 i+} Err parazyd.org 70 i+function _zenwarn { Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --warning \ Err parazyd.org 70 i+ --title="$1" \ Err parazyd.org 70 i+ --text="$2" Err parazyd.org 70 i+} Err parazyd.org 70 i+function _zeninfo { Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --info \ Err parazyd.org 70 i+ --title="$1" \ Err parazyd.org 70 i+ --text="$2" Err parazyd.org 70 i+} Err parazyd.org 70 i+function _zenerr { Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --error \ Err parazyd.org 70 i+ --title="$1" \ Err parazyd.org 70 i+ --text="$2" Err parazyd.org 70 i+} Err parazyd.org 70 i+function _zenprog { Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --progress \ Err parazyd.org 70 i+ --auto-close \ Err parazyd.org 70 i+ --pulsate \ Err parazyd.org 70 i+ --title="$1" \ Err parazyd.org 70 i+ --text="$2" Err parazyd.org 70 i+} Err parazyd.org 70 i+function _zenprognc { Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --progress \ Err parazyd.org 70 i+ --auto-close \ Err parazyd.org 70 i+ --no-cancel \ Err parazyd.org 70 i+ --pulsate \ Err parazyd.org 70 i+ --title="$1" \ Err parazyd.org 70 i+ --text="$2" Err parazyd.org 70 i+} Err parazyd.org 70 i+function _zenentry { Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --entry \ Err parazyd.org 70 i+ --title="$1" \ Err parazyd.org 70 i+ --text="$2" \ Err parazyd.org 70 i+ --entry-text="$3" Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ Some pinentry code shamelessly stolen from tomb Err parazyd.org 70 i+# Ask user for a password Err parazyd.org 70 i+# Wraps around the pinentry command, from the GnuPG project, as it Err parazyd.org 70 i+# provides better security and conveniently use the right toolkit. Err parazyd.org 70 i+ask_password() { Err parazyd.org 70 i+ Err parazyd.org 70 i+ local description="$1" Err parazyd.org 70 i+ local title="${2:-Enter tomb password.}" Err parazyd.org 70 i+ local output Err parazyd.org 70 i+ local password Err parazyd.org 70 i+ local gtkrc Err parazyd.org 70 i+ local theme Err parazyd.org 70 i+ Err parazyd.org 70 i+ # Distributions have broken wrappers for pinentry: they do Err parazyd.org 70 i+ # implement fallback, but they disrupt the output somehow. We are Err parazyd.org 70 i+ # better off relying on less intermediaries, so we implement our Err parazyd.org 70 i+ # own fallback mechanisms. Pinentry supported: curses, gtk-2, qt4 Err parazyd.org 70 i+ # and x11. Err parazyd.org 70 i+ Err parazyd.org 70 i+ # make sure LANG is set, default to C Err parazyd.org 70 i+ LANG=${LANG:-C} Err parazyd.org 70 i+ Err parazyd.org 70 i+ _verbose "asking password with tty=$TTY lc-ctype=$LANG" Err parazyd.org 70 i+ Err parazyd.org 70 i+ if [[ "$DISPLAY" = "" ]]; then Err parazyd.org 70 i+ Err parazyd.org 70 i+ if _is_found "pinentry-curses"; then Err parazyd.org 70 i+ _verbose "using pinentry-curses" Err parazyd.org 70 i+ output=`cat </dev/null 2>/dev/null Err parazyd.org 70 i+ return $? Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+function _warning no() { Err parazyd.org 70 i+ option_is_set -q || _msg warning $@ Err parazyd.org 70 i+ return 1 Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+function _verbose xxx() { Err parazyd.org 70 i+ option_is_set -D && _msg verbose $@ Err parazyd.org 70 i+ return 0 Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+function _failure die() { Err parazyd.org 70 i+ typeset -i exitcode=${exitv:-1} Err parazyd.org 70 i+ option_is_set -q || _msg failure $@ Err parazyd.org 70 i+ # be sure we forget the secrets we were told Err parazyd.org 70 i+ exit $exitcode Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ _clean - Clean function, removes sensitive stuff from memory Err parazyd.org 70 i+function _clean { Err parazyd.org 70 i+ Err parazyd.org 70 i+ echo "Cleaning..." # For debugging. Err parazyd.org 70 i+ unset $? Err parazyd.org 70 i+ local rr="$RANDOM" Err parazyd.org 70 i+ while [[ ${#rr} -lt 500 ]]; do Err parazyd.org 70 i+ rr+="$RANDOM" Err parazyd.org 70 i+ done Err parazyd.org 70 i+ Err parazyd.org 70 i+ command="$rr"; unset command Err parazyd.org 70 i+ tombname="$rr"; unset tombname Err parazyd.org 70 i+ tombsize="$rr"; unset tombsize Err parazyd.org 70 i+ keyfile="$rr"; unset keyfile Err parazyd.org 70 i+ sudoassword="$rr"; unset sudoassword Err parazyd.org 70 i+ tombtmp=/tmp/tombtmp Err parazyd.org 70 i+ if [ -f $tombtmp ] Err parazyd.org 70 i+ then Err parazyd.org 70 i+ dd if=/dev/urandom of=$tombtmp bs=800 count=1 Err parazyd.org 70 i+ rm -f $tombtmp Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ tombtmp="$rr"; unset tombtmp Err parazyd.org 70 i+ newkey="$rr"; unset newkey Err parazyd.org 70 i+ jpegfile="$rr"; unset jpegfile Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ _main - Main window Err parazyd.org 70 i+function _main { Err parazyd.org 70 i+ _clean Err parazyd.org 70 i+ command=`zenity \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --title="gtomb" \ Err parazyd.org 70 i+ --width=640 \ Err parazyd.org 70 i+ --height=420 \ Err parazyd.org 70 i+ --list \ Err parazyd.org 70 i+ --hide-header \ Err parazyd.org 70 i+ --text="gtomb v$ver\nThe GUI wrapper for Tomb, the crypto undertaker." \ Err parazyd.org 70 i+ --separator=" & " \ Err parazyd.org 70 i+ --column=Function \ Err parazyd.org 70 i+ --column=Description \ Err parazyd.org 70 i+ "dig" "Dig a new tomb of chosen size" \ Err parazyd.org 70 i+ "forge" "Forge a new key used to lock tombs" \ Err parazyd.org 70 i+ "lock" "Lock a non-locked tomb using an existing key" \ Err parazyd.org 70 i+ "open" "Open an existing tomb" \ Err parazyd.org 70 i+ "index" "Index the contents of all tombs." \ Err parazyd.org 70 i+ "search" "Search the content of indexed tombs." \ Err parazyd.org 70 i+ "list" "List all open tombs and information on them" \ Err parazyd.org 70 i+ "close" "Close a specific tomb (or all)" \ Err parazyd.org 70 i+ "slam" "Slam a tomb (or all) killing all programs using it" \ Err parazyd.org 70 i+ "resize" "Resize a tomb to a new size (can only grow)" \ Err parazyd.org 70 i+ "passwd" "Change the passphrase of a key" \ Err parazyd.org 70 i+ "setkey" "Change the key of an existing tomb" \ Err parazyd.org 70 i+ "engrave" "Generates a QR code of a key to be saved on paper" \ Err parazyd.org 70 i+ "bury" "Hide a key inside a JPEG image" \ Err parazyd.org 70 i+ "exhume" "Extract a key from a JPEG image"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ eval "_$command" Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ dig - Dig a new tomb Err parazyd.org 70 i+function _dig { Err parazyd.org 70 i+ Err parazyd.org 70 i+ tombname=`_fsave "Choose where to dig your tomb" "secret.tomb"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ Err parazyd.org 70 i+ if [[ -f $tombname ]]; then Err parazyd.org 70 i+ _zenerr "Error" "This tomb already exists. I am not digging here." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ elif [[ $tombname == "" ]]; then Err parazyd.org 70 i+ _zenwarn "Warning" "Try again." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ tombsize=`_zenentry "Tomb digging" "Enter the size of your tomb in MiB (min. 10 MiB)" "10"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ Err parazyd.org 70 i+ re='^[0-9]+$' Err parazyd.org 70 i+ if ! [[ $tombsize =~ $re ]]; then Err parazyd.org 70 i+ _zenerr "Error" "Please choose a valid number." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ elif [[ $tombsize == "" ]]; then Err parazyd.org 70 i+ _zenwarn "Warning" "Try again." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ $TOMBPATH dig -s $tombsize $tombname | \ Err parazyd.org 70 i+ _zenprog "Digging new tomb" "Please wait while your tomb is being dug..." & Err parazyd.org 70 i+ Err parazyd.org 70 i+ PID_ZEN=$(ps -C zenity h -o pid,command | grep "Digging new tomb" | awk '{print $1}') Err parazyd.org 70 i+ Err parazyd.org 70 i+ while [ "$PID_ZEN" != "" ]; do Err parazyd.org 70 i+ PID_ZEN=$(ps h -o pid -p ${PID_ZEN}) Err parazyd.org 70 i+ PID_DD=$(ps -C dd h -o pid,command | grep "$tombname" | awk '{print $1}') Err parazyd.org 70 i+ sleep 1 Err parazyd.org 70 i+ done Err parazyd.org 70 i+ Err parazyd.org 70 i+ if [[ "$PID_DD" != "" && "$PID_ZEN" == "" ]]; then Err parazyd.org 70 i+ kill -9 $PID_DD Err parazyd.org 70 i+ _zenwarn "Warning" "Tomb digging canceled." Err parazyd.org 70 i+ rm -f $tombname Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ Err parazyd.org 70 i+ _clean Err parazyd.org 70 i+ _zeninfo "Success" "Your tomb has been dug." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ _zenwarn "Warning" "Tomb digging canceled." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ forge - Forge a new key Err parazyd.org 70 i+function _forge { Err parazyd.org 70 i+ keyfile=`_fsave "Choose where to forge your key" "secret.tomb.key"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ Err parazyd.org 70 i+ if [[ -f $keyfile ]]; then Err parazyd.org 70 i+ _zenerr "Error" "This key already exists. I am not overwriting." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ elif [[ $keyfile == "" ]]; then Err parazyd.org 70 i+ _zenwarn "Warning" "Try again." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ Err parazyd.org 70 i+ if [[ -f $HEXENC ]] && [[ -f $GENSALT ]] && [[ -f $GETITER ]] && [[ -f $PBKDF ]]; then Err parazyd.org 70 i+ kdf="" Err parazyd.org 70 i+ kdfiter="" Err parazyd.org 70 i+ _zenques "Do you want to use KDF? (Generates passwords armored against dictionary attacks)" Err parazyd.org 70 i+ if [[ $? == "0" ]]; then Err parazyd.org 70 i+ kdf="--kdf" Err parazyd.org 70 i+ kdfiter=`_zenentry "Iterations" "Enter the delay (itertime) in seconds for each time this key is used:" "2"` Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ $TOMBPATH forge $keyfile $kdf $kdfiter | \ Err parazyd.org 70 i+ _zenprog "Forging key" "Please wait while your key is being forged...\n\ Err parazyd.org 70 i+You can move your mouse around and use your computer to speed up the process." & Err parazyd.org 70 i+ Err parazyd.org 70 i+ PID_ZEN=$(ps -C zenity h -o pid,command | grep "Forging key" | awk '{print $1}') Err parazyd.org 70 i+ Err parazyd.org 70 i+ while [ "$PID_ZEN" != "" ]; do Err parazyd.org 70 i+ PID_ZEN=$(ps h -o pid -p ${PID_ZEN}) Err parazyd.org 70 i+ PID_DD=$(ps -C dd h -o pid,command | grep " if=" | awk '{print $1}') Err parazyd.org 70 i+ sleep 1 Err parazyd.org 70 i+ done Err parazyd.org 70 i+ Err parazyd.org 70 i+ if [[ "$PID_DD" != "" && "$PID_ZEN" == "" ]]; then Err parazyd.org 70 i+ kill -9 $PID_DD Err parazyd.org 70 i+ _zenwarn "Warning" "Forging canceled." Err parazyd.org 70 i+ rm -f $keyfile Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ Err parazyd.org 70 i+ _clean Err parazyd.org 70 i+ _zeninfo "Success" "Your key is now forged." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ lock - Lock a non-locked tomb Err parazyd.org 70 i+function _lock { Err parazyd.org 70 i+ tombname=`_fsel "Select a tomb to lock"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ Err parazyd.org 70 i+ if [[ $tombname == "" ]]; then Err parazyd.org 70 i+ _zenwarn "Warning" "Try again." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ keyfile=`_fsel "Choose the key for your tomb"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ Err parazyd.org 70 i+ if [[ $keyfile == "" ]]; then Err parazyd.org 70 i+ _zenwarn "Warning" "Try again." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ sudoassword=$(ask_password "Insert sudo password for user $USER") Err parazyd.org 70 i+ echo -e "$sudoassword\n" | sudo -S -v Err parazyd.org 70 i+ _sudowrong Err parazyd.org 70 i+ Err parazyd.org 70 i+ $TOMBPATH lock $tombname -k $keyfile | \ Err parazyd.org 70 i+ _zenprognc "Locking your tomb" "Please wait while your tomb is being locked..." Err parazyd.org 70 i+ Err parazyd.org 70 i+ _clean # Clean sensitive stuff from memory Err parazyd.org 70 i+ _zeninfo "Success" "Your tomb is now locked." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ open - Open an existing tomb Err parazyd.org 70 i+function _open { Err parazyd.org 70 i+ tombname=`_fsel "Choose a tomb to open"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ keyfile=`_fsel "Choose the key for your tomb"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ sudoassword=$(ask_password "Insert sudo password for user $USER") Err parazyd.org 70 i+ echo -e "$sudoassword\n" | sudo -S -v Err parazyd.org 70 i+ _sudowrong Err parazyd.org 70 i+ Err parazyd.org 70 i+ $TOMBPATH open $tombname -k $keyfile Err parazyd.org 70 i+ Err parazyd.org 70 i+ _clean # Clean sensitive stuff from memory Err parazyd.org 70 i+ _zeninfo "Success" "Your tomb is now open." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ list - list all open tombs, along with their mountpoint Err parazyd.org 70 i+function _list { Err parazyd.org 70 i+ tombtmp="/tmp/tombtmp" Err parazyd.org 70 i+ $TOMBPATH list --get-mountpoint > $tombtmp Err parazyd.org 70 i+ tombname=`cat $tombtmp | \ Err parazyd.org 70 i+ sed 's/.*\/\([^\/]*\)$/\1\n &/' | \ Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --title="Currently open tombs" \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --width=640 --height=380 --list \ Err parazyd.org 70 i+ --separator=" & " \ Err parazyd.org 70 i+ --text="Here are your open tombs" \ Err parazyd.org 70 i+ --column=Tomb \ Err parazyd.org 70 i+ --column=Path ` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ listchoice=`zenity \ Err parazyd.org 70 i+ --title="Choose action" \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --width=640 --height=400 --list \ Err parazyd.org 70 i+ --separator=" & " \ Err parazyd.org 70 i+ --text="What do you want to do with this tomb?" \ Err parazyd.org 70 i+ --column=Command \ Err parazyd.org 70 i+ --column=Description \ Err parazyd.org 70 i+ "disindex" "Disable indexing of this tomb." \ Err parazyd.org 70 i+ "enindex" "Enable indexing of this tomb." \ Err parazyd.org 70 i+ "close" "Close the selected tomb." \ Err parazyd.org 70 i+ "slam" "Slam the selected tomb." \ Err parazyd.org 70 i+ "binds" "Edit current bind-hooks." \ Err parazyd.org 70 i+ "posts" "Edit current post-hooks."` Err parazyd.org 70 i+ Err parazyd.org 70 i+ if [[ $? == 1 ]]; then Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ Err parazyd.org 70 i+ case $listchoice in Err parazyd.org 70 i+ close) Err parazyd.org 70 i+ sudoassword=$(ask_password "Insert sudo password for user $USER") Err parazyd.org 70 i+ echo -e "$sudoassword\n" | sudo -S -v Err parazyd.org 70 i+ _sudowrong Err parazyd.org 70 i+ Err parazyd.org 70 i+ $TOMBPATH close $tombname Err parazyd.org 70 i+ _zeninfo "Success" "Tomb closed successfully!" Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ slam) Err parazyd.org 70 i+ sudoassword=$(ask_password "Insert sudo password for user $USER") Err parazyd.org 70 i+ echo -e "$sudoassword\n" | sudo -S -v Err parazyd.org 70 i+ _sudowrong Err parazyd.org 70 i+ Err parazyd.org 70 i+ $TOMBPATH slam $tombname Err parazyd.org 70 i+ _zeninfo "Success" "Tomb slammed successfully!" Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ disindex) Err parazyd.org 70 i+ tombloc=`$TOMBPATH list $tombname --get-mountpoint` Err parazyd.org 70 i+ touch "$tombloc/.noindex" Err parazyd.org 70 i+ _zeninfo "Success" "Indexing disabled for this tomb." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ enindex) Err parazyd.org 70 i+ tombloc=`$TOMBPATH list $tombname --get-mountpoint` Err parazyd.org 70 i+ rm "$tombloc/.noindex" Err parazyd.org 70 i+ _zeninfo "Success" "Indexing of this tomb is enabled." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ binds) Err parazyd.org 70 i+ tombloc=`$TOMBPATH list $tombname --get-mountpoint` Err parazyd.org 70 i+ bindhooks=`zenity \ Err parazyd.org 70 i+ --text-info \ Err parazyd.org 70 i+ --filename="$tombloc/bind-hooks" \ Err parazyd.org 70 i+ --editable` Err parazyd.org 70 i+ if [[ $? == "0" ]]; then Err parazyd.org 70 i+ echo "$bindhooks" > "$tombloc/bind-hooks" Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ posts) Err parazyd.org 70 i+ tombloc=`$TOMBPATH list $tombname --get-mountpoint` Err parazyd.org 70 i+ Err parazyd.org 70 i+ posthooks=`zenity \ Err parazyd.org 70 i+ --text-info \ Err parazyd.org 70 i+ --filename="$tombloc/post-hooks" \ Err parazyd.org 70 i+ --editable` Err parazyd.org 70 i+ if [[ $? == "0" ]]; then Err parazyd.org 70 i+ echo "$posthooks" > "$tombloc/post-hooks" Err parazyd.org 70 i+ chmod +x $tombloc/post-hooks Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ Err parazyd.org 70 i+ # See what else to add Err parazyd.org 70 i+ esac Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ close - Close open tomb(s) Err parazyd.org 70 i+function _close { Err parazyd.org 70 i+ tombtmp="/tmp/tombtmp" Err parazyd.org 70 i+ $TOMBPATH list --get-mountpoint > $tombtmp Err parazyd.org 70 i+ echo "/all" >> $tombtmp Err parazyd.org 70 i+ tombname=`cat $tombtmp | \ Err parazyd.org 70 i+ sed 's/.*\/\([^\/]*\)$/\1\n &/' | \ Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --title="Choose a tomb to close" \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --width=640 --height=380 --list \ Err parazyd.org 70 i+ --separator=" & " \ Err parazyd.org 70 i+ --column=Tomb \ Err parazyd.org 70 i+ --column=Path ` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ sudoassword=$(ask_password "Insert sudo password for user $USER") Err parazyd.org 70 i+ echo -e "$sudoassword\n" | sudo -S -v Err parazyd.org 70 i+ _sudowrong Err parazyd.org 70 i+ Err parazyd.org 70 i+ $TOMBPATH close $tombname Err parazyd.org 70 i+ Err parazyd.org 70 i+ _clean # Clean sensitive stuff from memory Err parazyd.org 70 i+ _zeninfo "Success" "Tomb(s) closed successfully!" Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ slam - Slam open tombs Err parazyd.org 70 i+function _slam { Err parazyd.org 70 i+ tombtmp="/tmp/tombtmp" Err parazyd.org 70 i+ $TOMBPATH list --get-mountpoint > $tombtmp Err parazyd.org 70 i+ echo "/all" >> $tombtmp Err parazyd.org 70 i+ tombname=`cat $tombtmp | \ Err parazyd.org 70 i+ sed 's/.*\/\([^\/]*\)$/\1\n &/' | \ Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --title="Choose a tomb to slam" \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --width=640 --height=380 --list \ Err parazyd.org 70 i+ --separator=" & " \ Err parazyd.org 70 i+ --column=Tomb \ Err parazyd.org 70 i+ --column=Path ` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ sudoassword=$(ask_password "Insert sudo password for user $USER") Err parazyd.org 70 i+ echo -e "$sudoassword\n" | sudo -S -v Err parazyd.org 70 i+ _sudowrong Err parazyd.org 70 i+ Err parazyd.org 70 i+ $TOMBPATH slam $tombname Err parazyd.org 70 i+ Err parazyd.org 70 i+ _clean # Clean sensitive stuff from memory Err parazyd.org 70 i+ _zeninfo "Success" "Tomb(s) slammed successfully!" Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ resize - Resize an existing *closed* tomb Err parazyd.org 70 i+function _resize { Err parazyd.org 70 i+ tombname=`_fsel "Choose a tomb to resize"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ tombsize=`_zenentry "New tomb size" "Enter the new size of your tomb in MiB. Must be higher than the current size." "100"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ keyfile=`_fsel "Choose according keyfile"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ sudoassword=$(ask_password "Insert sudo password for user $USER") Err parazyd.org 70 i+ echo -e "$sudoassword\n" | sudo -S -v Err parazyd.org 70 i+ _sudowrong Err parazyd.org 70 i+ Err parazyd.org 70 i+ $TOMBPATH resize $tombname -s $tombsize -k $keyfile | \ Err parazyd.org 70 i+ _zenprognc "Resizing tomb." "Please wait while your tomb is being resized..." Err parazyd.org 70 i+ Err parazyd.org 70 i+ _clean # Clean sensitive stuff from memory Err parazyd.org 70 i+ _zeninfo "Success" "Tomb resized successfully!" Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ passwd - Change existing key's passphrase Err parazyd.org 70 i+function _passwd { Err parazyd.org 70 i+ keyfile=`_fsel "Choose a keyfile"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ $TOMBPATH passwd -k $keyfile | \ Err parazyd.org 70 i+ _zenprognc "Changing passphrase" "Please wait while your key's passphrase is being changed..." Err parazyd.org 70 i+ Err parazyd.org 70 i+ _clean # Clean sensitive stuff from memory Err parazyd.org 70 i+ _zeninfo "Success" "Passphrase changed successfully!" Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ setkey - Change a tomb's keyfile Err parazyd.org 70 i+function _setkey { Err parazyd.org 70 i+ tombname=`_fsel "Choose a tomb to change its keyfile"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ keyfile=`_fsel "Chosse your tomb's old keyfile"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ newkey=`_fsel "Choose your tomb's new keyfile"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ sudoassword=$(ask_password "Insert sudo password for $USER") Err parazyd.org 70 i+ echo -e "$sudoassword\n" | sudo -S -v Err parazyd.org 70 i+ _sudowrong Err parazyd.org 70 i+ Err parazyd.org 70 i+ $TOMBPATH setkey -k $newkey $keyfile $tombname | \ Err parazyd.org 70 i+ _zenprognc "Changing key" "Please wait while your tomb's key is being changed..." Err parazyd.org 70 i+ Err parazyd.org 70 i+ _clean Err parazyd.org 70 i+ _zeninfo "Success" "Tomb's keyfile successfully changed!" Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ engrave - generate QR code of a key Err parazyd.org 70 i+function _engrave { Err parazyd.org 70 i+ which qrencode || _zenwarn "Warning" "qrencode is not installed. Install it and try again" && exec _main Err parazyd.org 70 i+ keyfile=`_fsel "Choose a keyfile to engrave"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ jpegfile=`_fsave "Choose where to save your keyfile (PNG format)"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ awk '/^-----/ {next}; /^Version/ {next}; {print $0}' $keyfile \ Err parazyd.org 70 i+ | qrencode --size 4 --level H --casesensitive -o $jpegfile Err parazyd.org 70 i+ Err parazyd.org 70 i+ _zeninfo "Success" "QR code generated in $jpegfile" Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ bury - hide a keyfile in a JPEG image Err parazyd.org 70 i+function _bury { Err parazyd.org 70 i+ which steghide || _zenwarn "Warning" "steghide is not installed. Install it and try again" && exec _main Err parazyd.org 70 i+ keyfile=`_fsel "Choose keyfile"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ jpegfile=`_fsel "Choose JPEG file"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ $TOMBPATH bury -k $keyfile $jpegfile Err parazyd.org 70 i+ Err parazyd.org 70 i+ _zeninfo "Success" "Your key is now hidden in $jpegfile" Err parazyd.org 70 i+ _clean # Clean sensitive stuff from memory Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ exhume - extract keyfile from JPEG Err parazyd.org 70 i+function _exhume { Err parazyd.org 70 i+ which steghide || _zenwarn "Warning" "steghide is not installed. Install it and try again" && exec _main Err parazyd.org 70 i+ jpegfile=`_fsel "Choose JPEG file"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ keyfile=`_fsave "Choose where to extract your key"` Err parazyd.org 70 i+ Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ case $res in Err parazyd.org 70 i+ 0) Err parazyd.org 70 i+ $TOMBPATH exhume -k $keyfile $jpegfile Err parazyd.org 70 i+ Err parazyd.org 70 i+ _zeninfo "Success" "Your keyfile is extracted to $keyfile" Err parazyd.org 70 i+ _clean # Clean sensitive stuff from memory Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ 1) Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ ;; Err parazyd.org 70 i+ esac Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ index - index the contents of open tombs Err parazyd.org 70 i+function _index { Err parazyd.org 70 i+ which mlocate || _zenwarn "Warning" "mlocate is not installed. Install it and try again" && exec _main Err parazyd.org 70 i+ Err parazyd.org 70 i+ $TOMBPATH index | _zenprognc "Indexing" "Please wait while the open tombs are being indexed..." Err parazyd.org 70 i+ _zeninfo "Success" "Tombs indexed!" Err parazyd.org 70 i+ Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+# {{{ search - searches the contents of indexed tombs Err parazyd.org 70 i+function _search { Err parazyd.org 70 i+ strings="" Err parazyd.org 70 i+ Err parazyd.org 70 i+ function _searchstring { Err parazyd.org 70 i+ srchstring=`_zenentry "Search" "Enter an argument to search. Cancel to finish."` Err parazyd.org 70 i+ res=$? Err parazyd.org 70 i+ strings="$strings $srchstring" Err parazyd.org 70 i+ Err parazyd.org 70 i+ if [[ $res == "1" ]]; then Err parazyd.org 70 i+ tombtmp="/tmp/tombtmp" Err parazyd.org 70 i+ $TOMBPATH search $strings > $tombtmp Err parazyd.org 70 i+ #cat $tombtmp | \ Err parazyd.org 70 i+ zenity \ Err parazyd.org 70 i+ --text-info \ Err parazyd.org 70 i+ --title="Search results" \ Err parazyd.org 70 i+ --filename=$tombtmp Err parazyd.org 70 i+ else Err parazyd.org 70 i+ _searchstring Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ } Err parazyd.org 70 i+ _searchstring Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+ Err parazyd.org 70 i+if [ ! -f $TOMBPATH ]; then Err parazyd.org 70 i+ _zenwarn "Warning" "Tomb binary is nonexistent in the current path. Install it or edit the script to point to the correct path." Err parazyd.org 70 i+else Err parazyd.org 70 i+ _main Err parazyd.org 70 i+fi Err parazyd.org 70 .