aboutsummaryrefslogtreecommitdiff
path: root/pyasn1
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2017-11-23 01:26:53 +0100
committerGitHub <noreply@github.com>2017-11-23 01:26:53 +0100
commit3d7f65f52b1a4b38f7ca561d460a78125dd31df1 (patch)
tree75dc1f31a5eb88702223cfa9ef0ca85f1cb493e6 /pyasn1
parentfa6dda62e11698a2b0f6482c41e7d1d83d6c6404 (diff)
downloadpyasn1-3d7f65f52b1a4b38f7ca561d460a78125dd31df1.tar.gz
relax open type field type check on assignment (#105)
Diffstat (limited to 'pyasn1')
-rw-r--r--pyasn1/codec/ber/decoder.py12
-rw-r--r--pyasn1/type/univ.py3
2 files changed, 4 insertions, 11 deletions
diff --git a/pyasn1/codec/ber/decoder.py b/pyasn1/codec/ber/decoder.py
index 2607d51..9c9195c 100644
--- a/pyasn1/codec/ber/decoder.py
+++ b/pyasn1/codec/ber/decoder.py
@@ -583,11 +583,7 @@ class UniversalConstructedTypeDecoder(AbstractConstructedDecoder):
asn1Spec=openType
)
- asn1Object.setComponentByPosition(
- idx, component,
- matchTags=False,
- matchConstraints=False
- )
+ asn1Object.setComponentByPosition(idx, component)
else:
asn1Object.verifySizeSpec()
@@ -723,11 +719,7 @@ class UniversalConstructedTypeDecoder(AbstractConstructedDecoder):
)
if component is not eoo.endOfOctets:
- asn1Object.setComponentByPosition(
- idx, component,
- matchTags=False,
- matchConstraints=False
- )
+ asn1Object.setComponentByPosition(idx, component)
else:
asn1Object.verifySizeSpec()
diff --git a/pyasn1/type/univ.py b/pyasn1/type/univ.py
index 6e5824c..ef63ba8 100644
--- a/pyasn1/type/univ.py
+++ b/pyasn1/type/univ.py
@@ -2352,7 +2352,8 @@ class SequenceAndSetBase(base.AbstractConstructedAsn1Item):
subComponentType.isSuperTypeOf)
if not subtypeChecker(value, matchTags, matchConstraints):
- raise error.PyAsn1Error('Component value is tag-incompatible: %r vs %r' % (value, componentType))
+ if not componentType[idx].openType:
+ raise error.PyAsn1Error('Component value is tag-incompatible: %r vs %r' % (value, componentType))
if verifyConstraints and value.isValue:
try: