]> Cypherpunks.ru repositories - pyderasn.git/blobdiff - pyderasn.py
CHOICE should proxy lenindef/bered attributed of underlying object
[pyderasn.git] / pyderasn.py
index df639eb9ffef8ece9ce95660464b91bbddb8b285..2213e7804b60ae3b403dc09c25f6ad536ef08af0 100755 (executable)
@@ -384,7 +384,7 @@ constructed primitive types should be parsed successfully.
 
 * If object is encoded in BER form (not the DER one), then ``bered``
   attribute is set to True. Only ``BOOLEAN``, ``BIT STRING``, ``OCTET
-  STRING``, ``SEQUENCE``, ``SET`` can contain it.
+  STRING``, ``SEQUENCE``, ``SET``, ``SET OF`` can contain it.
 * If object has an indefinite length encoding, then its ``lenindef``
   attribute is set to True. Only ``BIT STRING``, ``OCTET STRING``,
   ``SEQUENCE``, ``SET``, ``SEQUENCE OF``, ``SET OF``, ``ANY`` can
@@ -3962,6 +3962,8 @@ class Choice(Obj):
             _decoded=(offset, 0, value.fulllen),
         )
         obj._value = (choice, value)
+        obj.lenindef = value.lenindef
+        obj.bered = value.bered
         return obj, tail
 
     def __repr__(self):
@@ -3985,6 +3987,8 @@ class Choice(Obj):
             llen=self.llen,
             vlen=self.vlen,
             expl_lenindef=self.expl_lenindef,
+            lenindef=self.lenindef,
+            bered=self.bered,
         )
         if self.ready:
             yield self.value.pps(decode_path=decode_path + (self.choice,))