Change in osmo-sim-auth[master]: USIM.py: convert to Python3 using 2to3

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/.

Ludovic Rousseau gerrit-no-reply at lists.osmocom.org
Sun Oct 25 13:36:53 UTC 2020


Ludovic Rousseau has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sim-auth/+/20901 )


Change subject: USIM.py: convert to Python3 using 2to3
......................................................................

USIM.py: convert to Python3 using 2to3

Change-Id: I334e14ed3035a110101708618fd154850bb70ca2
---
M card/USIM.py
1 file changed, 40 insertions(+), 40 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-sim-auth refs/changes/01/20901/1

diff --git a/card/USIM.py b/card/USIM.py
index a5adc5b..fa20d1a 100644
--- a/card/USIM.py
+++ b/card/USIM.py
@@ -53,20 +53,20 @@
         ISO7816.__init__(self, CLA=0x00)
         self.AID = []
         if self.dbg:
-            print '[DBG] type definition: %s' % type(self)
-            print '[DBG] CLA definition: %s' % hex(self.CLA)
+            print('[DBG] type definition: %s' % type(self))
+            print('[DBG] CLA definition: %s' % hex(self.CLA))
         
         # USIM selection from AID
-        print '[+] UICC AID found:'
+        print('[+] UICC AID found:')
         self.get_AID()
         for aid in self.AID:
             if  tuple(aid[0:5]) == (0xA0, 0x00, 0x00, 0x00, 0x87) \
             and tuple(aid[5:7]) == (0x10, 0x02) :
                 usim = self.select( Data=aid, typ='aid')
                 if usim is None: 
-                    print '[+] USIM AID selection failed'
+                    print('[+] USIM AID selection failed')
                 else: 
