Files
gateway-dbc-fx/gnpdev/SecurityUtility/src/it/valueteam/securityutility/TripleDesKeyCipher.java
2024-05-09 17:40:24 +02:00

135 lines
3.0 KiB
Java

package it.valueteam.securityutility;
import java.io.*;
import java.security.*;
import java.util.*;
/**
* <p>Title: Utility per la lettura della chiave di cifratura serializzata dal file dove risiede
* e la memorizza in un keystore protetta da passprase</p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: ValueTeam</p>
*
* @author Mario Giurlanda
*
* @version 1.0
*/
public class TripleDesKeyCipher {
public TripleDesKeyCipher() {
}
public static void main(String[] args) {
Key encryptionKey = null;
boolean backup=false;
//Recupero degli eventuali args
if( args.length == 0 )
backup = false;
else if ( args[0].equalsIgnoreCase("-b") )
backup = true;
else {
System.out.println("Sintassi: TripleDesKeyCipher [-b] ");
System.out.println(" -b Backup dei file");
System.exit(1);
}
//Load delle property
Properties p = TripleDesKeyGenerator.initProperties();
String filekey = (String)p.get("PATH_KEY");
try {
File file = new File(filekey);
//Controllo sull'esistenza del file
System.out.println("Leggo il file" + file);
if (file.exists()) {
encryptionKey = loadTripleDesKey(file);
//Se richiesto backup provo ad eseguirlo altrimenti termino esecuzione con messaggio di errore
if (backup) {
System.out.println("Backup del file " + file);
if (backupFile(file)) {
System.out.println("Backup eseguito con successo");
}
else {
System.out.println("Impossibile eseguire il backup del file");
System.exit(1);
}
}
//Generazione del keystore
System.out.println("Genero il file: " + filekey);
TripleDesKeyGenerator.storeTripleDesKey(file, encryptionKey, true);
System.out.println("File generato con successo.");
}
else
System.out.println("Impossibile cifrare la chiave, file non presente.");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* loadTripleDesKey
*
* @return Key
*/
private static Key loadTripleDesKey(File fileChiave) throws Exception {
ObjectInputStream in = null;
Key chiave3DES = null;
try {
in = new ObjectInputStream(new FileInputStream(fileChiave));
chiave3DES = (Key)in.readObject();
} catch (Exception e) {
System.out.println("Impossibile caricare la chiave dal file " + fileChiave);
e.printStackTrace();
throw e;
}
finally {
if(in!=null) {
try {
in.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}
return chiave3DES;
}
private static boolean backupFile(File oldFile){
File newFile = null;
boolean ret;
try{
newFile = new File(oldFile.getAbsolutePath() + ".bak");
ret = oldFile.renameTo(newFile);
ret = true;
}
catch(Exception e){
e.printStackTrace();
ret = false;
}
return ret;
}
}