aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe Ricard <christophe.ricard@gmail.com>2015-02-01 22:54:30 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2015-03-27 11:00:15 +0100
commitf5a7b72d2927ba06a582dea28ea30b75203c72a9 (patch)
tree9f3e5fa6ea81b3d48e3328e7bc693b81174fb309
parentc35155c0e1d953aa6f75fb8feb560c2971358b3c (diff)
downloadneard-f5a7b72d2927ba06a582dea28ea30b75203c72a9.tar.gz
se: Add test-channel test script
Adding test-channel test script to manipulate channels on a specific secure element.
-rwxr-xr-xse/test/test-channel64
1 files changed, 64 insertions, 0 deletions
diff --git a/se/test/test-channel b/se/test/test-channel
new file mode 100755
index 0000000..59d586b
--- /dev/null
+++ b/se/test/test-channel
@@ -0,0 +1,64 @@
+#!/usr/bin/python
+
+import sys
+import dbus
+
+bus = dbus.SystemBus()
+
+def extract_byte_array(byte_array):
+ return ' '.join("{:02x}".format(byte) for byte in byte_array)
+
+def usage():
+ print "Usage: %s <command>" % (sys.argv[0])
+ print ""
+ print " list"
+ print " send_apdu nfcX_<se_type>_seX channelX <apdu>"
+ sys.exit(1)
+
+if (len(sys.argv) < 2):
+ usage()
+
+if (sys.argv[1] == "list"):
+ if (len(sys.argv) != 3):
+ usage()
+ else:
+ path = "/org/neard/se/" + sys.argv[2]
+
+ seel = dbus.Interface(bus.get_object("org.neard.se", path),
+ "org.neard.se.SecureElement")
+ properties = seel.GetProperties()
+
+ for path in properties["Channels"]:
+ print "[ %s ]" % (path)
+
+ channel = dbus.Interface(bus.get_object("org.neard.se", path),
+ "org.neard.se.Channel")
+ properties = channel.GetProperties()
+
+ for key in properties.keys():
+ if key in ["Basic"]:
+ if properties[key] == dbus.Boolean(1):
+ val = "true"
+ else:
+ val = "false"
+ print " %s = %s" % (key, val)
+
+ if key in ["AID"]:
+ print " %s = %s" % (key, extract_byte_array(properties[key]))
+ sys.exit(0)
+
+if (sys.argv[1] == "send_apdu"):
+ if (len(sys.argv) != 5):
+ usage()
+ else:
+ path = "/org/neard/se/" + sys.argv[2] + "/" + sys.argv[3]
+
+ channel = dbus.Interface(bus.get_object("org.neard.se", path),
+ "org.neard.se.Channel")
+
+ response = channel.SendAPDU(sys.argv[4].decode("hex"))
+
+ print "--> %s" % extract_byte_array(response)
+ sys.exit(0)
+
+usage()