diff options
author | Christophe Ricard <christophe.ricard@gmail.com> | 2015-02-01 22:54:30 +0100 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2015-03-27 11:00:15 +0100 |
commit | f5a7b72d2927ba06a582dea28ea30b75203c72a9 (patch) | |
tree | 9f3e5fa6ea81b3d48e3328e7bc693b81174fb309 | |
parent | c35155c0e1d953aa6f75fb8feb560c2971358b3c (diff) | |
download | neard-f5a7b72d2927ba06a582dea28ea30b75203c72a9.tar.gz |
se: Add test-channel test script
Adding test-channel test script to manipulate channels on a
specific secure element.
-rwxr-xr-x | se/test/test-channel | 64 |
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() |