From: Sergey Matveev Date: Fri, 14 Sep 2018 09:53:22 +0000 (+0300) Subject: Omit extra EOC for ANY with indefinite length encoded DEFINED BY X-Git-Tag: 4.2~2 X-Git-Url: http://www.git.cypherpunks.ru/?p=pyderasn.git;a=commitdiff_plain;h=d60aaac3ba56405102d013dc4758667839a8e5ee Omit extra EOC for ANY with indefinite length encoded DEFINED BY --- 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="",