
Then I came back later, and noticed the whole episode was happening inside a word balloon:

It never occurred to me to nest word balloons, or invert their use. :)
Total file space: 250 MBMaximum file size: 2 MBMonthly Bandwidth: 5 GBFTP/PHP/MySql includedNo Ads.

a2 + b2 = c2
# for simple encryption methods, use: # echo "text" | encrypt # echo "U8askj123lkjasdflkjasdlkjargoi+/==" | decrypt alias encrypt="openssl aes-256-cbc -a -salt" alias decrypt="openssl aes-256-cbc -d -a -salt"
#!/bin/bash
# A simple secure vi editor, for aes encrypted files
# file name passed in as argument, for example
# svi FILENAME
# to open file as read only
# ln -s svi sview
# sview FILENAME
# GPL
# type of encryption
cipher=aes-256-cbc
# where temp files will be decrypted
tmp=/tmp/
# create tmp dir/file
me=`basename $0`
dir=`dirname "$tmp$1.tmp"`
mkdir -p "$dir"
touch "$tmp$1.tmp"
chmod 600 "$tmp$1.tmp"
# decrypt to tmp
if [[ -e "$1" ]]
then
if openssl $cipher -d -a -salt -in "$1" > "$tmp$1.tmp"
then
if [[ ! -s "$tmp$1.tmp" ]]
then
echo "WARNING: decrypted an empty file, exiting."
exit
fi
else
echo "WARNING: bad password, exiting."
exit
fi
fi
if [[ $me == 'sview' ]]
then
# open file read only
vi -n -R "$tmp$1.tmp"
else
# open file for editing
vi -n "$tmp$1.tmp"
# re-encrypt after exiting vi
if [[ -s "$tmp$1.tmp" ]]
then
touch "$tmp$1.aes"
chmod 600 "$tmp$1.aes"
while [[ ! -s "$tmp$1.aes" ]]
do
openssl $cipher -a -salt -in "$tmp$1.tmp" > "$tmp$1.aes"
done
# make backup, replace old
if [[ -s "$tmp$1.aes" ]]
then
if [[ -s "$1" ]]
then
cp -pf "$1" $1.$(date "+%Y-%m-%d").bac
fi
mv -f "$tmp$1.aes" "$1"
fi
fi
fi
# cleanup
shred -z -u "$tmp$1.tmp"
rm -f "$tmp$1.aes"
svi YOUR_FILE