mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-26 23:38:32 +03:00
global_platform: refactor gen_install_parameters()
Change-Id: I8756fb38016cdf0527fe2e21edb44381d1dc557f
This commit is contained in:
@@ -17,6 +17,8 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
from osmocom.construct import *
|
from osmocom.construct import *
|
||||||
from osmocom.utils import *
|
from osmocom.utils import *
|
||||||
from osmocom.tlv import *
|
from osmocom.tlv import *
|
||||||
@@ -46,7 +48,9 @@ class InstallParams(TLV_IE_Collection, nested=[AppSpecificParams, SystemSpecific
|
|||||||
# GPD_SPE_013, table 11-49
|
# GPD_SPE_013, table 11-49
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def gen_install_parameters(non_volatile_memory_quota:int, volatile_memory_quota:int, stk_parameter:str):
|
def gen_install_parameters(non_volatile_memory_quota: Optional[int] = None,
|
||||||
|
volatile_memory_quota: Optional[int] = None,
|
||||||
|
stk_parameter: Optional[str] = None):
|
||||||
|
|
||||||
# GPD_SPE_013, table 11-49
|
# GPD_SPE_013, table 11-49
|
||||||
|
|
||||||
@@ -54,19 +58,15 @@ def gen_install_parameters(non_volatile_memory_quota:int, volatile_memory_quota:
|
|||||||
install_params = InstallParams()
|
install_params = InstallParams()
|
||||||
install_params_dict = [{'app_specific_params': None}]
|
install_params_dict = [{'app_specific_params': None}]
|
||||||
|
|
||||||
#Conditional
|
system_specific_params = []
|
||||||
if non_volatile_memory_quota and volatile_memory_quota and stk_parameter:
|
if non_volatile_memory_quota is not None:
|
||||||
system_specific_params = []
|
system_specific_params.append({'non_volatile_memory_quota': non_volatile_memory_quota})
|
||||||
#Optional
|
if volatile_memory_quota is not None:
|
||||||
if non_volatile_memory_quota:
|
system_specific_params.append({'volatile_memory_quota': volatile_memory_quota})
|
||||||
system_specific_params += [{'non_volatile_memory_quota': non_volatile_memory_quota}]
|
if stk_parameter is not None:
|
||||||
#Optional
|
system_specific_params.append({'stk_parameter': stk_parameter})
|
||||||
if volatile_memory_quota:
|
if system_specific_params:
|
||||||
system_specific_params += [{'volatile_memory_quota': volatile_memory_quota}]
|
install_params_dict.append({'system_specific_params': system_specific_params})
|
||||||
#Optional
|
|
||||||
if stk_parameter:
|
|
||||||
system_specific_params += [{'stk_parameter': stk_parameter}]
|
|
||||||
install_params_dict += [{'system_specific_params': system_specific_params}]
|
|
||||||
|
|
||||||
install_params.from_dict(install_params_dict)
|
install_params.from_dict(install_params_dict)
|
||||||
return b2h(install_params.to_bytes())
|
return b2h(install_params.to_bytes())
|
||||||
|
|||||||
@@ -295,7 +295,7 @@ class Install_param_Test(unittest.TestCase):
|
|||||||
load_parameters = gen_install_parameters(256, 256, '010001001505000000000000000000000000')
|
load_parameters = gen_install_parameters(256, 256, '010001001505000000000000000000000000')
|
||||||
self.assertEqual(load_parameters, 'c900ef1cc8020100c7020100ca12010001001505000000000000000000000000')
|
self.assertEqual(load_parameters, 'c900ef1cc8020100c7020100ca12010001001505000000000000000000000000')
|
||||||
|
|
||||||
load_parameters = gen_install_parameters(None, None, '')
|
load_parameters = gen_install_parameters()
|
||||||
self.assertEqual(load_parameters, 'c900')
|
self.assertEqual(load_parameters, 'c900')
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user