Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # --------[ DDE - Directory DEcrypter ]--------
- #
- # Macro per la crittazione o decrittazione al volo di directory
- # Lo scopo e' quello di automatizzare il processo senza richiedere input alcuno
- # L'unico parametro possibile e' il nome della directory
- # DDE controlla se esiste la dir in chiaro; se esiste -> la cifra
- #+ se non esiste cerca il relativo file cifrato, lo decifra ed estrae la
- #+ cartella dall'archivio.
- # Usa 'openssl' per la cifratura e 'tar' per l'archiviazione
- # ============================================================================ #
- # { Dichiarazione VARIABILI }
- # Percorso di lavoro
- img_dir=/media/DATI/onWork/c-dir
- # ________ nomi ________
- SU=.dd # Suffisso dir estratta
- DEF=use # Dir di default
- ES=.tdd # Estensione archivio
- #ES=.tar # Estensione di default
- TYP=.ssl # Estensione file cifrato
- #TYP=.gpg # prima usava gpg
- #PRG=Gpg
- PRG=openssl # Programma di cifratura usato
- # ============================================================================ #
- # { Definizione FUNZIONI }
- # controllo exit status
- function _ctrl() {
- if (( $? )); then
- err="dde> Errore nel flusso. Livello:\n"
- err=$err"\t$1\n"
- err=$err"dde> IMPORTANTE: eliminare eventuale garbage in $WD\n"
- err=$err"dde> Exit!\n"
- echo -e "$err" >&2
- exit 1
- fi
- }
- # controllo argomento
- function _cpar() {
- if [[ "$1" ]]; then
- DIR="$1"
- else
- DIR="$DEF"
- fi
- if [[ -d "$DIR$SU" ]]; then
- EXE=_com
- elif [[ -d "$DIR" ]]; then
- mv "$DIR" "$DIR$SU"
- EXE=_com
- elif [[ -f "$DIR$ES$TYP" ]]; then
- EXE=_dec
- else
- echo "dde> ERROR: parametro errato." >&2
- exit 2
- fi
- }
- # setta la working dir
- function _setenv() {
- if [[ ! "$WD" ]]; then
- WD="$img_dir"
- else
- WD="$WD""/c-dir"
- fi
- cd $WD
- }
- # archiviazione e cifratura
- function _com() {
- echo -n "dde> Archiviazione di $DIR in corso... "
- tar -cf "$DIR$ES" "$DIR$SU/" &> /dev/null
- _ctrl "Tar in archiviazione"
- echo "OK"
- [ -f "$DIR$ES$TYP" ] && rm "$DIR$ES$TYP"
- echo -n "dde> Cifratura di $DIR$ES in corso... "
- # gpg -c "$DIR$ES" &> /dev/null
- openssl enc -e -bf-ecb -salt -in "$DIR$ES" -out "$DIR$ES$TYP"
- _ctrl "$PRG in codifica"
- echo "OK"
- rm -r "$DIR$SU"
- rm "$DIR$ES"
- }
- # decifratura ed estrazione
- function _dec() {
- echo -n "dde> Decifrazione di $DIR$ES in corso... "
- # gpg "$DIR$ES$TYP" &> /dev/null
- openssl enc -d -bf-ecb -salt -in "$DIR$ES$TYP" -out "$DIR$ES"
- _ctrl "$PRG in decodifica"
- echo "OK"
- echo -n "dde> Estrazione di $DIR in corso... "
- tar -xf "$DIR$ES" &> /dev/null
- _ctrl "Tar in estrazione"
- echo "OK"
- rm "$DIR$ES"
- }
- # ============================================================================ #
- # { ENTRY POINT }
- _setenv
- _cpar $1
- $EXE $DIR
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment