+++ /dev/null
-#!/bin/sh
-#shuber, 2008-10-18
-#
-# This script does a decrypt-edit-encrypt cycle with gpg and OpenOffice.
-# The concrete editing program (ooffice) can be set by the variable
-# $CMD. The detection if the file has been altered is done by a hash sum
-# algorithm which can be set by $SUMCMD.
-#
-# Changelog:
-# * 2008-10-18 Initial version
-# * 2008-10-19 Introducing a CRYPTID variable
-# Checking if crypted file has same checksum
-# * 2010-10-23 ooffice only spawns OpenOffice and gives control back
-# to shell. Hence, we have to wait for pid now.
-
-
-CMD="libreoffice"
-SUMCMD="sha1sum"
-CRYPTID="user@example.org"
-
-
-#No valid invocation
-if [ $# -ne 1 ]
-then
- echo "Usage: $CMD-gpg <gpg-file>"
- exit -1
-fi
-
-
-#The corresponding gpg-file
-gpgfile=$1
-
-if [ ! -f "$gpgfile" ]
-then
- echo "\`$gpgfile\` does not exist..."
-else
- echo "Opening \`$gpgfile\`..."
-fi
-
-
-
-#Search for filename to to encrypt file to...
-uncryptfilePost=${gpgfile%%.gpg}
-i=1
-uncryptfile="$i.$uncryptfilePost"
-
-while [ -f "$uncryptfile" ]
-do
- let "i = $i + 1"
- uncryptfile="$i.$uncryptfilePost"
-done
-
-
-echo "Uncrypt \`$gpgfile\` to \`$uncryptfile\`..."
-
-
-
-#Decrypt file and get checksum...
-gpg --output "$uncryptfile" --decrypt "$gpgfile"
-hsumpre=`$SUMCMD "$uncryptfile" | awk '{ print $1 }'`
-echo "Checksum is '$hsumpre'."
-
-
-#Edit file and get checksum of altered file
-$CMD "$uncryptfile"
-#pid=`lsof | grep "$uncryptfile" | cut -d ' ' -f 2`
-#echo "wait for pid: $pid"
-#while [ -n "`ps | grep "$pid"`" ] ; do
-# sleep 1
-#done
-
-
-hsumpost=`$SUMCMD "$uncryptfile" | awk '{ print $1 }'`
-echo "Checksum is '$hsumpost'."
-
-
-#Check if file has been altered
-if [ "$hsumpost" != "$hsumpre" ]
-then
- gpg --output "$gpgfile" -r "$CRYPTID" --encrypt "$uncryptfile"
-
- #Get checksum of crypted version
- hsumcrypt=`gpg --decrypt $gpgfile | $SUMCMD | awk '{ print $1 }'`
- echo "Checksum of crypted file is '$hsumcrypt'"
-
- if [ "$hsumpost" != "$hsumcrypt" ]
- then
- echo ""
- echo "*** WARNING ***"
- echo "*** WARNING *** Encrypted file \`$gpgfile\` leads to different checksum."
- echo "*** WARNING *** Not removing unencrypted file \`$uncryptfile\`."
- echo "*** WARNING ***"
- echo ""
-
- exit -1
- fi
-
-else
- echo "No changes. Skip re-encrypting"
-fi
-
-
-
-
-#Remove old file...
-rm -i "$uncryptfile"
-
-
-#File not removed!?
-if [ -f "$uncryptfile" ]
-then
- echo ""
- echo "*** WARNING ***"
- echo "*** WARNING *** Unencrypted file \`$uncryptfile\` not removed!"
- echo "*** WARNING ***"
- echo ""
-fi
-