diff options
Diffstat (limited to 'pyasn1/codec')
-rw-r--r-- | pyasn1/codec/ber/decoder.py | 6 |
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 ) |