06/12/05 9:46
tyler
Sto` implementando un sistema di anonimato e un metodo che ho implementato di una classe (per crittografia simmetrica) in fase di esecuzione (del main) lancia una eccezione..
La classe ha come come VARIABILI DI CLASSE:
protected KeyGenerator kg;
protected Key key;
protected Cipher c;
Il metodo che codifica funziona; il metodo che decodifica un file cifrato creando un nuovo file con il contenuto in chiaro lancia nell' esecuzione del main una eccezione in cui mi dice che devo mettere un provider come parametro di init..(java.security.InvalidKeyException: No installed Provider supports this key: (null))
Il codice del metodo che non va` e` il seguente:
public void decodifica(String cipheredFile)throws Exception{
FileInputStream ciphered = new FileInputStream(cipheredFile);
ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
int j = 0;
while((j = ciphered.read()) != -1) {
baos2.write(j);
}
byte[] toDecrypt = baos2.toByteArray();
c = Cipher.getInstance("AES/CBC/PKCS5Padding"
c.init(Cipher.DECRYPT_MODE, key);
byte[] decrypted = c.doFinal(toDecrypt);
FileOutputStream fos = new FileOutputStream(cipheredFile + ".simm.decoded"
fos.write(decrypted);
fos.close();
}
Ho studiato le API ma non ho ben compreso cos'e` un Provider, il suo uso e come introdurlo nel codice..
Se qualcuno puo` aiutarmi lo ringrazio molto!
La classe ha come come VARIABILI DI CLASSE:
protected KeyGenerator kg;
protected Key key;
protected Cipher c;
Il metodo che codifica funziona; il metodo che decodifica un file cifrato creando un nuovo file con il contenuto in chiaro lancia nell' esecuzione del main una eccezione in cui mi dice che devo mettere un provider come parametro di init..(java.security.InvalidKeyException: No installed Provider supports this key: (null))
Il codice del metodo che non va` e` il seguente:
public void decodifica(String cipheredFile)throws Exception{
FileInputStream ciphered = new FileInputStream(cipheredFile);
ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
int j = 0;
while((j = ciphered.read()) != -1) {
baos2.write(j);
}
byte[] toDecrypt = baos2.toByteArray();
c = Cipher.getInstance("AES/CBC/PKCS5Padding"
c.init(Cipher.DECRYPT_MODE, key);
byte[] decrypted = c.doFinal(toDecrypt);
FileOutputStream fos = new FileOutputStream(cipheredFile + ".simm.decoded"
fos.write(decrypted);
fos.close();
}
Ho studiato le API ma non ho ben compreso cos'e` un Provider, il suo uso e come introdurlo nel codice..
Se qualcuno puo` aiutarmi lo ringrazio molto!
aaa