nam3nL0s

dde2 - dde with openssl

Aug 19th, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.74 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #   --------[ DDE - Directory DEcrypter ]--------
  4. #
  5. # Macro per la crittazione o decrittazione al volo di directory
  6. # Lo scopo e' quello di automatizzare il processo senza richiedere input alcuno
  7. # L'unico parametro possibile e' il nome della directory
  8. # DDE controlla se esiste la dir in chiaro; se esiste -> la cifra
  9. #+  se non esiste cerca il relativo file cifrato, lo decifra ed estrae la
  10. #+  cartella dall'archivio.
  11. # Usa 'openssl' per la cifratura e 'tar' per l'archiviazione
  12.  
  13.  
  14. # ============================================================================ #
  15. #       { Dichiarazione VARIABILI }
  16.  
  17.  
  18. # Percorso di lavoro
  19. img_dir=/media/DATI/onWork/c-dir
  20.  
  21. # ________  nomi ________
  22. SU=.dd                  # Suffisso dir estratta
  23. DEF=use                 # Dir di default
  24. ES=.tdd                 # Estensione archivio
  25. #ES=.tar                # Estensione di default
  26. TYP=.ssl                # Estensione file cifrato
  27. #TYP=.gpg               # prima usava gpg
  28. #PRG=Gpg
  29. PRG=openssl             # Programma di cifratura usato
  30.  
  31.  
  32.  
  33. # ============================================================================ #
  34. #       { Definizione FUNZIONI }
  35.  
  36. # controllo exit status
  37. function _ctrl() {
  38.     if (( $? )); then
  39.         err="dde> Errore nel flusso. Livello:\n"
  40.         err=$err"\t$1\n"
  41.         err=$err"dde> IMPORTANTE: eliminare eventuale garbage in $WD\n"
  42.         err=$err"dde> Exit!\n"
  43.         echo -e "$err" >&2
  44.         exit 1
  45.     fi
  46. }
  47.  
  48. # controllo argomento
  49. function _cpar() {
  50.     if [[ "$1" ]]; then
  51.         DIR="$1"
  52.     else
  53.         DIR="$DEF"
  54.     fi
  55.     if [[ -d "$DIR$SU" ]]; then
  56.         EXE=_com
  57.     elif [[ -d "$DIR" ]]; then
  58.         mv "$DIR" "$DIR$SU"
  59.         EXE=_com
  60.     elif [[ -f "$DIR$ES$TYP" ]]; then
  61.         EXE=_dec
  62.     else
  63.         echo "dde> ERROR: parametro errato." >&2
  64.         exit 2
  65.     fi
  66. }
  67.  
  68. # setta la working dir
  69. function _setenv() {
  70.     if [[ ! "$WD" ]]; then
  71.         WD="$img_dir"
  72.     else
  73.         WD="$WD""/c-dir"
  74.     fi
  75.     cd $WD
  76. }
  77.  
  78. # archiviazione e cifratura
  79. function _com() {
  80.     echo -n "dde> Archiviazione di $DIR in corso... "
  81.     tar -cf "$DIR$ES" "$DIR$SU/" &> /dev/null
  82.     _ctrl "Tar in archiviazione"
  83.     echo "OK"
  84.     [ -f "$DIR$ES$TYP" ] && rm "$DIR$ES$TYP"
  85.     echo -n "dde> Cifratura di $DIR$ES in corso... "
  86. #   gpg -c "$DIR$ES"  &> /dev/null
  87.     openssl enc -e -bf-ecb -salt -in "$DIR$ES" -out "$DIR$ES$TYP"
  88.     _ctrl "$PRG in codifica"
  89.     echo "OK"
  90.     rm -r "$DIR$SU"
  91.     rm "$DIR$ES"
  92. }
  93.  
  94. # decifratura ed estrazione
  95. function _dec() {
  96.     echo -n "dde> Decifrazione di $DIR$ES in corso... "
  97. #   gpg "$DIR$ES$TYP" &> /dev/null
  98.     openssl enc -d -bf-ecb -salt -in "$DIR$ES$TYP" -out "$DIR$ES"
  99.     _ctrl "$PRG in decodifica"
  100.     echo "OK"
  101.     echo -n "dde> Estrazione di $DIR in corso... "
  102.     tar -xf "$DIR$ES" &> /dev/null
  103.     _ctrl "Tar in estrazione"
  104.     echo "OK"
  105.     rm "$DIR$ES"
  106. }
  107.  
  108.  
  109.  
  110. # ============================================================================ #
  111. #       { ENTRY POINT }
  112.  
  113. _setenv
  114. _cpar $1
  115. $EXE $DIR
  116. exit 0
Advertisement
Add Comment
Please, Sign In to add comment