lua-bit-numberlua icon indicating copy to clipboard operation
lua-bit-numberlua copied to clipboard

Mapping jit/ proprietary modules to Lua-bit-numberlua

Open nodecentral opened this issue 4 years ago • 0 comments

Hi,

I’m looking to convert some Lua code that I found online, which uses some jit/ proprietary modules - into pure Lua so I can control my tv using Lua alone.

The code is here, which uses bit.band, bit.bnot, bit.bxor - how best would you convert it ?

  local iv = "mUQdS7/RyJTMsiojPz9i1Q=="
  local iv_vals = { iv:byte(1, -1) }
  local key_vals = {}

for i = 1, 16, 4 do
  key_vals[ i ] = bit.band(bit.bnot(iv_vals[ i + 3 ]), 0xFF)
  key_vals[ i + 1 ] = bit.band(bit.bnot(iv_vals[ i + 2 ]), 0xFF)
  key_vals[ i + 2 ] = bit.band(bit.bnot(iv_vals[ i + 1 ]), 0xFF)
  key_vals[ i + 3 ] = bit.band(bit.bnot(iv_vals[ i ]), 0xFF)
end

local key = string.char(unpack(key_vals))
-- local hmac_key_mask = lmcore.hextostr('15C95AC2B08AA7EB4E228F811E34D04FA54BA7DCAC9879FA8ACDA3FC244F3854', true)
local hmac_key_mask = hextostr('15C95AC2B08AA7EB4E228F811E34D04FA54BA7DCAC9879FA8ACDA3FC244F3854')
local hmac_key_mask_vals = { hmac_key_mask:byte(1, -1) }
local hmac_vals = {}

for i = 1, 32, 4 do
  hmac_vals[ i ] = bit.bxor(hmac_key_mask_vals[ i ], iv_vals[ bit.band(i + 1, 0xF) + 1 ])
  hmac_vals[ i + 1 ] = bit.bxor(hmac_key_mask_vals[ i + 1 ], iv_vals[ bit.band(i + 2, 0xF) + 1 ])
  hmac_vals[ i + 2 ] = bit.bxor(hmac_key_mask_vals[ i + 2 ], iv_vals[ bit.band(i - 1, 0xF) + 1 ])
  hmac_vals[ i + 3 ] = bit.bxor(hmac_key_mask_vals[ i + 3 ], iv_vals[ bit.band(i, 0xF) + 1 ])
end

I would appreciate any help / advice you could give,

nodecentral avatar Dec 29 '20 11:12 nodecentral