]> Cypherpunks.ru repositories - pyderasn.git/commitdiff
Omit extra EOC for ANY with indefinite length encoded DEFINED BY
authorSergey Matveev <stargrave@stargrave.org>
Fri, 14 Sep 2018 09:53:22 +0000 (12:53 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 14 Sep 2018 09:53:22 +0000 (12:53 +0300)
doc/news.rst
pyderasn.py

index 05f5df56b43ef8e42393c2daea023ebb2e26621b..d4eff6979f8e841373c0c473070bdf5c96b2bc10 100644 (file)
@@ -8,6 +8,8 @@ News
 * Removed ``lenindef``, ``ber_encoded`` attributes from the Choice --
   they must be taken from underlying value, as Choice does not have its
   own encoding
+* Do not yield extra EOC PP for Any, having indefinite length encoding
+  and containing autodecoded DEFINED BY value
 
 .. _release4.1:
 
index eca1825efd03429bcb88c3d7ef265644339565b9..9006462dd3f2cea556957e81e4dff5aa912208e8 100755 (executable)
@@ -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="",