/// Tries to decipher a ciphered data block by using the previous XOR operand and an oracle on the provided address and port.
/// May print some messages on stdout.
-pub fn decipher(address: &str, port: u16, original_xor_operand: &[u8, ..16], cipher_block: &[u8, ..16], variant: packet::Variant) -> Option<Vec<u8>> {
+pub fn decipher(address: &str, port: u16, original_xor_operand: &[u8; 16], cipher_block: &[u8; 16], variant: packet::Variant) -> Option<Vec<u8>> {
let mut end_point = EndPoint::new(
match TcpStream::connect((address, port)) {
Ok(s) => s,
);
// Sees 'packet::Packet' documentation for a complete description about the binary packet structure.
- let mut final_packet = [0u8, ..2 + 1 + 8 + 32 + 10];
+ let mut final_packet = [0u8; 2 + 1 + 8 + 32 + 10];
final_packet[1] = (final_packet.len() as u8) - 2; // Data length.
copy_memory(final_packet.slice_mut(2 + 1 + 8 + 16, 2 + 1 + 8 + 32), cipher_block);
- let mut decipher_block = [0u8, ..16]; // The result.
- let mut x_prime_block = [0u8, ..16]; // The cipher block ('cipher_block') after AES and before XOR.
+ let mut decipher_block = [0u8; 16]; // The result.
+ let mut x_prime_block = [0u8; 16]; // The cipher block ('cipher_block') after AES and before XOR.
let mut current_timestamp = 0u64;
let mut first_byte = 0u8; // Used to save the first byte for the first iteration.