Change in osmo-gsm-tester[master]: 4G: Add milenage support

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

pespin gerrit-no-reply at lists.osmocom.org
Mon Jul 13 13:44:55 UTC 2020


pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19237 )


Change subject: 4G: Add milenage support
......................................................................

4G: Add milenage support

Change-Id: I4c1fb9bfec9927f2bfa29e6b27959323838f59e5
---
M src/osmo_gsm_tester/core/schema.py
M src/osmo_gsm_tester/obj/epc_amarisoft.py
M src/osmo_gsm_tester/obj/epc_srs.py
M src/osmo_gsm_tester/obj/ms.py
M src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl
M src/osmo_gsm_tester/templates/amarisoft_lteue.cfg.tmpl
M src/osmo_gsm_tester/templates/srsepc_user_db.csv.tmpl
M src/osmo_gsm_tester/templates/srsue.conf.tmpl
M sysmocom/resources.conf.prod
9 files changed, 30 insertions(+), 6 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/37/19237/1

diff --git a/src/osmo_gsm_tester/core/schema.py b/src/osmo_gsm_tester/core/schema.py
index 9a346cd..72c2738 100644
--- a/src/osmo_gsm_tester/core/schema.py
+++ b/src/osmo_gsm_tester/core/schema.py
@@ -28,6 +28,7 @@
 HWADDR_RE = re.compile('([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}')
 IMSI_RE = re.compile('[0-9]{6,15}')
 KI_RE = re.compile('[0-9a-fA-F]{32}')
+OPC_RE = re.compile('[0-9a-fA-F]{32}')
 MSISDN_RE = re.compile('[0-9]{1,15}')
 
 def match_re(name, regex, val):
@@ -60,6 +61,9 @@
 def ki(val):
     return match_re('KI', KI_RE, val)
 
+def opc(val):
+    return match_re('OPC', OPC_RE, val)
+
 def msisdn(val):
     return match_re('MSISDN', MSISDN_RE, val)
 
@@ -157,6 +161,7 @@
 HWADDR = 'hwaddr'
 IMSI = 'imsi'
 KI = 'ki'
+OPC = 'opc'
 MSISDN = 'msisdn'
 AUTH_ALGO = 'auth_algo'
 TIMES='times'
@@ -180,6 +185,7 @@
         HWADDR: hwaddr,
         IMSI: imsi,
         KI: ki,
+        OPC: opc,
         MSISDN: msisdn,
         AUTH_ALGO: auth_algo,
         TIMES: times,
diff --git a/src/osmo_gsm_tester/obj/epc_amarisoft.py b/src/osmo_gsm_tester/obj/epc_amarisoft.py
index 40216f7..3e91b5c 100644
--- a/src/osmo_gsm_tester/obj/epc_amarisoft.py
+++ b/src/osmo_gsm_tester/obj/epc_amarisoft.py
@@ -177,8 +177,11 @@
         if algo_str != util.OSMO_AUTH_ALGO_NONE and not modem.ki():
             raise log.Error("Auth algo %r selected but no KI specified" % algo_str)
 
+        if algo_str == 'milenage' and not modem.opc():
+            raise log.Error("Auth algo milenage selected but no OPC specified")
+
         subscriber_id = len(self.subscriber_list) # list index
-        self.subscriber_list.append({'id': subscriber_id, 'imsi': modem.imsi(), 'msisdn': msisdn, 'auth_algo': algo_str, 'ki': modem.ki(), 'opc': None, 'apn_ipaddr': modem.apn_ipaddr()})
+        self.subscriber_list.append({'id': subscriber_id, 'imsi': modem.imsi(), 'msisdn': msisdn, 'auth_algo': algo_str, 'ki': modem.ki(), 'opc': modem.opc(), 'apn_ipaddr': modem.apn_ipaddr()})
 
         self.log('Add subscriber', msisdn=msisdn, imsi=modem.imsi(), subscriber_id=subscriber_id,
                  algo_str=algo_str)
diff --git a/src/osmo_gsm_tester/obj/epc_srs.py b/src/osmo_gsm_tester/obj/epc_srs.py
index 9c4b004..ee0ad33 100644
--- a/src/osmo_gsm_tester/obj/epc_srs.py
+++ b/src/osmo_gsm_tester/obj/epc_srs.py
@@ -190,8 +190,14 @@
         if algo_str != util.OSMO_AUTH_ALGO_NONE and not modem.ki():
             raise log.Error("Auth algo %r selected but no KI specified" % algo_str)
 
+        if algo_str == 'milenage':
+            if not modem.opc():
+                raise log.Error("Auth algo milenage selected but no OPC specified")
+            # srsepc's used_db uses token 'mil' for milenage:
+            algo_str = 'mil'
+
         subscriber_id = len(self.subscriber_list) # list index
-        self.subscriber_list.append({'id': subscriber_id, 'imsi': modem.imsi(), 'msisdn': msisdn, 'auth_algo': algo_str, 'ki': modem.ki(), 'opc': None, 'apn_ipaddr': modem.apn_ipaddr()})
+        self.subscriber_list.append({'id': subscriber_id, 'imsi': modem.imsi(), 'msisdn': msisdn, 'auth_algo': algo_str, 'ki': modem.ki(), 'opc': modem.opc(), 'apn_ipaddr': modem.apn_ipaddr()})
 
         self.log('Add subscriber', msisdn=msisdn, imsi=modem.imsi(), subscriber_id=subscriber_id,
                  algo_str=algo_str)
