throw new Error(e);
}
// System.err.println("Outer key: "+HexUtil.bytesToHex(outerKey));
cipher.initialize(outerKey);
PCFBMode pcfb = PCFBMode.create(cipher, iv);
pcfb.blockDecipher(dataAndHash, 0, dataAndHash.length);
// System.err.println("Decrypted data and hash: "+HexUtil.bytesToHex(dataAndHash));
byte[] data = Arrays.copyOf(dataAndHash, dataAndHash.length - OLD_HASH_LENGTH);
byte[] hash = Arrays.copyOfRange(dataAndHash, data.length, dataAndHash.length);
// System.err.println("Data: "+HexUtil.bytesToHex(data));
// System.err.println("Hash: "+HexUtil.bytesToHex(hash));