X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/450d2e3a96aeff74dfd7bf42f6ab3870f8235c50..050aa18b13084b0d57ffcee352bf7a30b828b8f5:/client/scripts/14araw.lua?ds=sidebyside

diff --git a/client/scripts/14araw.lua b/client/scripts/14araw.lua
index 0ce98656..e2530929 100644
--- a/client/scripts/14araw.lua
+++ b/client/scripts/14araw.lua
@@ -17,6 +17,8 @@ Arguments:
 	-p 				stay connected - dont inactivate the field
 	-x <payload> 	Data to send (NO SPACES!)
 	-d 				Debug flag
+	-t				Topaz mode
+	-3				Skip ISO14443-4 select
 
 Examples : 
 
@@ -70,6 +72,7 @@ function help()
 	print(example)
 end
 
+
 --- 
 -- The main entry point
 function main(args)
@@ -83,15 +86,19 @@ function main(args)
 	local stayconnected = false
 	local payload = nil
 	local doconnect = true
+	local topaz_mode = false
+	local no_rats = false
 
 	-- Read the parameters
-	for o, a in getopt.getopt(args, 'corcpx:') do
+	for o, a in getopt.getopt(args, 'orcpx:dt3') do
 		if o == "o" then doconnect = false end		
 		if o == "r" then ignore_response = true end
 		if o == "c" then appendcrc = true end
 		if o == "p" then stayconnected = true end
 		if o == "x" then payload = a end
 		if o == "d" then DEBUG = true end
+		if o == "t" then topaz_mode = true end
+		if o == "3" then no_rats = true end
 	end
 
 	-- First of all, connect
@@ -99,7 +106,7 @@ function main(args)
 		dbg("doconnect")
 		-- We reuse the connect functionality from a 
 		-- common library
-		info, err = lib14a.read1443a(true)
+		info, err = lib14a.read14443a(true, no_rats)
 
 		if err then return oops(err) end
 		print(("Connected to card, uid = %s"):format(info.uid))
@@ -107,7 +114,7 @@ function main(args)
 
 	-- The actual raw payload, if any
 	if payload then
-		res,err = sendRaw(payload,{ignore_response = ignore_response})
+		res,err = sendRaw(payload,{ignore_response = ignore_response, topaz_mode = topaz_mode})
 		if err then return oops(err) end
 	
 		if not ignoreresponse then 
@@ -137,11 +144,11 @@ function showdata(usbpacket)
 end
 
 
-
 function sendRaw(rawdata, options)
 	print(">> ", rawdata)
 	
 	local flags = lib14a.ISO14A_COMMAND.ISO14A_NO_DISCONNECT + lib14a.ISO14A_COMMAND.ISO14A_RAW
+	if options.topaz_mode == true then flags = flags + lib14a.ISO14A_COMMAND.ISO14A_TOPAZMODE end
 
 	local command = Command:new{cmd = cmds.CMD_READER_ISO_14443a, 
 									arg1 = flags, -- Send raw