1 local cmds = require('commands')
5 This script is a work in progress, not yet functional. It is an attempt to use the raw-writing
6 capabilities already present within the devices
13 local rawdata = "6000F57b" --mf_auth
14 local TIMEOUT = 2000 -- Shouldn't take longer than 2 seconds
16 function show(usbpacket)
18 local response = Command.parse(usbpacket)
23 -- Want to do both connect and send raw, so we should AND the two commands
24 -- ISO14A_COMMAND.ISO14A_RAW(8) and ISO14A_CONNECT (1). However, we don't have a
25 -- bitlib yet, so we'll do it manually, 1 & 8 == 9
26 -- ISO14A_NO_DISCONNECT = 2 ==> 11
28 print(string.len(rawdata))
29 local command = Command:new{cmd = cmds.CMD_READER_ISO_14443a,
30 arg1 = 3, -- Connect (1) and don't disconnect (2)
31 arg2 = 0-- string.len(rawdata),
34 local mf_auth = Command:new{cmd = cmds.CMD_READER_ISO_14443a,
36 arg2 = string.len(rawdata),
38 local quit = Command:new{cmd = cmds.CMD_READER_ISO_14443a,
42 core.clearCommandBuffer()
45 local err = core.SendCommand(command:getBytes())
50 local cardselect = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT)
53 --local response = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT)
54 --print("Raw response:")
60 local err = core.SendCommand(mf_auth:getBytes())
65 local nonce = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT)
68 io.write("Write q to quit, hit any char to get a nonce ")