diff options
Diffstat (limited to 'pyasn1/codec/cer/encoder.py')
-rw-r--r-- | pyasn1/codec/cer/encoder.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/pyasn1/codec/cer/encoder.py b/pyasn1/codec/cer/encoder.py index 935b696..9e6cdac 100644 --- a/pyasn1/codec/cer/encoder.py +++ b/pyasn1/codec/cer/encoder.py @@ -10,7 +10,7 @@ from pyasn1.compat.octets import str2octs, null from pyasn1.type import univ from pyasn1.type import useful -__all__ = ['encode'] +__all__ = ['Encoder', 'encode'] class BooleanEncoder(encoder.IntegerEncoder): @@ -234,8 +234,9 @@ class SequenceEncoder(encoder.SequenceEncoder): omitEmptyOptionals = True -tagMap = encoder.tagMap.copy() -tagMap.update({ +TAG_MAP = encoder.TAG_MAP.copy() + +TAG_MAP.update({ univ.Boolean.tagSet: BooleanEncoder(), univ.Real.tagSet: RealEncoder(), useful.GeneralizedTime.tagSet: GeneralizedTimeEncoder(), @@ -245,8 +246,9 @@ tagMap.update({ univ.Sequence.typeId: SequenceEncoder() }) -typeMap = encoder.typeMap.copy() -typeMap.update({ +TYPE_MAP = encoder.TYPE_MAP.copy() + +TYPE_MAP.update({ univ.Boolean.typeId: BooleanEncoder(), univ.Real.typeId: RealEncoder(), useful.GeneralizedTime.typeId: GeneralizedTimeEncoder(), @@ -259,10 +261,18 @@ typeMap.update({ }) -class Encoder(encoder.Encoder): +class SingleItemEncoder(encoder.SingleItemEncoder): fixedDefLengthMode = False fixedChunkSize = 1000 + TAG_MAP = TAG_MAP + TYPE_MAP = TYPE_MAP + + +class Encoder(encoder.Encoder): + SINGLE_ITEM_ENCODER = SingleItemEncoder + + #: Turns ASN.1 object into CER octet stream. #: #: Takes any ASN.1 object (e.g. :py:class:`~pyasn1.type.base.PyAsn1Item` derivative) @@ -308,6 +318,6 @@ class Encoder(encoder.Encoder): #: >>> encode(seq) #: b'0\x80\x02\x01\x01\x02\x01\x02\x02\x01\x03\x00\x00' #: -encode = Encoder(tagMap, typeMap) +encode = Encoder() # EncoderFactory queries class instance and builds a map of tags -> encoders |