#!/usr/bin/env bash if [ -z "$1" ] || [ -z "$2" ] || [[ $2 != "encode" && $2 != "decode" && $2 != "encode_enc" ]] then echo "launch the script with the desired filename and operation" echo "./AmazonPrimeWhatever.sh FILENAME OPERATION(encode or decode)" exit fi # check for prerequisites: if ! [ -x "$(command -v convert)" ]; then echo 'Error: convert (part of the imagemagick suite) is not installed.' >&2 exit 1 fi if [ $2 = "encode_enc" ] || [ $(echo $1 | cut -d "_" -f1) = "FakeKittenENC" ]; then if ! [ -x "$(command -v gpg)" ]; then echo 'Error: gpg is not installed, it is needed for encryption/decryption' >&2 exit 1 fi fi if [ $2 = "encode" ] || [ $2 = "encode_enc" ]; then imagejpg="random.jpg" image="random.DNG" #generate random image: mx=320;my=256;head -c "$((3*mx*my))" /dev/urandom | convert -depth 8 -size "${mx}x${my}" RGB:- $imagejpg mv $imagejpg $image imagesize=$(du -b $image | cut -f1) if [ $2 = "encode" ]; then origsha=$(sha1sum $1 | cut -d " " -f1) destimage="FakeKitten_"$imagesize"_"$1"_"$origsha"_"$image mv $image $destimage dd if=$1 bs=1M >> "$destimage" echo "encode completed in $destimage" fi if [ $2 = "encode_enc" ]; then # gpg --symmetric --cipher-algo AES256 $1 # origsha=$(sha1sum $1.gpg | cut -d " " -f1) destimage="FakeKittenENC_"$imagesize"_"$1.gpg"_"$origsha"_"$image mv $image $destimage dd if=$1.gpg bs=1M >> "$destimage" echo "encode completed in $destimage" fi fi if [ $2 = "decode" ]; then imageconst=$(echo $1 | cut -d "_" -f1) imagebs=$(echo $1 | cut -d "_" -f2) origname=$(echo $1 | cut -d "_" -f3) origsha=$(echo $1 | cut -d "_" -f4) origimage=$(echo $1 | cut -d "_" -f5) dd if=$1 bs=1M skip=$imagebs iflag=skip_bytes > "$origname" if [ $imageconst = "FakeKittenENC" ]; then #decrypt the file orignamenogpg=$(echo "$origname" | sed 's/.gpg//') gpg --output $orignamenogpg --decrypt $origname fi echo "decode completed in $origname, checking file integrity" echo $origsha" "$origname > $origname".sha1" shaoutput=$(sha1sum -c $origname".sha1") echo $shaoutput if [[ $shaoutput != *"OK"* ]]; then echo "" echo "!!! FAILED SHA VERIFICATION!!! EXITING" echo "!!! DELETING ALL CREATED FILES !!!" rm $origname rm $origname".sha1" exit fi if [ $imageconst = "FakeKittenENC" ]; then #remove the file that contains .gpg at the end rm $origname fi rm $origname".sha1" fi echo "" echo "end of my job"