>>> DOWNLOAD SCRIPT <<<  

#!/bin/bash

readonly PROG_NAME="Apertura di file p7m"

if "$(which zenity)" == "" ]; then
    echo "Errore: zenity non presente. Installare zenity."
    exit 10
fi

IN_FILE=""
if "$1" == "" ]; then
    IN_FILE=$(zenity --file-selection \
        --title="Seleziona un file p7m" --file-filter="file firmati | *.p7m *.P7m *P7M" 2> /dev/null)
else
    IN_FILE="$1"
fi

if "$IN_FILE" == "" ]; then
    echo "nessun file selezionato"
    exit 1  # nessun file selezionato
fi

if [ ! -f "$IN_FILE" ]; then
    echo "file inesistente"
    exit 2  # file inesistente
fi

# nome dei file di output
outfile=${IN_FILE::-4} # l'estensione deve essere ".p7m", 4 caratteri
outfilecert="$IN_FILE.cert"

# estrazione
openssl smime -verify -inform DER -in "$IN_FILE" -noverify -out "$outfile"
openssl pkcs7 -inform DER -print_certs -text -in "$IN_FILE" -out "$outfilecert"

# esito
outfile_senzaext=${outfile%.*}
if "$outfile_senzaext" == "$outfile" ]; then
    messaggio="Estrazione terminata: sono stati creati i due file\n\"$outfile\"\n\"$outfilecert\""
    messaggio="$messaggio\n\nATTENZIONE!\nRinominare in modo appropriato il file di output;provare ad esempio\n\"$outfile.pdf\""
    zenity --info --text "$messaggio" --title "$PROG_NAME" 2> /dev/null
else
    echo "creati i file"
    echo " - \"$outfile\""
    echo " - \"$outfilecert\""
    xdg-open "$outfile"
    xdg-open "$outfilecert"
fi