-                    print '[+] USIM AID selection succeeded\n'
+                    print('[+] USIM AID selection succeeded\n')
         
     def get_imsi(self):
         '''
@@ -80,12 +80,12 @@
         if imsi is None: 
             return None
         # and parse the received data into the IMSI structure
-        if 'Data' in imsi.keys() and len(imsi['Data']) == 9:
+        if 'Data' in list(imsi.keys()) and len(imsi['Data']) == 9:
             return decode_BCD(imsi['Data'])[3:]
         
         # if issue with the content of the DF_IMSI file
         if self.dbg: 
-            print '[DBG] %s' % self.coms()
+            print('[DBG] %s' % self.coms())
         return None
     
     def get_CS_keys(self):
@@ -103,7 +103,7 @@
                 KSI, CK, IK = ( EF_KEYS['Data'][0:1],
                                 EF_KEYS['Data'][1:17],
                                 EF_KEYS['Data'][17:33])
-                print '[+] Successful CS keys selection: Get [KSI, CK, IK]'
+                print('[+] Successful CS keys selection: Get [KSI, CK, IK]')
                 return [KSI, CK, IK]
             else: 
                 return EF_KEYS
@@ -124,7 +124,7 @@
                 KSI, CK, IK = ( EF_KEYSPS['Data'][0:1], 
                                 EF_KEYSPS['Data'][1:17], 
                                 EF_KEYSPS['Data'][17:33] )
-                print '[+] Successful PS keys selection: Get [KSI, CK, IK]'
+                print('[+] Successful PS keys selection: Get [KSI, CK, IK]')
                 return [KSI, CK, IK]
             else: 
                 return EF_KEYSPS
@@ -145,8 +145,8 @@
         if self.coms()[2] == (0x90, 0x00):
             if len(EF_GBABP['Data']) > 2:
                 #RAND, B_TID, Lifetime = LV_parser( EF_GBABP['Data'] )
-                print '[+] Successful GBA_BP selection: Get list of ' \
-                      '[RAND, B-TID, KeyLifetime]'
+                print('[+] Successful GBA_BP selection: Get list of ' \
+                      '[RAND, B-TID, KeyLifetime]')
                 #return (RAND, B_TID, Lifetime)
                 return LV_parser( EF_GBABP['Data'] )
             else: 
@@ -167,22 +167,22 @@
         GBA_BP = self.get_GBA_BP()
         for i in GBA_BP:
             if i == RAND:
-                print '[+] RAND found in GBA_BP'
+                print('[+] RAND found in GBA_BP')
                 # update transparent file with B_TID and key lifetime
                 self.coms.push( self.UPDATE_BINARY( P2=len(RAND)+1,
                                 Data=[len(B_TID)] + B_TID + \
                                 [len(key_lifetime)] + key_lifetime ))
                 if self.dbg > 1: 
-                    print '[DBG] %s' % self.coms()
+                    print('[DBG] %s' % self.coms())
                 if self.coms()[2] == 0x90 and self.dbg:
-                    print '[+] Successful GBA_BP update with B-TID ' \
-                          'and key lifetime'
+                    print('[+] Successful GBA_BP update with B-TID ' \
+                          'and key lifetime')
                 if self.dbg > 2: 
-                    print '[DBG] new value of EF_GBA_BP:\n%s' \
-                          % self.get_GBA_BP()
+                    print('[DBG] new value of EF_GBA_BP:\n%s' \
+                          % self.get_GBA_BP())
             else:
                 if self.dbg: 
-                    print '[+] RAND not found in GBA_BP'
+                    print('[+] RAND not found in GBA_BP')
                 return GBA_BP
     
     def get_GBA_NL(self):
@@ -215,8 +215,8 @@
                             B_TID = tlv[2]
                     values.append( [NAF_ID, B_TID] )
                 
-                print '[+] Successful GBA_NL selection: ' \
-                      'Get list of [NAF_ID, B-TID]'
+                print('[+] Successful GBA_NL selection: ' \
+                      'Get list of [NAF_ID, B-TID]')
                 #return (NAF_ID, B_TID)
                 return values
             else: 
@@ -242,7 +242,7 @@
         # prepare input data for authentication
         if ctx in ('3G', 'VGCS', 'GBA', 'MBMS') and len(RAND) != 16 \
         and len(AUTN) != 16: 
-            print '[ERR] missing parameters or wrong length'
+            print('[ERR] missing parameters or wrong length')
             return None
         
         inp = []
@@ -250,10 +250,10 @@
             P2 = 0x81
         elif ctx == 'VGCS':
             P2 = 0x82
-            print '[+] Not implemented. Exit.'
+            print('[+] Not implemented. Exit.')
             return None
         elif ctx == 'MBMS':
-            print '[+] Not implemented. Exit.'
+            print('[+] Not implemented. Exit.')
             return None
         elif ctx == 'GBA': 
             P2 = 0x84
@@ -264,7 +264,7 @@
         # to avoid desynchronizing our USIM counter
             P2 = 0x80
             if len(RAND) != 16: 
-                print '[ERR] RAND has wrong length (%d, should be 16)' % len(RAND)
+                print('[ERR] RAND has wrong length (%d, should be 16)' % len(RAND))
                 return None
             # override input value for 2G authent
             inp = [len(RAND)] + RAND
@@ -276,7 +276,7 @@
                 val = self.coms()[3]
                 if P2 == 0x80:
                     if self.dbg: 
-                        print '[+] Successful 2G authentication. Get [RES, Kc]'
+                        print('[+] Successful 2G authentication. Get [RES, Kc]')
                     values = LV_parser(val)
                     # returned values are (RES, Kc)
                     return values
@@ -284,25 +284,25 @@
                 if val[0] == 0xDB:
                     if self.dbg:
                         if P2 == 0x81:
-                            print '[+] Successful 3G authentication. ' \
-                                  'Get [RES, CK, IK(, Kc)]'
+                            print('[+] Successful 3G authentication. ' \
+                                  'Get [RES, CK, IK(, Kc)]')
                         elif P2 == 0x84:
-                            print '[+] Successful GBA authentication. Get [RES]'
+                            print('[+] Successful GBA authentication. Get [RES]')
                         else:
-                            print '[+] response: %s' % hex(val)
+                            print('[+] response: %s' % hex(val))
                     values = LV_parser(val[1:])
                     # returned values can be (RES, CK, IK) or (RES, CK, IK, Kc)
                     return values
                 elif val[0] == 0xDC:
                     if self.dbg: 
-                        print '[+] Synchronization failure. Get [AUTS]'
+                        print('[+] Synchronization failure. Get [AUTS]')
                     values = LV_parser(val[1:])
                     return values
                 elif self.dbg:
-                    print '[+] response: %s' % hex(val)
+                    print('[+] response: %s' % hex(val))
         #else:
         if self.dbg: 
-            print '[+] authentication error: %s' % self.coms()
+            print('[+] authentication error: %s' % self.coms())
         return None
     
     def GBA_derivation(self, NAF_ID=[], IMPI=[]):
@@ -337,11 +337,11 @@
                 val = self.coms()[3]
                 if val[0] == 0xDB: # not adapted to 2G context with Kc, RES
                     if self.dbg: 
-                        print '[+] Successful GBA derivation. Get [Ks_EXT_NAF]'
+                        print('[+] Successful GBA derivation. Get [Ks_EXT_NAF]')
                     values = LV_parser(val[1:])
                     return values
         if self.dbg: 
-            print '[DBG] authentication failure: %s' % self.coms()
+            print('[DBG] authentication failure: %s' % self.coms())
         return None
     
     def bf_FS_from_init( self, filename='bf_USIM', file_dict=USIM_app_FS, 
@@ -368,11 +368,11 @@
                 # if file characteristics is readable
                 if fil is not None:
                     if self.dbg:
-                        print '[+] USIM file found at address %s %s' % (i, j)
+                        print('[+] USIM file found at address %s %s' % (i, j))
                     # warning when working with DF recursivity
-                    if (i, j) in file_dict.keys():
+                    if (i, j) in list(file_dict.keys()):
                         fil['name'] = file_dict[(i, j)][0]
-                    k = fil.keys()
+                    k = list(fil.keys())
                     k.sort()
                     fd.write('\n')
                     for key in k:
@@ -380,16 +380,16 @@
                 # if file exists but special conditions are returned
                 if self.coms()[2] not in ((0x6A, 0x82), (0x90, 0x00)):
                     if self.dbg:
-                        print '[+] special condition %s when selecting' \
+                        print('[+] special condition %s when selecting' \
                         ' / reading USIM file at address %s %s' \
-                        % ( self.coms()[2], i, j )
+                        % ( self.coms()[2], i, j ))
                     fd.write('\n')
                     fd.write('file exists at address: %s %s\n' \
                              % (hex(i)[2:], hex(j)[2:]))
                     fd.write('%s\n' % self.coms()[1])
                     
                 if self.dbg and (i % 0x10 == 0 and j % 0x40 == 0): 
-                    print '[-] going over address %s %s' % (i, j)
+                    print('[-] going over address %s %s' % (i, j))
         
         fd.write('\n')
         fd.close()

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-sim-auth/+/20901
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-sim-auth
Gerrit-Branch: master
Gerrit-Change-Id: I334e14ed3035a110101708618fd154850bb70ca2
Gerrit-Change-Number: 20901
Gerrit-PatchSet: 1
Gerrit-Owner: Ludovic Rousseau <ludovic.rousseau+osmocom at free.fr>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201025/451c30f0/attachment.htm>


More information about the gerrit-log mailing list