From f6af1cf0adfb82f29c1cb5fa597ccae7614a482b Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Thu, 25 Feb 2016 17:51:02 +0100 Subject: [PATCH] FIX: the 14b crc was called wrong in LUA. You enter a hexstring already, and get a hexstring back. --- client/lualibs/utils.lua | 6 +++--- client/scripting.c | 20 +++++++++----------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/client/lualibs/utils.lua b/client/lualibs/utils.lua index bf62fc88..39f8bca2 100644 --- a/client/lualibs/utils.lua +++ b/client/lualibs/utils.lua @@ -75,9 +75,9 @@ local Utils = if #s == 0 then return nil end if type(s) == 'string' then local utils = require('utils') - local ascii = utils.ConvertHexToAscii(s) - local hashed = core.iso14443b_crc(ascii) - return utils.ConvertAsciiToHex(hashed) + return utils.ConvertAsciiToHex( + core.iso14443b_crc(s) + ) end return nil end, diff --git a/client/scripting.c b/client/scripting.c index 6eef88ba..aae8c3ca 100644 --- a/client/scripting.c +++ b/client/scripting.c @@ -82,7 +82,6 @@ static int l_WaitForResponseTimeout(lua_State *L){ } UsbCommand response; - if(WaitForResponseTimeout(cmd, &response, ms_timeout)) { //Push it as a string @@ -222,18 +221,17 @@ static int l_iso14443b_crc(lua_State *L) unsigned char *TransmitFirst, unsigned char *TransmitSecond) */ - unsigned char buf[USB_CMD_DATA_SIZE]; - size_t len = 0; - const char *data = luaL_checklstring(L, 1, &len); - if (USB_CMD_DATA_SIZE < len) - len = USB_CMD_DATA_SIZE-2; + size_t size = 0; + const char *data = luaL_checklstring(L, 1, &size); + + unsigned char buf[USB_CMD_DATA_SIZE] = {0x00}; - for (int i = 0; i < len; i += 2) { - sscanf(&data[i], "%02x", (unsigned int *)&buf[i / 2]); - } - ComputeCrc14443(CRC_14443_B, buf, len, &buf[len], &buf[len+1]); + for (int i = 0; i < size; i += 2) + sscanf(&data[i], "%02x", (unsigned int *)&buf[i / 2]); - lua_pushlstring(L, (const char *)&buf, len+2); + size /= 2; + ComputeCrc14443(CRC_14443_B, buf, size, &buf[size], &buf[size+1]); + lua_pushlstring(L, (const char *)&buf, size+2); return 1; } -- 2.39.2