diff --git a/client/scripts/writeraw.lua b/client/scripts/writeraw.lua index 25250864..c53b6396 100644 --- a/client/scripts/writeraw.lua +++ b/client/scripts/writeraw.lua @@ -21,18 +21,27 @@ function show(usbpacket) end -- Want to do both connect and send raw, so we should AND the two commands --- ISO14A_COMMAND.ISO14A_RAW and ISO14A_CONNECT. However, we don't have a +-- ISO14A_COMMAND.ISO14A_RAW(8) and ISO14A_CONNECT (1). However, we don't have a -- bitlib yet, so we'll do it manually, 1 & 8 == 9 --- ISO14A_NO_DISCONNECT = 2 +-- ISO14A_NO_DISCONNECT = 2 ==> 11 print(string.len(rawdata)) local command = Command:new{cmd = cmds.CMD_READER_ISO_14443a, - arg1 = 9, + arg1 = 3, -- Connect (1) and don't disconnect (2) + arg2 = 0-- string.len(rawdata), + --data = rawdata + } +local mf_auth = Command:new{cmd = cmds.CMD_READER_ISO_14443a, + arg1 = 6, -- Send raw arg2 = string.len(rawdata), data = rawdata} +local quit = Command:new{cmd = cmds.CMD_READER_ISO_14443a, + arg1 = 0, -- Nothing + } + core.clearCommandBuffer() -print("Sending") -print(command) +--print("Sending") +--print(command) local err = core.SendCommand(command:getBytes()) if err then print(err) @@ -41,6 +50,23 @@ end local cardselect = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT) print("Card select:") show(cardselect) -local response = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT) -print("Raw response:") -show(response) +--local response = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT) +--print("Raw response:") +--show(response) + +local answer = "" +while answer ~='q' do + + local err = core.SendCommand(mf_auth:getBytes()) + if err then + print(err) + return nil, err + end + local nonce = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT) + print("Nonce:") + show(nonce) + io.write("Write q to quit, hit any char to get a nonce ") + io.flush() + answer=io.read(1) + +end--]]