Ya lo tengo solucionado. En el post puesto en [URL="https://stackoverflow.com/questions/29239854/encrypt-a-file-appending-wrapped-key-in-unique-file"]StackOverflow[/URL] havia un pequeño error de codigo.
Al desencriptar usaba:
Código Java:
Ver original
try {
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.UNWRAP_MODE, priv);
//First we must to take the wrapped key in the first 256 bytes of the file:
byte[] bufferKey = new byte[256];
if (is.read(bufferKey) != bufferKey.length) {
}
is.close();
Key ky
= cipher.
unwrap(bufferKey,
"AES", Cipher.
SECRET_KEY);¡
// Now we must to uncrypt the rest of the file
cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
cipher.init(Cipher.DECRYPT_MODE, ky);
CipherInputStream ix
= new CipherInputStream
(new FileInputStream(in
), cipher
);
copy(ix, os);
ix.close();
os.close();
System.
err.
println("Ha succeït un error xifrant: " + ex
); }
}
Como podemos ver, cuando instancio el CipherInputStream no lo hago usando el FileInputStream instanciado para leer los primeros 256.
Modificando el codigo por:
Código Java:
Ver originalCipherInputStream ix = new CipherInputStream(is, cipher);
soluciona mi problema..
Gracias por la ayuda!