From 5556e2ac571db977b6a8d58d65557008c2f70ca6 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Wed, 11 Oct 2017 16:22:18 -0700 Subject: [PATCH] test: added tests for GSM/UMTS auth algorithms --- test/run-isim-umts-auth | 38 ++++++++++++++++++++++++++++++++++++++ test/run-usim-gsm-auth | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100755 test/run-isim-umts-auth create mode 100755 test/run-usim-gsm-auth diff --git a/test/run-isim-umts-auth b/test/run-isim-umts-auth new file mode 100755 index 00000000..a5214259 --- /dev/null +++ b/test/run-isim-umts-auth @@ -0,0 +1,38 @@ +#!/usr/bin/python3 + +import dbus +import sys + +bus = dbus.SystemBus() + +if len(sys.argv) == 4: + path = sys.argv[1] + rand = sys.argv[2] + autn = sys.argv[3] + + sim_auth = dbus.Interface(bus.get_object('org.ofono', path), + 'org.ofono.SimAuthentication') + apps = sim_auth.GetApplications() + for i in apps: + if apps[i]['Type'] == 'Ims': + ims_path = i + + if not ims_path: + print("No Ims application found") + quit() + + isim_auth = dbus.Interface(bus.get_object('org.ofono', ims_path), + 'org.ofono.ISimApplication') + ret = isim_auth.ImsAuthenticate(bytearray.fromhex(rand), + bytearray.fromhex(autn)) + + if 'auts' in ret: + print('Sync Failure') + print('AUTS: ' + ''.join('%02x' % x for x in ret['AUTS'])) + else: + print('Success') + print('RES: ' + ''.join('%02x' % x for x in ret['RES'])) + print('CK: ' + ''.join('%02x' % x for x in ret['CK'])) + print('IK: ' + ''.join('%02x' % x for x in ret['IK'])) +else: + print("./run-isim-umts-auth ") diff --git a/test/run-usim-gsm-auth b/test/run-usim-gsm-auth new file mode 100755 index 00000000..b97a5579 --- /dev/null +++ b/test/run-usim-gsm-auth @@ -0,0 +1,36 @@ +#!/usr/bin/python3 + +import dbus +import sys + +bus = dbus.SystemBus() + +if len(sys.argv) < 6 and len(sys.argv) > 2: + path = sys.argv[1] + + rands = [] + for i in sys.argv[2:]: + rands.append(bytearray.fromhex(i)) + + sim_auth = dbus.Interface(bus.get_object('org.ofono', path), + 'org.ofono.SimAuthentication') + apps = sim_auth.GetApplications() + + for i in apps: + if apps[i]['Type'] == 'Umts': + umts_path = i + + if not umts_path: + print("No Umts application found") + quit() + + umts = dbus.Interface(bus.get_object('org.ofono', umts_path), + 'org.ofono.USimApplication') + av = umts.GsmAuthenticate(rands) + + for i in av: + print('SRES: ' + ''.join('%02x' % x for x in i['SRES'])) + print('KC: ' + ''.join('%02x' % x for x in i['Kc'])) + +else: + print("./run-usim-gsm-auth ...[up to 3]")