public static byte kuz_mul_gf256 ( byte x , byte y ) { // uint8_t z; // z = 0; byte z = 0 ; // while (y) { while ( ( y & 0xFF ) != 0 ) { // if (y & 1) if ( ( y & 1 ) != 0 ) { // z ^= x; z ^= x ; } // x = (x << 1) ^ (x & 0x80 ? 0xC3 : 0x00); x = ( byte ) ( ( ( x & 0xFF ) << 1 ) ^ ( ( x & 0x80 ) != 0 ? 0xC3 : 0x00 ) ) ; // y >>= 1; y = ( byte ) ( ( y & 0xFF ) >> 1 ) ; } // return z; return z ; }
totally not constant time