Compare commits
3 Commits
4f605a6d56
...
65b527ba08
Author | SHA1 | Date |
---|---|---|
Philipp Maier | 65b527ba08 | |
Philipp Maier | fb9d5f7591 | |
Philipp Maier | a97d2a2858 |
22
common.py
22
common.py
|
@ -58,9 +58,15 @@ class Common():
|
|||
show_iccid = False
|
||||
show_aid = False
|
||||
|
||||
def __init__(self, argv, getopts, getopts_long):
|
||||
# This flag specifies whether the commandline options should offer writing auth parameters (algorithm to use
|
||||
# for authentication). The commandline options are not implemented separately for each card since the method
|
||||
# calls are nearly the same for all card generations.
|
||||
write_auth_4g5g = False
|
||||
|
||||
def __init__(self, argv, getopts, getopts_long, write_auth_4g5g = False):
|
||||
|
||||
self._banner()
|
||||
self.write_auth_4g5g = write_auth_4g5g
|
||||
|
||||
# Analyze commandline options
|
||||
try:
|
||||
|
@ -98,7 +104,7 @@ class Common():
|
|||
elif opt in ("-t", "--auth"):
|
||||
self.show_auth = True
|
||||
elif opt in ("-T", "--set-auth"):
|
||||
self.write_auth = arg.split(':',1)
|
||||
self.write_auth = arg.split(':', 2)
|
||||
elif opt in ("-o", "--opc"):
|
||||
self.show_opc = True
|
||||
elif opt in ("-O", "--set-op"):
|
||||
|
@ -143,8 +149,11 @@ class Common():
|
|||
print(" -L, --set-milenage HEXSTRING ... Set milenage parameters")
|
||||
print(" -k, --key ...................... Show auth key value")
|
||||
print(" -K, --set-key .................. Set auth key value")
|
||||
print(" -t, --auth ..................... Show Authentication algorithms")
|
||||
print(" -T, --set-auth 2G:3G ........... Set 2G/3G Auth algo (e.g. COMP128v1:COMP128v1)")
|
||||
print(" -t, --auth ..................... Show authentication algorithms")
|
||||
if self.write_auth_4g5g:
|
||||
print(" -T, --set-auth 2g:3g[:4g5g] .... Set 2G/3G auth algo (e.g. COMP128v1:COMP128v1)")
|
||||
else:
|
||||
print(" -T, --set-auth 2g:3g ........... Set 2G/3G auth algo (e.g. COMP128v1:COMP128v1)")
|
||||
print(" -o, --opc ...................... Show OP/c configuration")
|
||||
print(" -O, --set-op HEXSTRING ......... Set OP value")
|
||||
print(" -C, --set-opc HEXSTRING ........ Set OPc value")
|
||||
|
@ -192,7 +201,10 @@ class Common():
|
|||
self.sim.show_auth_params()
|
||||
|
||||
if self.write_auth:
|
||||
self.sim.write_auth_params(self.write_auth[0], self.write_auth[1])
|
||||
if self.write_auth_4g5g and len(self.write_auth) > 2:
|
||||
self.sim.write_auth_params(self.write_auth[0], self.write_auth[1], self.write_auth[2])
|
||||
else:
|
||||
self.sim.write_auth_params(self.write_auth[0], self.write_auth[1])
|
||||
|
||||
if self.show_opc:
|
||||
self.sim.show_opc_params()
|
||||
|
|
|
@ -71,7 +71,7 @@ class Application(Common):
|
|||
|
||||
def main(argv):
|
||||
|
||||
Application(argv, "d", ["dump"])
|
||||
Application(argv, "d", ["dump"], True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
@ -71,7 +71,7 @@ class Application(Common):
|
|||
|
||||
def main(argv):
|
||||
|
||||
Application(argv, "d", ["dump"])
|
||||
Application(argv, "d", ["dump"], True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
@ -91,7 +91,7 @@ sysmo_isimsja5_algorithms = sysmo_isimsja2_algorithms + [
|
|||
(SYSMO_ISIMSJA5_ALGO_TUAK, 'TUAK'),
|
||||
]
|
||||
|
||||
class SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY:
|
||||
class SYSMO_ISIMSJAX_FILE_EF_XSIM_AUTH_KEY:
|
||||
"""
|
||||
Superclass model that generates that handles the header byte of
|
||||
SYSMO_ISIMSJA2_EF_USIM_AUTH_KEY, SYSMO_ISIMSJA2_EF_USIM_AUTH_KEY_2G
|
||||
|
@ -139,7 +139,7 @@ class SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY:
|
|||
return out
|
||||
|
||||
|
||||
class SYSMO_ISIMSJA2_FILE_EF_SIM_AUTH_KEY(SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY):
|
||||
class SYSMO_ISIMSJAX_FILE_EF_SIM_AUTH_KEY(SYSMO_ISIMSJAX_FILE_EF_XSIM_AUTH_KEY):
|
||||
|
||||
key = [0xAA] * 16
|
||||
opc = [0xBB] * 16
|
||||
|
@ -180,7 +180,7 @@ class SYSMO_ISIMSJA2_FILE_EF_SIM_AUTH_KEY(SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY):
|
|||
return out
|
||||
|
||||
|
||||
class SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY):
|
||||
class SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(SYSMO_ISIMSJAX_FILE_EF_XSIM_AUTH_KEY):
|
||||
|
||||
full_res = True # Return full 8-byte RES or first 4 bytes only
|
||||
ext_res = False # Return 16 byte RES (ignores full_res, only valid with 3G XOR)
|
||||
|
@ -192,7 +192,7 @@ class SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY)
|
|||
if content == None:
|
||||
return
|
||||
|
||||
SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY.__init__(self, content)
|
||||
SYSMO_ISIMSJAX_FILE_EF_XSIM_AUTH_KEY.__init__(self, content)
|
||||
header = content[0]
|
||||
|
||||
self.full_res = bool((header >> 6) & 1)
|
||||
|
@ -206,7 +206,7 @@ class SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY)
|
|||
dump = ""
|
||||
pfx = " "
|
||||
|
||||
dump += SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY.__str__(self)
|
||||
dump += SYSMO_ISIMSJAX_FILE_EF_XSIM_AUTH_KEY.__str__(self)
|
||||
if self.full_res == True and self.ext_res == False:
|
||||
dump += pfx + "3G: Return full 8-byte RES\n"
|
||||
elif self.full_res == False and self.ext_res == False:
|
||||
|
@ -235,7 +235,7 @@ class SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY)
|
|||
|
||||
|
||||
def encode(self) -> list:
|
||||
out = SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY.encode(self)
|
||||
out = SYSMO_ISIMSJAX_FILE_EF_XSIM_AUTH_KEY.encode(self)
|
||||
if self.full_res == True:
|
||||
out[0] |= 1 << 6
|
||||
if self.ext_res == True:
|
||||
|
@ -250,11 +250,11 @@ class SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(SYSMO_ISIMSJA2_FILE_EF_XSIM_AUTH_KEY)
|
|||
|
||||
# EF_USIM_AUTH_KEY_2G and EF_USIM_AUTH_KEY_GBA have the same layout as
|
||||
# EF_USIM_AUTH_KEY, so there is nothing to specialize other than the class name
|
||||
class SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY_2G(SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY):
|
||||
class SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY_2G(SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY):
|
||||
pass
|
||||
|
||||
|
||||
class SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY_GBA(SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY):
|
||||
class SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY_GBA(SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY):
|
||||
pass
|
||||
|
||||
|
||||
|
@ -310,7 +310,7 @@ class SYSMO_ISIMSJA2_FILE_EF_MILENAGE_CFG:
|
|||
return out
|
||||
|
||||
|
||||
class SYSMO_ISIMSJA2_FILE_EF_USIM_SQN:
|
||||
class SYSMO_ISIMSJAX_FILE_EF_USIM_SQN:
|
||||
|
||||
# Flag1:
|
||||
ind_size_bits = 5 # speficy file length by 2^ind_len
|
||||
|
@ -485,8 +485,10 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
if card_detected != True:
|
||||
sys.exit(1)
|
||||
|
||||
# Show current milenage parameters
|
||||
def show_milenage_params(self):
|
||||
"""
|
||||
Show current milenage parameters
|
||||
"""
|
||||
print("Reading Milenage parameters...")
|
||||
self._init()
|
||||
|
||||
|
@ -500,8 +502,10 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
print(str(ef))
|
||||
print("")
|
||||
|
||||
# Write new milenage parameters
|
||||
def write_milenage_params(self, params):
|
||||
"""
|
||||
Write new milenage parameters
|
||||
"""
|
||||
print("Programming Milenage parameters...")
|
||||
|
||||
if (len(params) < 85):
|
||||
|
@ -568,27 +572,27 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
self.__select_xsim_auth_key(isim = False, _2G = True)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
print(" * ADF_USIM/EF_USIM_AUTH_KEY_2G:")
|
||||
print(SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY_2G(res.apdu))
|
||||
print(SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY_2G(res.apdu))
|
||||
|
||||
if self.sim.has_isim:
|
||||
# ADF_ISIM/EF_ISIM_AUTH_KEY_2G:
|
||||
self.__select_xsim_auth_key(isim = True, _2G = True)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
print(" * ADF_ISIM/EF_ISIM_AUTH_KEY_2G:")
|
||||
print(SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY_2G(res.apdu))
|
||||
print(SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY_2G(res.apdu))
|
||||
|
||||
# ADF_USIM/EF_USIM_AUTH_KEY:
|
||||
self.__select_xsim_auth_key(isim = False, _2G = False)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
print(" * ADF_USIM/EF_USIM_AUTH_KEY:")
|
||||
print(SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(res.apdu))
|
||||
print(SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu))
|
||||
|
||||
if self.sim.has_isim:
|
||||
# ADF_ISIM/EF_ISIM_AUTH_KEY:
|
||||
self.__select_xsim_auth_key(isim = True, _2G = False)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
print(" * ADF_ISIM/EF_ISIM_AUTH_KEY:")
|
||||
print(SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(res.apdu))
|
||||
print(SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu))
|
||||
|
||||
# ADF_USIM/EF_MILENAGE_CFG:
|
||||
self.sim.select(GSM_SIM_MF)
|
||||
|
@ -613,7 +617,7 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
self.sim.select(SYSMO_ISIMSJA2_EF_USIM_SQN)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
print(" * ADF_USIM/EF_USIM_SQN:")
|
||||
print(SYSMO_ISIMSJA2_FILE_EF_USIM_SQN(res.apdu))
|
||||
print(SYSMO_ISIMSJAX_FILE_EF_USIM_SQN(res.apdu))
|
||||
|
||||
if self.sim.has_isim:
|
||||
# ADF_USIM/EF_ISIM_SQN:
|
||||
|
@ -622,7 +626,7 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
self.sim.select(SYSMO_ISIMSJA2_EF_USIM_SQN)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
print(" * ADF_ISIM/EF_ISIM_SQN:")
|
||||
print(SYSMO_ISIMSJA2_FILE_EF_USIM_SQN(res.apdu))
|
||||
print(SYSMO_ISIMSJAX_FILE_EF_USIM_SQN(res.apdu))
|
||||
|
||||
def show_key_params(self):
|
||||
"""
|
||||
|
@ -635,7 +639,7 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
print(" * Reading...")
|
||||
self.__select_xsim_auth_key(isim = False, _2G = True)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY_2G(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY_2G(res.apdu)
|
||||
|
||||
print(" * Current Key setting:")
|
||||
print(" Key: " + hexdump(ef.key))
|
||||
|
@ -652,49 +656,61 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
print(" * Programming...")
|
||||
self.__select_xsim_auth_key(isim = False, _2G = True)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY_2G(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY_2G(res.apdu)
|
||||
ef.key = key
|
||||
self.sim.update_binary(ef.encode())
|
||||
|
||||
self.__select_xsim_auth_key(isim = False, _2G = False)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef.key = key
|
||||
self.sim.update_binary(ef.encode())
|
||||
|
||||
if self.sim.has_isim:
|
||||
self.__select_xsim_auth_key(isim = True, _2G = False)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef.key = key
|
||||
self.sim.update_binary(ef.encode())
|
||||
|
||||
print("")
|
||||
|
||||
# Show current athentication parameters
|
||||
# (Which algorithim is used for which rat?)
|
||||
def show_auth_params(self):
|
||||
"""
|
||||
Show current authentication parameters
|
||||
"""
|
||||
print("Reading Authentication parameters...")
|
||||
self._init()
|
||||
|
||||
print(" * Reading...")
|
||||
self.__select_xsim_auth_key(isim = False, _2G = True)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY_2G(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY_2G(res.apdu)
|
||||
algo_2g = ef.algo
|
||||
|
||||
self.__select_xsim_auth_key(isim = False, _2G = False)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
algo_3g = ef.algo
|
||||
|
||||
if self.sim.has_isim:
|
||||
self.__select_xsim_auth_key(isim = True, _2G = False)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
algo_4g5g = ef.algo
|
||||
else:
|
||||
algo_4g5g = algo_3g
|
||||
|
||||
print(" * Current algorithm setting:")
|
||||
print(" 2G: %d=%s" % (algo_2g, id_to_str(self.algorithms, algo_2g)))
|
||||
print(" 3G: %d=%s" % (algo_3g, id_to_str(self.algorithms, algo_3g)))
|
||||
print(" 2g: %d=%s" % (algo_2g, id_to_str(self.algorithms, algo_2g)))
|
||||
print(" 3g: %d=%s" % (algo_3g, id_to_str(self.algorithms, algo_3g)))
|
||||
print(" 4g5g: %d=%s" % (algo_3g, id_to_str(self.algorithms, algo_4g5g)))
|
||||
print("")
|
||||
|
||||
# Program new authentication parameters
|
||||
def write_auth_params(self, algo_2g_str, algo_3g_str):
|
||||
def write_auth_params(self, algo_2g_str, algo_3g_str, algo_4g5g_str = None):
|
||||
"""
|
||||
Write new authentication parameters
|
||||
"""
|
||||
print("Programming Authentication parameters...")
|
||||
self._init()
|
||||
|
||||
|
@ -708,35 +724,46 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
else:
|
||||
algo_3g = str_to_id(self.algorithms, algo_3g_str)
|
||||
|
||||
if algo_4g5g_str:
|
||||
if algo_4g5g_str.isdigit():
|
||||
algo_4g5g = int(algo_4g5g_str)
|
||||
else:
|
||||
algo_4g5g = str_to_id(self.algorithms, algo_4g5g_str)
|
||||
else:
|
||||
algo_4g5g = algo_3g
|
||||
|
||||
print(" * New algorithm setting:")
|
||||
print(" 2G: %d=%s" % (algo_2g, id_to_str(self.algorithms, algo_2g)))
|
||||
print(" 3G: %d=%s" % (algo_3g, id_to_str(self.algorithms, algo_3g)))
|
||||
print(" 2g: %d=%s" % (algo_2g, id_to_str(self.algorithms, algo_2g)))
|
||||
print(" 3g: %d=%s" % (algo_3g, id_to_str(self.algorithms, algo_3g)))
|
||||
print(" 4g5g: %d=%s" % (algo_4g5g, id_to_str(self.algorithms, algo_4g5g)))
|
||||
|
||||
print(" * Programming...")
|
||||
|
||||
self.__select_xsim_auth_key(isim = False, _2G = True)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY_2G(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef.algo = algo_2g
|
||||
self.sim.update_binary(ef.encode())
|
||||
|
||||
self.__select_xsim_auth_key(isim = False, _2G = False)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef.algo = algo_3g
|
||||
self.sim.update_binary(ef.encode())
|
||||
|
||||
if self.sim.has_isim:
|
||||
self.__select_xsim_auth_key(isim = True, _2G = False)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef.algo = algo_3g
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef.algo = algo_4g5g
|
||||
self.sim.update_binary(ef.encode())
|
||||
|
||||
print("")
|
||||
|
||||
# Show current OPc value
|
||||
def show_opc_params(self):
|
||||
"""
|
||||
Show OP/OPc current configuration. (see also method: write_opc_params).
|
||||
"""
|
||||
print("Reading OP/c value...")
|
||||
self._init()
|
||||
|
||||
|
@ -744,7 +771,7 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
print(" * Reading...")
|
||||
self.__select_xsim_auth_key(isim = False, _2G = False)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
|
||||
if ef.use_opc:
|
||||
mode_str = "OPc"
|
||||
|
@ -755,8 +782,10 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
print(" %s: %s" % (mode_str, hexdump(ef.opc)))
|
||||
print("")
|
||||
|
||||
# Program new OPc value
|
||||
def write_opc_params(self, select, op):
|
||||
"""
|
||||
Program new OPc value
|
||||
"""
|
||||
if select:
|
||||
print("Writing OPc value...")
|
||||
mode_str = "OPc"
|
||||
|
@ -771,7 +800,7 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
print(" * Programming...")
|
||||
self.__select_xsim_auth_key(isim = False, _2G = True)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY_2G(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY_2G(res.apdu)
|
||||
ef.opc = op
|
||||
ef.use_opc = bool(select)
|
||||
self.sim.update_binary(ef.encode())
|
||||
|
@ -779,22 +808,24 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
if self.sim.has_isim:
|
||||
self.__select_xsim_auth_key(isim = True, _2G = False)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef.opc = op
|
||||
ef.use_opc = bool(select)
|
||||
self.sim.update_binary(ef.encode())
|
||||
|
||||
self.__select_xsim_auth_key(isim = False, _2G = False)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_AUTH_KEY(res.apdu)
|
||||
ef.opc = op
|
||||
ef.use_opc = bool(select)
|
||||
self.sim.update_binary(ef.encode())
|
||||
|
||||
print("")
|
||||
|
||||
# Show current milenage SQN parameters
|
||||
def show_milenage_sqn_params(self):
|
||||
"""
|
||||
Show current milenage SQN parameters
|
||||
"""
|
||||
print("Reading Milenage Sequence parameters...")
|
||||
self._init()
|
||||
|
||||
|
@ -803,7 +834,7 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
self.sim.card.SELECT_ADF_USIM()
|
||||
self.sim.select(SYSMO_ISIMSJA2_EF_USIM_SQN)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
print(SYSMO_ISIMSJA2_FILE_EF_USIM_SQN(res.apdu))
|
||||
print(SYSMO_ISIMSJAX_FILE_EF_USIM_SQN(res.apdu))
|
||||
|
||||
if self.sim.has_isim:
|
||||
print(" * Current SQN Configuration for ADF_ISIM:")
|
||||
|
@ -811,12 +842,14 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
self.sim.card.SELECT_ADF_ISIM()
|
||||
self.sim.select(SYSMO_ISIMSJA2_EF_USIM_SQN)
|
||||
res = self._read_binary(self.sim.filelen)
|
||||
print(SYSMO_ISIMSJA2_FILE_EF_USIM_SQN(res.apdu))
|
||||
print(SYSMO_ISIMSJAX_FILE_EF_USIM_SQN(res.apdu))
|
||||
|
||||
print("")
|
||||
|
||||
# Reset milenage SQN configuration
|
||||
def reset_milenage_sqn_params(self):
|
||||
"""
|
||||
Reset milenage SQN configuration
|
||||
"""
|
||||
print(" * Resetting SQN Configuration to defaults...")
|
||||
self._init()
|
||||
|
||||
|
@ -825,13 +858,13 @@ class Sysmo_isim_sja2(Sysmo_usim):
|
|||
|
||||
self.sim.card.SELECT_ADF_USIM()
|
||||
self.sim.select(SYSMO_ISIMSJA2_EF_USIM_SQN)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_SQN()
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_SQN()
|
||||
self.sim.update_binary(ef.encode())
|
||||
|
||||
if self.sim.has_isim:
|
||||
self.sim.card.SELECT_ADF_ISIM()
|
||||
self.sim.select(SYSMO_ISIMSJA2_EF_USIM_SQN)
|
||||
ef = SYSMO_ISIMSJA2_FILE_EF_USIM_SQN()
|
||||
ef = SYSMO_ISIMSJAX_FILE_EF_USIM_SQN()
|
||||
self.sim.update_binary(ef.encode())
|
||||
|
||||
print("")
|
||||
|
|
|
@ -16,8 +16,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 1=COMP128v1
|
||||
3G: 1=COMP128v1
|
||||
2g: 1=COMP128v1
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 1=COMP128v1
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -40,8 +41,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 1=COMP128v1
|
||||
3G: 1=COMP128v1
|
||||
2g: 1=COMP128v1
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 1=COMP128v1
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -62,8 +64,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 3=COMP128v3
|
||||
3G: 1=COMP128v1
|
||||
2g: 3=COMP128v3
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 1=COMP128v1
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -86,8 +89,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 3=COMP128v3
|
||||
3G: 1=COMP128v1
|
||||
2g: 3=COMP128v3
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 1=COMP128v1
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -108,8 +112,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 4=MILENAGE
|
||||
3G: 1=COMP128v1
|
||||
2g: 4=MILENAGE
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 1=COMP128v1
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -132,8 +137,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 4=MILENAGE
|
||||
3G: 1=COMP128v1
|
||||
2g: 4=MILENAGE
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 1=COMP128v1
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -154,8 +160,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 5=SHA1-AKA
|
||||
3G: 1=COMP128v1
|
||||
2g: 5=SHA1-AKA
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 1=COMP128v1
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -178,8 +185,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 5=SHA1-AKA
|
||||
3G: 1=COMP128v1
|
||||
2g: 5=SHA1-AKA
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 1=COMP128v1
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -200,8 +208,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 15=XOR
|
||||
3G: 1=COMP128v1
|
||||
2g: 15=XOR
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 1=COMP128v1
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -224,8 +233,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 15=XOR
|
||||
3G: 1=COMP128v1
|
||||
2g: 15=XOR
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 1=COMP128v1
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -246,8 +256,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 1=COMP128v1
|
||||
3G: 4=MILENAGE
|
||||
2g: 1=COMP128v1
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -270,8 +281,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 1=COMP128v1
|
||||
3G: 4=MILENAGE
|
||||
2g: 1=COMP128v1
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -292,8 +304,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 3=COMP128v3
|
||||
3G: 15=XOR
|
||||
2g: 3=COMP128v3
|
||||
3g: 15=XOR
|
||||
4g5g: 15=XOR
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -316,8 +329,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 3=COMP128v3
|
||||
3G: 15=XOR
|
||||
2g: 3=COMP128v3
|
||||
3g: 15=XOR
|
||||
4g5g: 15=XOR
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -338,8 +352,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 2=COMP128v2
|
||||
3G: 2=COMP128v2
|
||||
2g: 2=COMP128v2
|
||||
3g: 2=COMP128v2
|
||||
4g5g: 2=COMP128v2
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -362,8 +377,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 2=COMP128v2
|
||||
3G: 2=COMP128v2
|
||||
2g: 2=COMP128v2
|
||||
3g: 2=COMP128v2
|
||||
4g5g: 2=COMP128v2
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -384,8 +400,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 1=COMP128v1
|
||||
3G: 3=COMP128v3
|
||||
2g: 1=COMP128v1
|
||||
3g: 3=COMP128v3
|
||||
4g5g: 3=COMP128v3
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -408,8 +425,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 1=COMP128v1
|
||||
3G: 3=COMP128v3
|
||||
2g: 1=COMP128v1
|
||||
3g: 3=COMP128v3
|
||||
4g5g: 3=COMP128v3
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -430,8 +448,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 4=MILENAGE
|
||||
3G: 4=MILENAGE
|
||||
2g: 1=COMP128v1
|
||||
3g: 2=COMP128v2
|
||||
4g5g: 3=COMP128v3
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -454,8 +473,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 4=MILENAGE
|
||||
3G: 4=MILENAGE
|
||||
2g: 1=COMP128v1
|
||||
3g: 2=COMP128v2
|
||||
4g5g: 2=COMP128v3
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -476,8 +496,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 1=COMP128v1
|
||||
3G: 4=MILENAGE
|
||||
2g: 1=COMP128v1
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 5=SHA1-AKA
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -500,8 +521,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 1=COMP128v1
|
||||
3G: 4=MILENAGE
|
||||
2g: 1=COMP128v1
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=SHA1-AKA
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -522,8 +544,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 3=COMP128v3
|
||||
3G: 4=MILENAGE
|
||||
2g: 5=SHA1-AKA
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 15=XOR
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -546,8 +569,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 3=COMP128v3
|
||||
3G: 4=MILENAGE
|
||||
2g: 5=SHA1-AKA
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=XOR
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -568,8 +592,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 2=COMP128v2
|
||||
3G: 4=MILENAGE
|
||||
2g: 4=MILENAGE
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -592,8 +617,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 2=COMP128v2
|
||||
3G: 4=MILENAGE
|
||||
2g: 4=MILENAGE
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -614,8 +640,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 5=SHA1-AKA
|
||||
3G: 15=XOR
|
||||
2g: 1=COMP128v1
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -638,8 +665,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 5=SHA1-AKA
|
||||
3G: 15=XOR
|
||||
2g: 1=COMP128v1
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -660,8 +688,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 1=COMP128v1
|
||||
3G: 4=MILENAGE
|
||||
2g: 3=COMP128v3
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -684,7 +713,248 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 1=COMP128v1
|
||||
3G: 4=MILENAGE
|
||||
2g: 3=COMP128v3
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
Copyright (c) 2019-2022 sysmocom - s.f.m.c. GmbH
|
||||
|
||||
Trying to find card with ATR: 3B 9F 96 80 1F 87 80 31 E0 73 FE 21 1B 67 4A 4C 75 30 34 05 4B A9
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2g: 2=COMP128v2
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
Copyright (c) 2019-2022 sysmocom - s.f.m.c. GmbH
|
||||
|
||||
Trying to find card with ATR: 3B 9F 96 80 1F 87 80 31 E0 73 FE 21 1B 67 4A 4C 75 30 34 05 4B A9
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading Authentication parameters...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2g: 2=COMP128v2
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
Copyright (c) 2019-2022 sysmocom - s.f.m.c. GmbH
|
||||
|
||||
Trying to find card with ATR: 3B 9F 96 80 1F 87 80 31 E0 73 FE 21 1B 67 4A 4C 75 30 34 05 4B A9
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2g: 5=SHA1-AKA
|
||||
3g: 15=XOR
|
||||
4g5g: 15=XOR
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
Copyright (c) 2019-2022 sysmocom - s.f.m.c. GmbH
|
||||
|
||||
Trying to find card with ATR: 3B 9F 96 80 1F 87 80 31 E0 73 FE 21 1B 67 4A 4C 75 30 34 05 4B A9
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading Authentication parameters...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2g: 5=SHA1-AKA
|
||||
3g: 15=XOR
|
||||
4g5g: 15=XOR
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
Copyright (c) 2019-2022 sysmocom - s.f.m.c. GmbH
|
||||
|
||||
Trying to find card with ATR: 3B 9F 96 80 1F 87 80 31 E0 73 FE 21 1B 67 4A 4C 75 30 34 05 4B A9
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2g: 1=COMP128v1
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
Copyright (c) 2019-2022 sysmocom - s.f.m.c. GmbH
|
||||
|
||||
Trying to find card with ATR: 3B 9F 96 80 1F 87 80 31 E0 73 FE 21 1B 67 4A 4C 75 30 34 05 4B A9
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading Authentication parameters...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2g: 1=COMP128v1
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
Copyright (c) 2019-2022 sysmocom - s.f.m.c. GmbH
|
||||
|
||||
Trying to find card with ATR: 3B 9F 96 80 1F 87 80 31 E0 73 FE 21 1B 67 4A 4C 75 30 34 05 4B A9
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2g: 1=COMP128v1
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 5=SHA1-AKA
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
Copyright (c) 2019-2022 sysmocom - s.f.m.c. GmbH
|
||||
|
||||
Trying to find card with ATR: 3B 9F 96 80 1F 87 80 31 E0 73 FE 21 1B 67 4A 4C 75 30 34 05 4B A9
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading Authentication parameters...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2g: 1=COMP128v1
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=SHA1-AKA
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
Copyright (c) 2019-2022 sysmocom - s.f.m.c. GmbH
|
||||
|
||||
Trying to find card with ATR: 3B 9F 96 80 1F 87 80 31 E0 73 FE 21 1B 67 4A 4C 75 30 34 05 4B A9
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2g: 2=COMP128v2
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 3=COMP128v3
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
Copyright (c) 2019-2022 sysmocom - s.f.m.c. GmbH
|
||||
|
||||
Trying to find card with ATR: 3B 9F 96 80 1F 87 80 31 E0 73 FE 21 1B 67 4A 4C 75 30 34 05 4B A9
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading Authentication parameters...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2g: 2=COMP128v2
|
||||
3g: 1=COMP128v1
|
||||
4g5g: 1=COMP128v3
|
||||
|
||||
Done!
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/sh
|
||||
. ./test-data
|
||||
|
||||
ALGOS="1:1 3:1 4:1 5:1 15:1 1:4 3:15 2:2 1:3 "
|
||||
ALGOS=$ALGOS"MILENAGE:MILENAGE COMP128v1:MILENAGE COMP128v3:MILENAGE COMP128v2:MILENAGE SHA1-AKA:XOR COMP128v1:MILENAGE"
|
||||
ALGOS="1:1 3:1 4:1 5:1 15:1 1:4 3:15 2:2 1:3 1:2:3 1:4:5 5:4:15 "
|
||||
ALGOS=$ALGOS"MILENAGE:MILENAGE COMP128v1:MILENAGE COMP128v3:MILENAGE COMP128v2:MILENAGE SHA1-AKA:XOR COMP128v1:MILENAGE COMP128v1:MILENAGE:SHA1-AKA COMP128v2:COMP128v1:COMP128v3"
|
||||
for algo in $ALGOS; do
|
||||
$TOOL -a $ADMPIN -T $algo
|
||||
$TOOL -a $ADMPIN -t
|
||||
|
|
Loading…
Reference in New Issue