diff --git a/src/osmo_gsm_tester/obj/ms.py b/src/osmo_gsm_tester/obj/ms.py
index b39d3ee..3e75719 100644
--- a/src/osmo_gsm_tester/obj/ms.py
+++ b/src/osmo_gsm_tester/obj/ms.py
@@ -28,6 +28,7 @@
         'path': schema.STR,
         'imsi': schema.IMSI,
         'ki': schema.KI,
+        'opc': schema.OPC,
         'auth_algo': schema.AUTH_ALGO,
         'apn_ipaddr': schema.IPV4,
         'ciphers[]': schema.CIPHER,
@@ -100,6 +101,9 @@
     def ki(self):
         return self._conf.get('ki')
 
+    def opc(self):
+        return self._conf.get('opc', None)
+
     def apn_ipaddr(self):
         return self._conf.get('apn_ipaddr', 'dynamic')
 
diff --git a/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl
index 5fcc74a..9564e39 100644
--- a/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl
@@ -154,10 +154,11 @@
       amf: 0x9001, /* Authentication Management Field */
       sqn: "000000000000", /* Sequence Number */
       K: "${sub.ki}", /* Anritsu Test USIM */
+      opc: "${sub.opc}",
       /* if true, allow several UEs to have the same IMSI (useful
          with test SIM cards). They are distinguished with their
          IMEI. default = false. */
-      multi_sim: true,
+      multi_sim: false,
     },
 %endfor
     /* Add new entries for each IMSI/K */
diff --git a/src/osmo_gsm_tester/templates/amarisoft_lteue.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_lteue.cfg.tmpl
index 720c0ba..263c191 100644
--- a/src/osmo_gsm_tester/templates/amarisoft_lteue.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/amarisoft_lteue.cfg.tmpl
@@ -48,8 +48,10 @@
       ue_category: 4,
 
       /* USIM data */
+      sim_algo: "${sub.auth_algo}", /* USIM authentication algorithm: xor, milenage or tuak */
       imsi: "${ue.imsi}",
       K: "${ue.ki}",
+      opc: "${ue.opc}",
 
       /* If enabled, will try to use external SIM card using libpcsclite */
       //external_sim: true,
diff --git a/src/osmo_gsm_tester/templates/srsepc_user_db.csv.tmpl b/src/osmo_gsm_tester/templates/srsepc_user_db.csv.tmpl
index 5b970bf..250b261 100644
--- a/src/osmo_gsm_tester/templates/srsepc_user_db.csv.tmpl
+++ b/src/osmo_gsm_tester/templates/srsepc_user_db.csv.tmpl
@@ -20,5 +20,5 @@
 #ue2,mil,001010123456780,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,8000,000000001234,7,dynamic
 #ue1,xor,001010123456789,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,9001,000000001255,7,dynamic
 %for sub in epc.hss.subscribers:
-ogt${sub.id},${sub.auth_algo},${sub.imsi},${sub.ki},opc,63bfa50ee6523365ff14c1f45f88737d,8000,000000001234,${sub.qci},${sub.apn_ipaddr}
+ogt${sub.id},${sub.auth_algo},${sub.imsi},${sub.ki},opc,${sub.opc},8000,000000001234,${sub.qci},${sub.apn_ipaddr}
 %endfor
diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
index a75be23..6d97589 100644
--- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl
+++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
@@ -126,7 +126,7 @@
 [usim]
 mode = soft
 algo = ${ue.auth_algo}
-#opc  = 63BFA50EE6523365FF14C1F45F88737D
+opc  = ${ue.opc}
 k    = ${ue.ki}
 imsi = ${ue.imsi}
 imei = 353490069873319
diff --git a/sysmocom/resources.conf.prod b/sysmocom/resources.conf.prod
index e6429a0..dc60734 100644
--- a/sysmocom/resources.conf.prod
+++ b/sysmocom/resources.conf.prod
@@ -260,7 +260,8 @@
   rf_dev_args: auto
   imsi: '001010123456789'
   ki: '00112233445566778899aabbccddeeff'
-  auth_algo: 'xor'
+  opc: '63BFA50EE6523365FF14C1F45F88737D'
+  auth_algo: 'milenage'
   features: ['4g']
   run_node:
     run_type: ssh
@@ -274,6 +275,7 @@
   rf_dev_args: driver=lime,serial=00090706024F0A22,rxant=LNAW,txant=BAND1
   imsi: '001010123456789'
   ki: '00112233445566778899aabbccddeeff'
+  opc: '63BFA50EE6523365FF14C1F45F88737D'
   auth_algo: 'xor'
   features: ['4g']
   run_node:

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19237
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Change-Id: I4c1fb9bfec9927f2bfa29e6b27959323838f59e5
Gerrit-Change-Number: 19237
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200713/d7fe80b9/attachment.htm>


More information about the gerrit-log mailing list