]> Cypherpunks.ru repositories - pyderasn.git/blobdiff - pyderasn.py
Omit extra EOC for ANY with indefinite length encoded DEFINED BY
[pyderasn.git] / pyderasn.py
index 88579558b731b42143a1363c07226e54f274a87e..9006462dd3f2cea556957e81e4dff5aa912208e8 100755 (executable)
@@ -958,16 +958,16 @@ class Obj(object):
         """
         raise NotImplementedError()
 
+    def _assert_ready(self):
+        if not self.ready:
+            raise ObjNotReady(self.__class__.__name__)
+
     @property
     def bered(self):
         """Is either object or any elements inside is BER encoded?
         """
         return self.expl_lenindef or self.lenindef or self.ber_encoded
 
-    def _assert_ready(self):
-        if not self.ready:
-            raise ObjNotReady(self.__class__.__name__)
-
     @property
     def decoded(self):
         """Is object decoded?
@@ -1170,7 +1170,10 @@ class Obj(object):
         return self.expl_tlvlen if self.expled else self.tlvlen
 
     def pps_lenindef(self, decode_path):
-        if self.lenindef:
+        if self.lenindef and not (
+            getattr(self, "defined", None) is not None and
+            self.defined[1].lenindef
+        ):
             yield _pp(
                 asn1_type_name="EOC",
                 obj_name="",