Skip to content

Commit 02cf2cc

Browse files
committed
Add Error message when suit sequence number larger than uint32
Ref: NCSDK-32183 Signed-off-by: Artur Hadasz <[email protected]>
1 parent 1817ea1 commit 02cf2cc

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

suit_generator/suit/manifest.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,18 @@ class SuitIndex(SuitUnion):
125125
)
126126

127127

128+
class SuitSequenceNumber(SuitUint):
129+
"""Representation of SUIT manifest sequence number value."""
130+
131+
def __init__(self, value: int) -> None:
132+
"""Init object."""
133+
if (value is not None) and ((not isinstance(value, int)) or (value < 0)):
134+
raise ValueError(f"Unable to create sequence number from {value}")
135+
if value > 2**32 - 1:
136+
raise ValueError(f"Sequence number exceeds the maximum 32 unsigned integer value: {value}")
137+
super().__init__(value)
138+
139+
128140
class SuitRepPolicyBits(SuitEnum):
129141
"""Representation of SUIT reporting policy bits."""
130142

@@ -478,7 +490,7 @@ class SuitManifest(SuitKeyValue):
478490
_metadata = Metadata(
479491
map={
480492
suit_manifest_version: SuitUint,
481-
suit_manifest_sequence_number: SuitUint,
493+
suit_manifest_sequence_number: SuitSequenceNumber,
482494
suit_common: cbstr(SuitCommon),
483495
suit_reference_uri: SuitTstr,
484496
suit_manifest_component_id: SuitComponentIdentifier,

tests/test_suit_envelope.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -916,7 +916,7 @@ def test_digest_update_after_value_change():
916916
)
917917
envelope.SuitEnvelopeTagged.value.SuitEnvelope[suit_manifest].SuitManifest[
918918
suit_manifest_sequence_number
919-
].SuitUint = 123
919+
].SuitSequenceNumber = 123
920920
envelope.update_digest()
921921
digest_bytes_after_update = (
922922
envelope.SuitEnvelopeTagged.value.SuitEnvelope[suit_authentication_wrapper]

0 commit comments

Comments
 (0)