docs: def michael(key, to_hash):
      """Defined in 802.11i p.48"""
  
      # Block size: 4
      nb_block, nb_extra_bytes = divmod(len(to_hash), 4)
      # Add padding
      data = to_hash + chb(0x5a) + b"\x00" * (7 - nb_extra_bytes)
  
      # Hash
      m_l, m_r = unpack('<II', key)
      for i in range(nb_block + 2):
          # Convert i-th block to int
          block_i = unpack('<I', data[i * 4:i * 4 + 4])[0]
          m_l ^= block_i
          m_l, m_r = _michael_b(m_l, m_r)
      return pack('<II', m_l, m_r)