diff --git a/suit_generator/suit/manifest.py b/suit_generator/suit/manifest.py index 67c1e72..0750fe1 100644 --- a/suit_generator/suit/manifest.py +++ b/suit_generator/suit/manifest.py @@ -107,6 +107,8 @@ suit_candidate_verification, suit_uninstall, suit_text, + suit_synchronous_invoke, + suit_timeout, ) from suit_generator.logger import log_call @@ -265,6 +267,17 @@ class SuitParameterVersion(SuitKeyValueTuple): ) +class SuitParameterInvokeArgs(SuitKeyValue): + """Representation of SUIT version parameter.""" + + _metadata = Metadata( + map={ + suit_synchronous_invoke: SuitBool, + suit_timeout: SuitUint, + } + ) + + class SuitParameters(SuitKeyValue): """Representation of SUIT parameters.""" @@ -281,7 +294,7 @@ class SuitParameters(SuitKeyValue): suit_parameter_encryption_info: SuitEncryptionInfo, suit_parameter_uri: SuitTstr, suit_parameter_source_component: SuitUint, - suit_parameter_invoke_args: SuitBstr, + suit_parameter_invoke_args: cbstr(SuitParameterInvokeArgs), suit_parameter_device_identifier: SuitUUID, suit_parameter_version: cbstr(SuitParameterVersion), } diff --git a/suit_generator/suit/types/keys.py b/suit_generator/suit/types/keys.py index 8fba815..e98721d 100644 --- a/suit_generator/suit/types/keys.py +++ b/suit_generator/suit/types/keys.py @@ -769,3 +769,17 @@ class suit_send_sysinfo_failure(suit_key): id = 8 name = "suit-send-sysinfo-failure" + + +class suit_synchronous_invoke(suit_key): + """Synchronous invoke argument.""" + + id = 1 + name = "suit-synchronous-invoke" + + +class suit_timeout(suit_key): + """Timeout invoke argument.""" + + id = 2 + name = "suit-timeout"