#!/bin/sh - umask 077 # code - convenience front-end for crypt2 file encryption command # Steve Kinzler, kinzler@cs.indiana.edu, Mar 93 # http://www.cs.indiana.edu/~kinzler/home.html#unix force=; secure=; bad= while : do case $# in 0) break;; *) case "$1" in -f) force=$1;; -s) secure=$1;; -[kp]) shift; CODEKEY="$1";; --) shift; break;; -h) bad=t; break;; -*) bad=t; echo "$0: unknown option ($1)" 1>&2;; *) break;; esac shift;; esac done case "$#,$bad" in 0,*|*,?*) cat << EOF 1>&2 usage: $0 [ -f ] [ -k key ] file ... -f force file overwrites and directory replacements -k use the given encryption key EOF exit 1;; esac for old do if test \! -f "$old" -o \! -r "$old" then echo "$0: $old is not a readable file" 1>&2 continue fi case "$old" in *.x) new=`echo "$old" | sed 's/..$//'`;; *) new="$old.x";; esac if test -f "$new" -o -d "$new" then case "$force" in ?*) rm -r "$new" if test -f "$new" -o -d "$new" then echo "$0: cannot remove $new" 1>&2 continue fi;; *) echo "$0: $new already exists" 1>&2 continue;; esac fi trap 'rm -f "$new"; exit' 1 2 13 15 chmod 600 "$new" > "$new" && echo "$old -> $new" && crypt2 $secure ${CODEKEY+"$CODEKEY"} < "$old" > "$new" case $? in 0) trap 'rm -f "$old"; exit' 1 2 13 15 rm "$old";; *) rm "$new";; esac trap exit 1 2 13 15 done