From d60aaac3ba56405102d013dc4758667839a8e5ee Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 14 Sep 2018 12:53:22 +0300 Subject: [PATCH] Omit extra EOC for ANY with indefinite length encoded DEFINED BY --- doc/news.rst | 2 ++ pyderasn.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/news.rst b/doc/news.rst index 05f5df5..d4eff69 100644 --- a/doc/news.rst +++ b/doc/news.rst @@ -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: diff --git a/pyderasn.py b/pyderasn.py index eca1825..9006462 100755 --- a/pyderasn.py +++ b/pyderasn.py @@ -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="", -- 2.44.0