X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/2e16354693c5b0b2ea03a7824e6f9e527c0a66e9..53ee28cb3a14f529f36fcfeb514b7ef718a31973:/client/scripting.c diff --git a/client/scripting.c b/client/scripting.c index 414f5315..cc6498ce 100644 --- a/client/scripting.c +++ b/client/scripting.c @@ -393,7 +393,7 @@ static int l_reveng_models(lua_State *L){ char *models[80]; int count = 0; - lua_Integer in_width = luaL_checkinteger(L, 1); + int in_width = luaL_checkinteger(L, 1); if( in_width > 89 ) return returnToLuaWithError(L,"Width cannot exceed 89, got %d", in_width); @@ -412,6 +412,13 @@ static int l_reveng_models(lua_State *L){ return 1; } +//Called with 4 parameters. +// inModel ,string containing the crc model name: 'CRC-8' +// inHexStr ,string containing the hex representation of the data that will be used for CRC calculations. +// reverse ,int 0/1 (bool) if 1, calculate the reverse CRC +// endian ,char, 'B','b','L','l','t','r' describing if Big-Endian or Little-Endian should be used in different combinations. +// +// outputs: string with hex representation of the CRC result static int l_reveng_RunModel(lua_State *L){ //-c || -v //inModel = valid model name string - CRC-8 @@ -422,19 +429,14 @@ static int l_reveng_RunModel(lua_State *L){ //result = calculated crc hex string char result[50]; - size_t dataLen; - const char *inModel = luaL_checklstring(L, 1, &dataLen); - if ( dataLen < 4 ) return returnToLuaWithError(L,"Can't find model, got %s", inModel); - - const char *inHexStr = luaL_checklstring(L, 2, &dataLen); - if ( dataLen < 4 ) return returnToLuaWithError(L,"Hex string too short, got %d", dataLen); - - int reverse = luaL_checkinteger(L, 3); - const char endian = luaL_checklstring(L, 4, &dataLen)[0]; + const char *inModel = luaL_checkstring(L, 1); + const char *inHexStr = luaL_checkstring(L, 2); + bool reverse = lua_toboolean(L, 3); + const char endian = luaL_checkstring(L, 4)[0]; //PrintAndLog("mod: %s, hex: %s, rev %d", inModel, inHexStr, reverse); //int RunModel(char *inModel, char *inHexStr, bool reverse, char endian, char *result) - int ans = RunModel( (char *)inModel, (char *)inHexStr, (bool)reverse, endian, result); + int ans = RunModel( (char *)inModel, (char *)inHexStr, reverse, endian, result); if (!ans) return returnToLuaWithError(L,"Reveng failed"); @@ -442,7 +444,6 @@ static int l_reveng_RunModel(lua_State *L){ return 1; } - /** * @brief Sets the lua path to include "./lualibs/?.lua", in order for a script to be * able to do "require('foobar')" if foobar.lua is within lualibs folder. @@ -490,7 +491,6 @@ int set_pm3_libraries(lua_State *L) {"sha1", l_sha1}, {"reveng_models", l_reveng_models}, {"reveng_runmodel", l_reveng_RunModel}, - {NULL, NULL} };