--------------------------------------------------------------
          GICriptoEngine (c)2016, Giovanni Iacobelli
--------------------------------------------------------------

web: http://www.iacosoft.com

e-mail: info@iacosoft.com
giiac@hotmail.com

--------------------------------------------------------------
DESCRIZIONE

GICriptoEngine è un tool per la linea  di comando che consente
di criptare file con chiavi simmetriche e chiavi  asimmetriche

--------------------------------------------------------------
REQUISITI

GICriptoEngine per poter essere eseguito  richiede la presenza
del Framework .NET 4.0 o versione successiva.

--------------------------------------------------------------
LINEA DI COMANDO

GICriptoEngine.exe [Comando] file_sorgente file_destinazione

Elenco Comandi:
-c             cripta
-d             decripta
-f             crea il file di firma del documento
-vf            verifica il file di firma del documento
-k <dir> <pwd> crea la coppia di chiavi asimmetriche
-p <password>  imposta la password simmetrica per
               criptare/decriptare il file
-cert <..>     pathname del certificato x.509 o soggetto
               per il recupero dallo store (cn=miocert)
-pc <password> imposta la password per aprire il certificato
-key <..>      pathname della chiave asimmetrica
-pk <password> imposta la password per aprire la chiave
               asimmetrica
-info          visualizza le informazioni sul programma

--------------------------------------------------------------
USO

Criptaggio con chiave simmetrica

Nella cifratura con chiave simmetrica la stessa password verrà
usata sia per criptare che per decriptare.

Il  seguente  comando  cripta  il  file  c:\dati.txt usando la
password 12345678

GICriptoEngine.exe -c -p 12345678 c:\dati.txt

per  decriptare è  necessario usare  il comando -d:

GICriptoEngine.exe -d -p 12345678 c:\dati.txt

Per  criptare  il  file  in  un  altro  file lasciando il file
originale non modificato:

GICriptoEngine.exe -c -p 12345678 c:\dati.txt c:\daticriptati.txt

Se  si tenta di decriptare un file  non criptato o di criptare
un file già criptato verrà generato un errore.


Criptaggio con chiave asimmetrica

Nella cifratura  con chiavi  asimmetriche  si disporrà  di due  
chiavi di cui una privata e una pubblica.  La  chiave pubblica
verrà usata per criptare e la chiave privata per decriptare.

Il seguente comando crea la coppia di chiavi:

GICriptoEngine.exe -k c:\keys 12345678

Nella cartella c:\keys  verranno create le chiavi asimmetriche
contenute nei rispettivi file:

C:\keys\privateKey.txt
C:\keys\publicKey.txt

12345678 è la password che verrà usata  per criptare la chiave
privata. L'impostazione della password non è obbligatoria.

Se  la  cartella  destinazione   non   esiste  o  la  cartella
destinazione  contiene  già  delle  chiavi  verrà  generato un
errore.

Il seguente comando cripta il file con chiave asimmetrica:

GICriptoEngine.exe -c -key c:\keys\publickey.txt c:\dati.txt

Per  decriptare  bisognerà  usare  la chiave  privata protetta
dalla password 12345678:

GICriptoEngine.exe -d -key c:\keys\privatekey.txt c:\dati.txt -pk 12345678

I certificati x.509 contengono nel loro interno  una coppia di
chiavi asimmetriche o almeno la chiave pubblica.

Il  seguente  comando  mostra  come criptare  il file dati.txt
tramite  la   chiave   pubblica   contenuta   nel  certificato
newCert.cer

GICriptoEngine.exe -c -cert c:\newCert.cer c:\dati.txt

Tramite  la  chiave  privata  del  certificato  sarà possibile
decriptare il file.        Il certificato contenente la chiave
privata è protetto dalla password 12345678

GICriptoEngine.exe -d -cert c:\newCert.pfx c:\dati.txt -pc 12345678

Il seguente comando cripta il file con il certificato
archiviato nello store del computer.

GICriptoEngine.exe -c -cert cn=www.miosito.it c:\dati.txt

La  ricerca  viene  effettuata  nell'archivio  personale dell'
utente  loggato   e  in  caso  negativo  estesa  all' archivio
personale del computer locale.

Il vantaggio  di usare un certificato archiviato nello store e
che per decriptare il testo non occorre inserire la password.

GICriptoEngine.exe -d -cert cn=www.miosito.it c:\dati.txt


Generazione Firma e validazione

Tramite  la  chiave  privata  è possibile  generare il file di
firma di un determinato file.

GICriptoEngine.exe -f -key c:\keys\privateKey.txt -pk 12345678 c:\dati.txt c:\firma.txt

GICriptoEngine.exe -f -cert c:\newcert.pfx -pc 12345678 c:\dati.txt c:\firma.txt

GICriptoEngine.exe -f -cert cn=astroifcert.rfi.it -pc Passw0rd c:\dati.txt c:\firma.txt

per la verifica è necessario usare la chiave pubblica:

GICriptoEngine.exe -vf -key c:\keys\publicKey.txt c:\dati.txt c:\firma.txt

GICriptoEngine.exe -vf -cert c:\newcert.cer c:\dati.txt c:\firma.txt

GICriptoEngine.exe -vf -cert cn=astroifcert.rfi.it c:\dati.txt c:\firma.txt


--------------------------------------------------------------
LOCALIZZAZIONE

Per  il  settaggio della lingua  occorre impostare il file  di
localizzazione nella chiave

<setting name="LanguageFile" serializeAs="String">
         <value>msg_it.ini</value>
</setting>

del file di configurazione GICriptoEngine.exe.config

I file di localizzazione disponibili sono i seguenti:

mgs_it.ini  -> lingua l'italiano
msg_eng.ini -> lingua Inglese

--------------------------------------------------------------
Distribuzione & Garanzie

Questo programma appartiene alla categoria FREEWARE.
Ciò significa che può essere copiato e distribuito liberamente
ma non può  essere venduto  tranne una piccola somma di denaro
per ripagare  le spese  di copia e di distribuzione.  
L'autore conserva sul programma tutti i diritti e  ne può fare
tutto ciò che vuole (compreso venderlo).

Il programma  può essere usato liberamente  da chiunque  senza
alcun costo: il programma è gratuito.

Può essere liberamente distribuito dalle riviste d'informatica
che  accludono  alla  testata  CD-Rom  contenenti  raccolte di
programmi Shareware, Freeware e/o Public Domain.

Può essere  liberamente  distribuito  da  siti  WEB di archivi
software sia HTTP che FTP.

Non  può essere incluso  in propri pacchetti commerciali senza
l'autorizzazione scritta dell'Autore.

L'autore può fare tutto ciò che vuole.

Data la natura puramente amatoriale del software, l'autore non
garantisce il perfetto funzionamento dello stesso.
Non si riterrà e non sarà,  in nessun caso,  responsabile  dei
danni  di qualsiasi genere,  diretti  o indiretti,  dovuti  al
programma o al suo cattivo funzionamento.

OGNUNO  USI  QUESTO   SOFTWARE   ASSUMENDOSI  TUTTI  I  RISCHI
E I PERICOLI!!!!

Se l'utente non accetta le presenti condizioni o parte di esse
dovrà  smettere di usare il programma e disinstallarlo dal suo
sistema.

--------------------------------------------------------------