WIP: Full TUAK support + refactoring
This renovates/fixes the following: - rafactor/cleanup code - add unit tests for sysmo-isim-sja5 - add full read/write support for TUAK parameters - Allow setting algorims for 4g5g individually - Generalize commandline setting "Ki" to "Key" (Risk of incompatibility if customers use --set-ki in scripts!) - Add a class for each algo specific header nibble - Add a class for each algo specific parameter body - Display settings for each generation individually (SIM/2g, USIM/3g, ISIM/4g5g) - Check algorithm before programming (e.g. do not allow to program OP/c when COMP128v1 is selected) - Update key (Ki) and OPc read write functions, so that they can also program TUAK keys and TOPc Todo: - Add TUAK specific testcases - rename testcase "05_ki.sh "to "05_key.sh"
This commit is contained in:
parent
513de41913
commit
8958268fc3
39
common.py
39
common.py
|
@ -28,8 +28,8 @@ import sys, getopt
|
|||
|
||||
COMMON_GETOPTS = "hfa:J:nN:lL:kK:tT:oO:C:sSip"
|
||||
COMMON_GETOPTS_LONG = ["help", "force", "adm1=", "set-imsi=", "mnclen",
|
||||
"set-mnclen=", "milenage", "set-milenage=", "ki",
|
||||
"set-ki=", "auth", "set-auth=", "opc", "set-op=",
|
||||
"set-mnclen=", "milenage", "set-milenage=", "key",
|
||||
"set-key=", "auth", "set-auth=", "opc", "set-op=",
|
||||
"set-opc=", "seq-parameters", "reset-seq-parameters"
|
||||
"iccid", "aid"]
|
||||
|
||||
|
@ -46,8 +46,8 @@ class Common():
|
|||
show_mnclen = None
|
||||
show_milenage = False
|
||||
write_milenage = None
|
||||
show_ki = None
|
||||
write_ki = None
|
||||
show_key = None
|
||||
write_key = None
|
||||
show_auth = False
|
||||
write_auth = None
|
||||
show_opc = False
|
||||
|
@ -91,14 +91,14 @@ class Common():
|
|||
self.show_milenage = True
|
||||
elif opt in ("-L", "--set-milenage"):
|
||||
self.write_milenage = asciihex_to_list(arg)
|
||||
elif opt in ("-k", "--ki"):
|
||||
self.show_ki = True
|
||||
elif opt in ("-K", "--set-ki"):
|
||||
self.write_ki = asciihex_to_list(arg)
|
||||
elif opt in ("-k", "--key"):
|
||||
self.show_key = True
|
||||
elif opt in ("-K", "--set-key"):
|
||||
self.write_key = asciihex_to_list(arg)
|
||||
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"):
|
||||
|
@ -141,10 +141,10 @@ class Common():
|
|||
print(" -N, --set-mnclen ............... Set MNC length value")
|
||||
print(" -l, --milenage ................. Show milenage parameters")
|
||||
print(" -L, --set-milenage HEXSTRING ... Set milenage parameters")
|
||||
print(" -k, --ki ....................... Show KI value")
|
||||
print(" -K, --set-ki ................... Set KI value")
|
||||
print(" -t, --auth ..................... Show Authentication algorithms")
|
||||
print(" -T, --set-auth 2G:3G ........... Set 2G/3G Auth algo (e.g. COMP128v1:COMP128v1)")
|
||||
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[:4g5g] .... 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")
|
||||
|
@ -182,17 +182,20 @@ class Common():
|
|||
if self.show_milenage:
|
||||
self.sim.show_milenage_params()
|
||||
|
||||
if self.write_ki:
|
||||
self.sim.write_ki_params(self.write_ki)
|
||||
if self.write_key:
|
||||
self.sim.write_key_params(self.write_key)
|
||||
|
||||
if self.show_ki:
|
||||
self.sim.show_ki_params()
|
||||
if self.show_key:
|
||||
self.sim.show_key_params()
|
||||
|
||||
if self.show_auth:
|
||||
self.sim.show_auth_params()
|
||||
|
||||
if self.write_auth:
|
||||
self.sim.write_auth_params(self.write_auth[0], self.write_auth[1])
|
||||
if 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()
|
||||
|
|
|
@ -32,7 +32,8 @@ from common import *
|
|||
class Application(Common):
|
||||
|
||||
getopt_dump = False
|
||||
|
||||
getopt_show_tuak_cfg = False
|
||||
getopt_write_tuak_cfg = None
|
||||
|
||||
# Automatically executed by superclass
|
||||
def _banner(self):
|
||||
|
@ -46,16 +47,27 @@ class Application(Common):
|
|||
for opt, arg in opts:
|
||||
if opt in ("-d", "--dump"):
|
||||
self.getopt_dump = True
|
||||
|
||||
elif opt in ("-w", "--tuak-cfg"):
|
||||
self.getopt_show_tuak_cfg = True
|
||||
elif opt in ("-W", "--set-tuak-cfg"):
|
||||
self.getopt_write_tuak_cfg = arg.split(':', 3)
|
||||
|
||||
# Automatically executed by superclass when -h or --help is supplied as option
|
||||
def _helptext(self):
|
||||
print(" -d, --dump ..................... Dump propritary file contents")
|
||||
#TODO: add a help screen to explain what RMCK means
|
||||
print(" -w, --tuak-cfg ................. Show TUAK configuration")
|
||||
print(" -W, --set-tuak-cfg R:M:C:K ..... Set TUAK configuration")
|
||||
print("")
|
||||
print(" For Option -T, the following algorithms are valid:")
|
||||
print('\n'.join([' %d %s' % entry for entry in sysmo_isimsja5_algorithms]))
|
||||
print("")
|
||||
|
||||
print(" For Option -W, the following values are applicable:")
|
||||
print(" R = RES-Size in bits: 32, 64, 128 or 256")
|
||||
print(" M = MAC-A and MAC-S size in bits: 64, 128 or 256")
|
||||
print(" C = CK and IK size in bits: 128 or 256")
|
||||
print(" K = Number of Keccak iterations: 1-255")
|
||||
print("")
|
||||
|
||||
# Automatically executed by superclass before _execute() is called
|
||||
def _init(self):
|
||||
|
@ -67,11 +79,15 @@ class Application(Common):
|
|||
|
||||
if self.getopt_dump:
|
||||
self.sim.dump()
|
||||
|
||||
elif self.getopt_show_tuak_cfg:
|
||||
self.sim.show_tuak_cfg()
|
||||
elif self.getopt_write_tuak_cfg:
|
||||
self.sim.write_tuak_cfg(self.getopt_write_tuak_cfg[0], self.getopt_write_tuak_cfg[1], \
|
||||
self.getopt_write_tuak_cfg[2], self.getopt_write_tuak_cfg[3])
|
||||
|
||||
def main(argv):
|
||||
|
||||
Application(argv, "d", ["dump"])
|
||||
Application(argv, "dwW:", ["dump"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -471,7 +471,7 @@ class Sysmo_usim_sjs1(Sysmo_usim):
|
|||
|
||||
|
||||
# Show current KI value
|
||||
def show_ki_params(self):
|
||||
def show_key_params(self):
|
||||
print("Reading KI value...")
|
||||
print(" * Reading...")
|
||||
self.sim.select(GSM_SIM_DF_GSM)
|
||||
|
@ -484,7 +484,7 @@ class Sysmo_usim_sjs1(Sysmo_usim):
|
|||
|
||||
|
||||
# Program new KI value
|
||||
def write_ki_params(self, ki):
|
||||
def write_key_params(self, ki):
|
||||
print("Writing KI value...")
|
||||
self._init()
|
||||
|
||||
|
|
|
@ -32,3 +32,20 @@ echo ""
|
|||
echo ""
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
echo "=========================================================="
|
||||
echo " EXECUTING TESTS FOR SYSMO-USIM-SJA5"
|
||||
echo "=========================================================="
|
||||
echo ""
|
||||
cd ./sja5
|
||||
echo "Location $PWD"
|
||||
echo ""
|
||||
sh ./run-tests
|
||||
if [ ! $? -eq 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
cd ..
|
||||
echo ""
|
||||
echo ""
|
||||
echo ""
|
||||
echo ""
|
||||
|
|
|
@ -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: 4=MILENAGE
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -454,8 +473,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 4=MILENAGE
|
||||
3G: 4=MILENAGE
|
||||
2g: 4=MILENAGE
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
|
||||
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: 4=MILENAGE
|
||||
* 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=MILENAGE
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -522,8 +544,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 3=COMP128v3
|
||||
3G: 4=MILENAGE
|
||||
2g: 3=COMP128v3
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -546,8 +569,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 3=COMP128v3
|
||||
3G: 4=MILENAGE
|
||||
2g: 3=COMP128v3
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -568,8 +592,9 @@ Authenticating...
|
|||
Programming Authentication parameters...
|
||||
* Initalizing...
|
||||
* New algorithm setting:
|
||||
2G: 2=COMP128v2
|
||||
3G: 4=MILENAGE
|
||||
2g: 2=COMP128v2
|
||||
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: 2=COMP128v2
|
||||
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: 5=SHA1-AKA
|
||||
3g: 15=XOR
|
||||
4g5g: 15=XOR
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
|
@ -638,8 +665,9 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 5=SHA1-AKA
|
||||
3G: 15=XOR
|
||||
2g: 5=SHA1-AKA
|
||||
3g: 15=XOR
|
||||
4g5g: 15=XOR
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -660,8 +688,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!
|
||||
|
@ -684,7 +713,8 @@ Reading Authentication parameters...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current algorithm setting:
|
||||
2G: 1=COMP128v1
|
||||
3G: 4=MILENAGE
|
||||
2g: 1=COMP128v1
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
|
||||
Done!
|
||||
|
|
|
@ -1,6 +1,30 @@
|
|||
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: 4=MILENAGE
|
||||
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
|
||||
|
@ -18,6 +42,9 @@ Writing OPc value...
|
|||
* New OPc setting:
|
||||
OPc: 000102030405060708090a0b0c0d0e0f
|
||||
* Programming...
|
||||
2g OPc programmed.
|
||||
3g OPc programmed.
|
||||
4g5g OPc programmed.
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -39,7 +66,9 @@ Reading OP/c value...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current OP/OPc setting:
|
||||
OPc: 000102030405060708090a0b0c0d0e0f
|
||||
2g: OPc: 000102030405060708090a0b0c0d0e0f
|
||||
3g: OPc: 000102030405060708090a0b0c0d0e0f
|
||||
4g5g: OPc: 000102030405060708090a0b0c0d0e0f
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -62,6 +91,9 @@ Writing OP value...
|
|||
* New OPc setting:
|
||||
OP: 840337c3d45397ce8ea8609ffdc47224
|
||||
* Programming...
|
||||
2g OP programmed.
|
||||
3g OP programmed.
|
||||
4g5g OP programmed.
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -83,6 +115,8 @@ Reading OP/c value...
|
|||
* Initalizing...
|
||||
* Reading...
|
||||
* Current OP/OPc setting:
|
||||
OP: 840337c3d45397ce8ea8609ffdc47224
|
||||
2g: OP: 840337c3d45397ce8ea8609ffdc47224
|
||||
3g: OP: 840337c3d45397ce8ea8609ffdc47224
|
||||
4g5g: OP: 840337c3d45397ce8ea8609ffdc47224
|
||||
|
||||
Done!
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#!/bin/sh
|
||||
. ./test-data
|
||||
|
||||
$TOOL -a $ADMPIN -T "MILENAGE:MILENAGE"
|
||||
|
||||
$TOOL -a $ADMPIN -C 000102030405060708090a0b0c0d0e0f
|
||||
$TOOL -a $ADMPIN -o
|
||||
|
||||
|
|
|
@ -13,11 +13,14 @@ Authenticating...
|
|||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Writing KI value...
|
||||
Writing Key value...
|
||||
* Initalizing...
|
||||
* New KI setting:
|
||||
KI: a0b1c2d3e4f5061728394a5b6c7d8e9f
|
||||
* New Key setting:
|
||||
Key: a0b1c2d3e4f5061728394a5b6c7d8e9f
|
||||
* Programming...
|
||||
* 2g: Key programmed.
|
||||
* 3g: Key programmed.
|
||||
* 4g5g: Key programmed.
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -35,11 +38,13 @@ Authenticating...
|
|||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading KI value...
|
||||
Reading Key value...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current KI setting:
|
||||
KI: a0b1c2d3e4f5061728394a5b6c7d8e9f
|
||||
* Current Key setting:
|
||||
2g: Key: a0b1c2d3e4f5061728394a5b6c7d8e9f
|
||||
3g: Key: a0b1c2d3e4f5061728394a5b6c7d8e9f
|
||||
4g5g: Key: a0b1c2d3e4f5061728394a5b6c7d8e9f
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -57,11 +62,14 @@ Authenticating...
|
|||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Writing KI value...
|
||||
Writing Key value...
|
||||
* Initalizing...
|
||||
* New KI setting:
|
||||
KI: d7882eae7cd14f06108c55f8e5cffe93
|
||||
* New Key setting:
|
||||
Key: d7882eae7cd14f06108c55f8e5cffe93
|
||||
* Programming...
|
||||
* 2g: Key programmed.
|
||||
* 3g: Key programmed.
|
||||
* 4g5g: Key programmed.
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA2 parameterization tool
|
||||
|
@ -79,10 +87,12 @@ Authenticating...
|
|||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading KI value...
|
||||
Reading Key value...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current KI setting:
|
||||
KI: d7882eae7cd14f06108c55f8e5cffe93
|
||||
* Current Key setting:
|
||||
2g: Key: d7882eae7cd14f06108c55f8e5cffe93
|
||||
3g: Key: d7882eae7cd14f06108c55f8e5cffe93
|
||||
4g5g: Key: d7882eae7cd14f06108c55f8e5cffe93
|
||||
|
||||
Done!
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Done!
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
. ./test-data
|
||||
|
||||
$TOOL -a $ADMPIN
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
. ./test-data
|
||||
|
||||
ALGOS="1:1 3:1 4:1 5:1 15:1 1:4 3:15 2:2 1:3 14:4 2:6 6:4 14:6 "
|
||||
ALGOS=$ALGOS"MILENAGE:MILENAGE TUAK:TUAK COMP128v1:MILENAGE COMP128v3:MILENAGE COMP128v2:MILENAGE COMP128v2:TUAK COMP128v2:XOR-2G SHA1-AKA:XOR COMP128v1:MILENAGE XOR-2G:TUAK"
|
||||
for algo in $ALGOS; do
|
||||
$TOOL -a $ADMPIN -T $algo
|
||||
$TOOL -a $ADMPIN -t
|
||||
done
|
|
@ -0,0 +1,124 @@
|
|||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Programming Milenage parameters...
|
||||
* Initalizing...
|
||||
* New Milenage Parameters for (EF.MILENAGE_CFG):
|
||||
R1: 0xaa
|
||||
R2: 0xbb
|
||||
R3: 0xcc
|
||||
R4: 0xdd
|
||||
R5: 0xee
|
||||
C1: 1234567890abcdef1234567890abcdef
|
||||
C2: f1234567890abcdef1234567890abcde
|
||||
C3: ef1234567890abcdef1234567890abcd
|
||||
C4: def1234567890abcdef1234567890abc
|
||||
C5: cdef1234567890abcdef1234567890ab
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading Milenage parameters...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current Milenage Parameters:
|
||||
R1: 0xaa
|
||||
R2: 0xbb
|
||||
R3: 0xcc
|
||||
R4: 0xdd
|
||||
R5: 0xee
|
||||
C1: 1234567890abcdef1234567890abcdef
|
||||
C2: f1234567890abcdef1234567890abcde
|
||||
C3: ef1234567890abcdef1234567890abcd
|
||||
C4: def1234567890abcdef1234567890abc
|
||||
C5: cdef1234567890abcdef1234567890ab
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Programming Milenage parameters...
|
||||
* Initalizing...
|
||||
* New Milenage Parameters for (EF.MILENAGE_CFG):
|
||||
R1: 0x40
|
||||
R2: 0x0
|
||||
R3: 0x20
|
||||
R4: 0x40
|
||||
R5: 0x60
|
||||
C1: 00000000000000000000000000000000
|
||||
C2: 00000000000000000000000000000001
|
||||
C3: 00000000000000000000000000000002
|
||||
C4: 00000000000000000000000000000004
|
||||
C5: 00000000000000000000000000000008
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading Milenage parameters...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current Milenage Parameters:
|
||||
R1: 0x40
|
||||
R2: 0x0
|
||||
R3: 0x20
|
||||
R4: 0x40
|
||||
R5: 0x60
|
||||
C1: 00000000000000000000000000000000
|
||||
C2: 00000000000000000000000000000001
|
||||
C3: 00000000000000000000000000000002
|
||||
C4: 00000000000000000000000000000004
|
||||
C5: 00000000000000000000000000000008
|
||||
|
||||
Done!
|
|
@ -0,0 +1,24 @@
|
|||
#!/bin/sh
|
||||
. ./test-data
|
||||
|
||||
# Write and reread with test data
|
||||
C1="1234567890ABCDEF1234567890ABCDEF"
|
||||
C2="F1234567890ABCDEF1234567890ABCDE"
|
||||
C3="EF1234567890ABCDEF1234567890ABCD"
|
||||
C4="DEF1234567890ABCDEF1234567890ABC"
|
||||
C5="CDEF1234567890ABCDEF1234567890AB"
|
||||
R12345="AA:BB:CC:DD:EE"
|
||||
PARAMS=$C1$C2$C3$C4$C5$R12345
|
||||
$TOOL -a $ADMPIN -L $PARAMS
|
||||
$TOOL -a $ADMPIN -l
|
||||
|
||||
# Write and reread with factory defaults
|
||||
C1="00000000000000000000000000000000"
|
||||
C2="00000000000000000000000000000001"
|
||||
C3="00000000000000000000000000000002"
|
||||
C4="00000000000000000000000000000004"
|
||||
C5="00000000000000000000000000000008"
|
||||
R12345="40:00:20:40:60"
|
||||
PARAMS=$C1$C2$C3$C4$C5$R12345
|
||||
$TOOL -a $ADMPIN -L $PARAMS
|
||||
$TOOL -a $ADMPIN -l
|
|
@ -0,0 +1,122 @@
|
|||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
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: 4=MILENAGE
|
||||
3g: 4=MILENAGE
|
||||
4g5g: 4=MILENAGE
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Writing OPc value...
|
||||
* Initalizing...
|
||||
* New OPc setting:
|
||||
OPc: 000102030405060708090a0b0c0d0e0f
|
||||
* Programming...
|
||||
2g OPc programmed.
|
||||
3g OPc programmed.
|
||||
4g5g OPc programmed.
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading OP/c value...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current OP/OPc setting:
|
||||
2g: OPc: 000102030405060708090a0b0c0d0e0f
|
||||
3g: OPc: 000102030405060708090a0b0c0d0e0f
|
||||
4g5g: OPc: 000102030405060708090a0b0c0d0e0f
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Writing OP value...
|
||||
* Initalizing...
|
||||
* New OPc setting:
|
||||
OP: 840337c3d45397ce8ea8609ffdc47224
|
||||
* Programming...
|
||||
2g OP programmed.
|
||||
3g OP programmed.
|
||||
4g5g OP programmed.
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading OP/c value...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current OP/OPc setting:
|
||||
2g: OP: 840337c3d45397ce8ea8609ffdc47224
|
||||
3g: OP: 840337c3d45397ce8ea8609ffdc47224
|
||||
4g5g: OP: 840337c3d45397ce8ea8609ffdc47224
|
||||
|
||||
Done!
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
. ./test-data
|
||||
|
||||
$TOOL -a $ADMPIN -T "MILENAGE:MILENAGE"
|
||||
|
||||
$TOOL -a $ADMPIN -C 000102030405060708090a0b0c0d0e0f
|
||||
$TOOL -a $ADMPIN -o
|
||||
|
||||
$TOOL -a $ADMPIN -O 840337c3d45397ce8ea8609ffdc47224
|
||||
$TOOL -a $ADMPIN -o
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Writing Key value...
|
||||
* Initalizing...
|
||||
* New Key setting:
|
||||
Key: a0b1c2d3e4f5061728394a5b6c7d8e9f
|
||||
* Programming...
|
||||
* 2g: Key programmed.
|
||||
* 3g: Key programmed.
|
||||
* 4g5g: Key programmed.
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading Key value...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current Key setting:
|
||||
2g: Key: a0b1c2d3e4f5061728394a5b6c7d8e9f
|
||||
3g: Key: a0b1c2d3e4f5061728394a5b6c7d8e9f
|
||||
4g5g: Key: a0b1c2d3e4f5061728394a5b6c7d8e9f
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Writing Key value...
|
||||
* Initalizing...
|
||||
* New Key setting:
|
||||
Key: d7882eae7cd14f06108c55f8e5cffe93
|
||||
* Programming...
|
||||
* 2g: Key programmed.
|
||||
* 3g: Key programmed.
|
||||
* 4g5g: Key programmed.
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading Key value...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current Key setting:
|
||||
2g: Key: d7882eae7cd14f06108c55f8e5cffe93
|
||||
3g: Key: d7882eae7cd14f06108c55f8e5cffe93
|
||||
4g5g: Key: d7882eae7cd14f06108c55f8e5cffe93
|
||||
|
||||
Done!
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
. ./test-data
|
||||
|
||||
# set to arbitrary value + read back
|
||||
$TOOL -a $ADMPIN -K a0b1c2d3e4f5061728394a5b6c7d8e9f
|
||||
$TOOL -a $ADMPIN -k
|
||||
|
||||
# set to original value + read back
|
||||
$TOOL -a $ADMPIN -K $KI
|
||||
$TOOL -a $ADMPIN -k
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading Milenage Sequence parameters...
|
||||
* Initalizing...
|
||||
* Current SQN Configuration for ADF_USIM:
|
||||
IND (bits): 5
|
||||
SQN Check enabled
|
||||
SQN Age Limit disabled
|
||||
SQN Max Delta enabled
|
||||
SQN Skip first enabled
|
||||
SQN Conceal AUTN enabled
|
||||
SQN Conceal AUTS enabled
|
||||
SQN No AMF clear disabled
|
||||
Max Delta: 8589934592
|
||||
Age Limit: 8589934592
|
||||
Freshness Data:
|
||||
000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000
|
||||
* Current SQN Configuration for ADF_ISIM:
|
||||
IND (bits): 5
|
||||
SQN Check enabled
|
||||
SQN Age Limit disabled
|
||||
SQN Max Delta enabled
|
||||
SQN Skip first enabled
|
||||
SQN Conceal AUTN enabled
|
||||
SQN Conceal AUTS enabled
|
||||
SQN No AMF clear disabled
|
||||
Max Delta: 8589934592
|
||||
Age Limit: 8589934592
|
||||
Freshness Data:
|
||||
000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
* Resetting SQN Configuration to defaults...
|
||||
* Initalizing...
|
||||
* Resetting...
|
||||
|
||||
Done!
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
. ./test-data
|
||||
|
||||
# we can only read them for now, which will of course change once we perform auth against it
|
||||
$TOOL -a $ADMPIN -s
|
||||
|
||||
# test if resetting SQN parameters works
|
||||
$TOOL -a $ADMPIN -S
|
|
@ -0,0 +1,132 @@
|
|||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Writing MNCLEN value...
|
||||
* Initalizing...
|
||||
* New MNCLEN setting:
|
||||
MNCLEN: 0x02
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading MNCLEN value...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current MNCLEN setting:
|
||||
MNCLEN: 0x02
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Writing MNCLEN value...
|
||||
* Initalizing...
|
||||
* New MNCLEN setting:
|
||||
MNCLEN: 0x03
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading MNCLEN value...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current MNCLEN setting:
|
||||
MNCLEN: 0x03
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Writing MNCLEN value...
|
||||
* Initalizing...
|
||||
* New MNCLEN setting:
|
||||
MNCLEN: 0x02
|
||||
* Programming...
|
||||
|
||||
Done!
|
||||
sysmoISIM-SJA5 parameterization tool
|
||||
Copyright (c) 2023 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 35 75 30 35 02 59 C4
|
||||
Initializing smartcard terminal...
|
||||
* Detected Card IMSI: 901700000046734
|
||||
ISIM Application installed
|
||||
USIM Application installed
|
||||
|
||||
Authenticating...
|
||||
* Remaining attempts: 3
|
||||
* Authenticating...
|
||||
* Authentication successful
|
||||
* Remaining attempts: 3
|
||||
|
||||
Reading MNCLEN value...
|
||||
* Initalizing...
|
||||
* Reading...
|
||||
* Current MNCLEN setting:
|
||||
MNCLEN: 0x02
|
||||
|
||||
Done!
|
|
@ -0,0 +1,15 @@
|
|||
#!/bin/sh
|
||||
. ./test-data
|
||||
|
||||
# set to 2 (default) + read back
|
||||
$TOOL -a $ADMPIN -N 02
|
||||
$TOOL -a $ADMPIN -n
|
||||
|
||||
# set to 3 + read back
|
||||
$TOOL -a $ADMPIN -N 03
|
||||
$TOOL -a $ADMPIN -n
|
||||
|
||||
# set to 2 (default) + read back
|
||||
$TOOL -a $ADMPIN -N 02
|
||||
$TOOL -a $ADMPIN -n
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
. ./test-data
|
||||
|
||||
echo "================ PREPARING TEST CARD ================"
|
||||
$TOOL -a $ADMPIN -J $IMSI
|
||||
$TOOL -a $ADMPIN -S
|
||||
echo "================ TEST CARD PREPARED ================="
|
||||
echo ""
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
echo "Regenerating test output..."
|
||||
./prepare
|
||||
./01_auth.sh > ./01_auth.out
|
||||
./02_algo.sh > ./02_algo.out
|
||||
./03_milenage_par.sh > ./03_milenage_par.out
|
||||
./04_op_opc.sh > ./04_op_opc.out
|
||||
./05_ki.sh > ./05_ki.out
|
||||
./06_seq.sh > ./06_seq.out
|
||||
./07_mnclen.sh > ./07_mnclen.out
|
||||
|
||||
echo "Reference output regenerated!"
|
||||
echo ""
|
|
@ -0,0 +1,39 @@
|
|||
#!/bin/sh
|
||||
|
||||
# default: execute all tests
|
||||
TESTS="01_auth.sh 02_algo.sh 03_milenage_par.sh 04_op_opc.sh 05_ki.sh 06_seq.sh 07_mnclen.sh"
|
||||
|
||||
# if command line specifies some specific tests, execute only those
|
||||
if [ $# -ge 1 ]; then
|
||||
TESTS=$*
|
||||
fi
|
||||
|
||||
TMP=`tempfile`
|
||||
NUM_FAIL=0
|
||||
|
||||
# prepare test card
|
||||
./prepare
|
||||
|
||||
for T in $TESTS; do
|
||||
echo "==> Executing Testcase $T"
|
||||
EXPOUT=${T%%.sh}.out
|
||||
rm $TMP
|
||||
./$T > $TMP
|
||||
diff -u $EXPOUT $TMP
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Test $T passed"
|
||||
else
|
||||
echo "Test $T FAILED!"
|
||||
NUM_FAIL=$((NUM_FAIL+1))
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
echo
|
||||
echo "Summary: $NUM_FAIL Tests failed"
|
||||
|
||||
if [ $NUM_FAIL -gt 0 ]; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
|
@ -0,0 +1,5 @@
|
|||
TOOL=../../sysmo-isim-tool.sja5.py
|
||||
# data for the test scripts. The values have to match the SIM card inserted while executing the test
|
||||
IMSI=901700000046734
|
||||
ADMPIN=11111111 # <==== CHANGE THIS TO THE ADM1 KEY OF YOUR TEST CARD!
|
||||
KI=D7882EAE7CD14F06108C55F8E5CFFE93
|
7
utils.py
7
utils.py
|
@ -100,10 +100,13 @@ def id_to_str(table, nr):
|
|||
|
||||
|
||||
# Convert a string back to its ID by looking it up in a given table
|
||||
def str_to_id(table, string):
|
||||
def str_to_id(table, string, safe_default = None):
|
||||
dict_by_name = dict([(name.upper(), nr) for nr, name in table])
|
||||
id = dict_by_name.get(string.upper())
|
||||
|
||||
if id is None:
|
||||
raise ValueError('identifier (\"%s\") not in table %s' % (string, str(table)))
|
||||
if safe_default != None:
|
||||
return safe_default
|
||||
else:
|
||||
raise ValueError('identifier (\"%s\") not in table %s' % (string, str(table)))
|
||||
return id
|
||||
|
|
Loading…
Reference in New Issue