INNER CODE UNIT · Rust

setup_iv

RustCrypto/stream-ciphers · rabbit/src/lib.rs:99

    fn setup_iv(&mut self, iv: [u8; IV_BYTE_LEN]) {
        let mut i = [0_u32; 4];

        i[0] =
            iv[0] as u32 | ((iv[1] as u32) << 8) | ((iv[2] as u32) << 16) | ((iv[3] as u32) << 24);
        i[2] =
            iv[4] as u32 | ((iv[5] as u32) << 8) | ((iv[6] as u32) << 16) | ((iv[7] as u32) << 24);
        i[1] = (i[0] >> 16) | (i[2] & 0xFFFF0000);
        i[3] = (i[2] << 16) | (i[0] & 0x0000FFFF);

        self.c[0] ^= i[0];
        self.c[1] ^= i[1];
        self.c[2] ^= i[2];
        self.c[3] ^= i[3];
        self.c[4] ^= i[0];
        self.c[5] ^= i[1];
        self.c[6] ^= i[2];
        self.c[7] ^= i[3];

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…