diff options
author | Ilya Etingof <etingof@gmail.com> | 2019-11-23 09:53:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-23 09:53:28 +0100 |
commit | 788af3c44edc2ebd079eda3f7a4ae2f9931446fd (patch) | |
tree | 2d06cd815b392ca7f075d4c51b76451677a35742 /pyasn1/codec/der/encoder.py | |
parent | fdd0bd66f66e5f7832287ff0994f4219632935a7 (diff) | |
parent | 317452bd76d711c35a1bbdda54879606dd693268 (diff) | |
download | pyasn1-git-788af3c44edc2ebd079eda3f7a4ae2f9931446fd.tar.gz |
Merge pull request #1 from janpipek/support-incomplete-substrate
Turn BER decoder into a suspendible generator
Diffstat (limited to 'pyasn1/codec/der/encoder.py')
-rw-r--r-- | pyasn1/codec/der/encoder.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/pyasn1/codec/der/encoder.py b/pyasn1/codec/der/encoder.py index 90e982d..1a6af82 100644 --- a/pyasn1/codec/der/encoder.py +++ b/pyasn1/codec/der/encoder.py @@ -8,7 +8,7 @@ from pyasn1 import error from pyasn1.codec.cer import encoder from pyasn1.type import univ -__all__ = ['encode'] +__all__ = ['Encoder', 'encode'] class SetEncoder(encoder.SetEncoder): @@ -42,23 +42,34 @@ class SetEncoder(encoder.SetEncoder): else: return compType.tagSet -tagMap = encoder.tagMap.copy() -tagMap.update({ + +TAG_MAP = encoder.TAG_MAP.copy() + +TAG_MAP.update({ # Set & SetOf have same tags univ.Set.tagSet: SetEncoder() }) -typeMap = encoder.typeMap.copy() -typeMap.update({ +TYPE_MAP = encoder.TYPE_MAP.copy() + +TYPE_MAP.update({ # Set & SetOf have same tags univ.Set.typeId: SetEncoder() }) -class Encoder(encoder.Encoder): +class SingleItemEncoder(encoder.SingleItemEncoder): fixedDefLengthMode = True fixedChunkSize = 0 + TAG_MAP = TAG_MAP + TYPE_MAP = TYPE_MAP + + +class Encoder(encoder.Encoder): + SINGLE_ITEM_ENCODER = SingleItemEncoder + + #: Turns ASN.1 object into DER octet stream. #: #: Takes any ASN.1 object (e.g. :py:class:`~pyasn1.type.base.PyAsn1Item` derivative) @@ -104,4 +115,4 @@ class Encoder(encoder.Encoder): #: >>> encode(seq) #: b'0\t\x02\x01\x01\x02\x01\x02\x02\x01\x03' #: -encode = Encoder(tagMap, typeMap) +encode = Encoder() |