diff options
author | Ilya Etingof <etingof@gmail.com> | 2017-09-07 23:10:25 +0200 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2017-09-07 23:10:25 +0200 |
commit | 5a741f4aa9af1bddf47d7a5a7d46dea443a80319 (patch) | |
tree | ecb66298f10ca620b6101efa13822c5ad3c13708 | |
parent | fd581c9becc475760314703760dbf06777b11d43 (diff) | |
parent | 0f143f8e59e656e05cd480613330732336ca9ef3 (diff) | |
download | pyasn1-git-5a741f4aa9af1bddf47d7a5a7d46dea443a80319.tar.gz |
Merge branch 'open-types-support' of github.com:etingof/pyasn1 into open-types-support
-rw-r--r-- | CHANGES.rst | 5 | ||||
-rw-r--r-- | pyasn1/codec/ber/decoder.py | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/CHANGES.rst b/CHANGES.rst index 065ac18..a569c5d 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,11 @@ Revision 0.4.1, released XX-09-2017 - ANY DEFINED BY clause support implemented +Revision 0.3.3, released XX-08-2017 +----------------------------------- + +- ANY DEFINED BY clause support implemented + Revision 0.3.4, released 07-09-2017 ----------------------------------- diff --git a/pyasn1/codec/ber/decoder.py b/pyasn1/codec/ber/decoder.py index 58c45aa..a599bef 100644 --- a/pyasn1/codec/ber/decoder.py +++ b/pyasn1/codec/ber/decoder.py @@ -505,6 +505,18 @@ class UniversalConstructedTypeDecoder(AbstractConstructedDecoder): ) asn1Object.setComponentByName(holeName, component, matchTags=False, matchConstraints=False) + if namedTypes: + for holeName, governingName, typesMap in namedTypes.holes: + holeComponent = asn1Object[holeName] + if holeComponent.isValue: + governingComponent = asn1Object[governingName] + if governingComponent in typesMap: + component, rest = decodeFun( + holeComponent.asOctets(), + asn1Spec=typesMap[governingComponent] + ) + asn1Object.setComponentByName(holeName, component, matchTags=False, matchConstraints=False) + else: asn1Object.verifySizeSpec() |