mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-07-13 00:23:17 -07:00
ADD: added the crc8legic to Lua. call it with core.crc8legic
also a helper function to take a hexstring and calc the crc on it, was added inside utils.lua Call it inside a lua-script like this: local utils = require('utils') local data = '01020304' local crc = utils.Crc8Legic(data) print (uid, ('%02x'):format(crc))
This commit is contained in:
parent
c0f15a05b3
commit
a75d63f19b
3 changed files with 43 additions and 16 deletions
|
@ -82,6 +82,20 @@ local Utils =
|
||||||
return nil
|
return nil
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
------------ CRC-16 ccitt checksums
|
||||||
|
-- Takes a hex string and calculates a crc16
|
||||||
|
Crc8Legic = function(s)
|
||||||
|
if s == nil then return nil end
|
||||||
|
if #s == 0 then return nil end
|
||||||
|
if type(s) == 'string' then
|
||||||
|
local utils = require('utils')
|
||||||
|
local asc = utils.ConvertHexToAscii(s)
|
||||||
|
local hash = core.crc8legic(asc)
|
||||||
|
return hash
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end,
|
||||||
|
|
||||||
------------ CRC-16 ccitt checksums
|
------------ CRC-16 ccitt checksums
|
||||||
-- Takes a hex string and calculates a crc16
|
-- Takes a hex string and calculates a crc16
|
||||||
Crc16 = function(s)
|
Crc16 = function(s)
|
||||||
|
@ -96,6 +110,7 @@ local Utils =
|
||||||
return nil
|
return nil
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
|
||||||
------------ CRC-64 ecma checksums
|
------------ CRC-64 ecma checksums
|
||||||
-- Takes a hex string and calculates a crc64 ecma
|
-- Takes a hex string and calculates a crc64 ecma
|
||||||
Crc64 = function(s)
|
Crc64 = function(s)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Copyright (C) 2013 m h swende <martin at swende.se>
|
// Copyright (C) 2013 m h swende <martin at swende.se>
|
||||||
|
// Modified 2015,2016, iceman
|
||||||
//
|
//
|
||||||
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
||||||
// at your option, any later version. See the LICENSE.txt file for the text of
|
// at your option, any later version. See the LICENSE.txt file for the text of
|
||||||
|
@ -7,23 +8,8 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Some lua scripting glue to proxmark core.
|
// Some lua scripting glue to proxmark core.
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
#include <lua.h>
|
|
||||||
#include <lualib.h>
|
|
||||||
#include <lauxlib.h>
|
|
||||||
#include "proxmark3.h"
|
|
||||||
#include "usb_cmd.h"
|
|
||||||
#include "cmdmain.h"
|
|
||||||
#include "scripting.h"
|
#include "scripting.h"
|
||||||
#include "util.h"
|
|
||||||
#include "nonce2key/nonce2key.h"
|
|
||||||
#include "../common/iso15693tools.h"
|
|
||||||
#include "iso14443crc.h"
|
|
||||||
#include "../common/crc16.h"
|
|
||||||
#include "../common/crc64.h"
|
|
||||||
#include "../common/sha1.h"
|
|
||||||
#include "aes.h"
|
|
||||||
#include "cmdcrc.h"
|
|
||||||
/**
|
/**
|
||||||
* The following params expected:
|
* The following params expected:
|
||||||
* UsbCommand c
|
* UsbCommand c
|
||||||
|
@ -369,6 +355,16 @@ static int l_aes128encrypt_ecb(lua_State *L)
|
||||||
return 1;// return 1 to signal one return value
|
return 1;// return 1 to signal one return value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int l_crc8legic(lua_State *L)
|
||||||
|
{
|
||||||
|
size_t size;
|
||||||
|
const char *p_str = luaL_checklstring(L, 1, &size);
|
||||||
|
|
||||||
|
uint16_t retval = CRC8Legic( (uint8_t*) p_str, size);
|
||||||
|
lua_pushinteger(L, (int) retval);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static int l_crc16(lua_State *L)
|
static int l_crc16(lua_State *L)
|
||||||
{
|
{
|
||||||
size_t size;
|
size_t size;
|
||||||
|
@ -510,6 +506,7 @@ int set_pm3_libraries(lua_State *L)
|
||||||
{"aes128_decrypt_ecb", l_aes128decrypt_ecb},
|
{"aes128_decrypt_ecb", l_aes128decrypt_ecb},
|
||||||
{"aes128_encrypt", l_aes128encrypt_cbc},
|
{"aes128_encrypt", l_aes128encrypt_cbc},
|
||||||
{"aes128_encrypt_ecb", l_aes128encrypt_ecb},
|
{"aes128_encrypt_ecb", l_aes128encrypt_ecb},
|
||||||
|
{"crc8legic", l_crc8legic},
|
||||||
{"crc16", l_crc16},
|
{"crc16", l_crc16},
|
||||||
{"crc64", l_crc64},
|
{"crc64", l_crc64},
|
||||||
{"sha1", l_sha1},
|
{"sha1", l_sha1},
|
||||||
|
|
|
@ -11,6 +11,21 @@
|
||||||
#define SCRIPTING_H__
|
#define SCRIPTING_H__
|
||||||
|
|
||||||
#include <lua.h>
|
#include <lua.h>
|
||||||
|
#include <lualib.h>
|
||||||
|
#include <lauxlib.h>
|
||||||
|
#include "proxmark3.h"
|
||||||
|
#include "usb_cmd.h"
|
||||||
|
#include "cmdmain.h"
|
||||||
|
#include "util.h"
|
||||||
|
#include "nonce2key/nonce2key.h"
|
||||||
|
#include "../common/iso15693tools.h"
|
||||||
|
#include "iso14443crc.h"
|
||||||
|
#include "../common/crc.h"
|
||||||
|
#include "../common/crc16.h"
|
||||||
|
#include "../common/crc64.h"
|
||||||
|
#include "../common/sha1.h"
|
||||||
|
#include "aes.h"
|
||||||
|
#include "cmdcrc.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief set_libraries loads the core components of pm3 into the 'pm3'
|
* @brief set_libraries loads the core components of pm3 into the 'pm3'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue