int iterationCount = dIn.readInt();
Cipher cipher = makePBECipher(KEY_CIPHER, Cipher.DECRYPT_MODE, password, salt, iterationCount);
CipherInputStream cIn = new CipherInputStream(dIn, cipher);
try
{
return decodeKey(new DataInputStream(cIn));
}
catch (Exception x)
{
bIn = new ByteArrayInputStream((byte[])obj);
dIn = new DataInputStream(bIn);
salt = new byte[dIn.readInt()];
dIn.readFully(salt);
iterationCount = dIn.readInt();
cipher = makePBECipher("Broken" + KEY_CIPHER, Cipher.DECRYPT_MODE, password, salt, iterationCount);
cIn = new CipherInputStream(dIn, cipher);
Key k = null;
try
{
k = decodeKey(new DataInputStream(cIn));
}
catch (Exception y)
{
bIn = new ByteArrayInputStream((byte[])obj);
dIn = new DataInputStream(bIn);
salt = new byte[dIn.readInt()];
dIn.readFully(salt);
iterationCount = dIn.readInt();
cipher = makePBECipher("Old" + KEY_CIPHER, Cipher.DECRYPT_MODE, password, salt, iterationCount);
cIn = new CipherInputStream(dIn, cipher);
k = decodeKey(new DataInputStream(cIn));
}
//