Skip to content

Commit fe8e488

Browse files
committed
Decode as sequence if unknown
1 parent 434d3d3 commit fe8e488

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

src/asn1.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -926,7 +926,10 @@ def _decode_value(self, cls, typ, nr, length, flags): # type: (int, int, int, i
926926
raise Error('ASN1 decoding error: the Universal tag number {} shall have a constructed encoding'.format(nr))
927927

928928
if cls != Classes.Universal:
929-
return self._decode_bytes(typ, 0, length)
929+
if typ == Types.Primitive:
930+
return self._decode_bytes(typ, nr, length)
931+
else:
932+
return self._decode_sequence(length)
930933

931934
# Primitive encoding
932935
if nr == Numbers.Boolean:
@@ -953,11 +956,9 @@ def _decode_value(self, cls, typ, nr, length, flags): # type: (int, int, int, i
953956
return value, unused
954957
return value
955958

956-
# Constructed types
957-
if nr == Numbers.Sequence:
958-
return self._decode_sequence(length)
959-
960-
return self._decode_bytes(typ, 0, length)
959+
if typ == Types.Primitive:
960+
return self._decode_bytes(typ, nr, length)
961+
return self._decode_sequence(length)
961962

962963
@staticmethod
963964
def _check_length(actual_length, expected_length): # type: (int, int) -> None

0 commit comments

Comments
 (0)