aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pyasn1/codec/ber/decoder.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/pyasn1/codec/ber/decoder.py b/pyasn1/codec/ber/decoder.py
index b1863ab..f2c4e4a 100644
--- a/pyasn1/codec/ber/decoder.py
+++ b/pyasn1/codec/ber/decoder.py
@@ -561,6 +561,9 @@ class UniversalConstructedTypeDecoder(AbstractConstructedDecoder):
if not namedType.openType:
continue
+ if namedType.isOptional and not asn1Object.getComponentByPosition(idx).isValue:
+ continue
+
governingValue = asn1Object.getComponentByName(
namedType.openType.name
)
@@ -697,6 +700,9 @@ class UniversalConstructedTypeDecoder(AbstractConstructedDecoder):
if not namedType.openType:
continue
+ if namedType.isOptional and not asn1Object.getComponentByPosition(idx).isValue:
+ continue
+
governingValue = asn1Object.getComponentByName(
namedType.openType.name
)