105 lines
3.6 KiB
Bash
Executable File
105 lines
3.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# -*- mode: sh; tab-width: 8; encoding: utf-8-unix -*-
|
|
|
|
prog=`basename $0 .bash`
|
|
PREFIX=/usr/local
|
|
ROLE=toxcore
|
|
PYVER=3
|
|
EXE=/var/local/bin/tomb.bash
|
|
|
|
. /usr/local/bin/usr_local_tput.bash || exit 2
|
|
. /usr/local/bin/gridfire.rc
|
|
|
|
# python3 -c "import keyring.util.platform_; print(keyring.util.platform_.config_root())"
|
|
# ~/.local/share/python_keyring
|
|
|
|
# what goes on stdin - the passwd to the keyfile with the keyfile as an arg?
|
|
# or open the keyfile?
|
|
# passwd from gridfire or from keepass
|
|
|
|
usage() {
|
|
echo "Syntax: tomb [options] command [arguments]"
|
|
echo
|
|
echo " // Creation:"
|
|
echo " dig create a new empty TOMB file of size -s in MiB"
|
|
echo " forge create a new KEY file and set its password"
|
|
echo " lock installs a lock on a TOMB to use it with KEY"
|
|
echo
|
|
echo " // Operations on tombs:"
|
|
echo " open open an existing TOMB (-k KEY file or - for stdin)"
|
|
echo " index update the search indexes of tombs"
|
|
echo " search looks for filenames matching text patterns"
|
|
echo " list list of open TOMBs and information on them"
|
|
echo " ps list of running processes inside open TOMBs"
|
|
echo " close close a specific TOMB (or 'all')"
|
|
echo " slam slam a TOMB killing all programs using it"
|
|
[[ $RESIZER == 1 ]] && {
|
|
echo " resize resize a TOMB to a new size -s (can only grow)"
|
|
}
|
|
echo
|
|
echo " // Operations on keys:"
|
|
echo " passwd change the password of a KEY (needs old pass)"
|
|
echo " setkey change the KEY locking a TOMB (needs old key and pass)"
|
|
echo
|
|
[[ $QRENCODE == 1 ]] && {
|
|
echo " // Backup on paper:"
|
|
echo " engrave makes a QR code of a KEY to be saved on paper"
|
|
echo
|
|
}
|
|
[[ $STEGHIDE == 1 || $CLOAKIFY == 1 || $DECLOAKIFY == 1 ]] && {
|
|
echo " // Steganography:"
|
|
[[ $STEGHIDE == 1 ]] && {
|
|
echo " bury hide a KEY inside a JPEG image (for use with -k)"
|
|
echo " exhume extract a KEY from a JPEG image (prints to stdout)"
|
|
}
|
|
[[ $CLOAKIFY == 1 ]] && {
|
|
echo " cloak transform a KEY into TEXT using CIPHER (for use with -k)"
|
|
}
|
|
[[ $DECLOAKIFY == 1 ]] && {
|
|
echo " uncloak extract a KEY from a TEXT using CIPHER (prints to stdout)"
|
|
}
|
|
echo
|
|
}
|
|
echo "Options:"
|
|
echo
|
|
echo " -s size of the tomb file when creating/resizing one (in MiB)"
|
|
echo " -k path to the key to be used ('-k -' to read from stdin)"
|
|
echo " -n don't launch the execution hooks found in tomb"
|
|
echo " -p preserve the ownership of all files in tomb"
|
|
echo " -o options passed to commands: open, lock, forge (see man)"
|
|
echo " -f force operation (i.e. even if swap is active)"
|
|
echo " -g use a GnuPG key to encrypt a tomb key"
|
|
echo " -r provide GnuPG recipients (separated by comma)"
|
|
echo " -R provide GnuPG hidden recipients (separated by comma)"
|
|
|
|
[[ $SPHINX == 1 ]] && {
|
|
echo " --sphx-user user associated with the key (for use with pitchforkedsphinx)"
|
|
echo " --sphx-host host associated with the key (for use with pitchforkedsphinx)"
|
|
}
|
|
|
|
[[ $KDF == 1 ]] && {
|
|
echo " --kdf forge keys armored against dictionary attacks"
|
|
}
|
|
|
|
echo
|
|
echo " -q run quietly without printing informations"
|
|
echo " -D print debugging information at runtime"
|
|
}
|
|
|
|
# FixMe: make sure command is first
|
|
if [ "$#" -eq 0 ] || [ "$1" = '--help' -o "$1" = 'help' ] ; then
|
|
# usage
|
|
# exit 0
|
|
:
|
|
fi
|
|
|
|
LARGS="-H \"tomb $tail\""
|
|
tail=`echo $@ | sed -e 's/.* \([^ ]*\) \([^ ]*\)/\1 \2/'`
|
|
if [[ "$*" =~ "-- " ]];then
|
|
RARGS=`echo $*|sed -e "s/-- /-- $EXE/"`
|
|
exec $PREFIX/bin/gridfire $LARGS $RARGS
|
|
else
|
|
exec $PREFIX/bin/gridfire $LARGS -- $EXE "$@"
|
|
fi
|
|
|