diff options
author | elie <elie> | 2015-06-05 16:35:59 +0000 |
---|---|---|
committer | elie <elie> | 2015-06-05 16:35:59 +0000 |
commit | c7cf80b63175faf8101ba546c9a302e83f63663d (patch) | |
tree | 788a922cabf86c8e1285e66dec981394c4aebe0b | |
parent | 8e729a36b30c3becfbfe424748650802b225cd8f (diff) | |
download | pyasn1-c7cf80b63175faf8101ba546c9a302e83f63663d.tar.gz |
fixes to GeneralizedTime and UTCTime format constraints
-rw-r--r-- | pyasn1/codec/cer/encoder.py | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/pyasn1/codec/cer/encoder.py b/pyasn1/codec/cer/encoder.py index dad5955..2dd928a 100644 --- a/pyasn1/codec/cer/encoder.py +++ b/pyasn1/codec/cer/encoder.py @@ -38,16 +38,17 @@ class GeneralizedTimeEncoder(OctetStringEncoder): def encodeValue(self, encodeFun, client, defMode, maxChunkSize): octets = client.asOctets() if '+' in octets: - raise error.PyAsn1Error('Must be UTC time') - if '.' not in octets: - raise error.PyAsn1Error('Format must include fraction of second') + raise error.PyAsn1Error('Must be UTC time: %r' % octets) +# This breaks too many existing data items +# if '.' not in octets: +# raise error.PyAsn1Error('Format must include fraction of second: %r' % octets) if octets and octets[-1] != self.zchar: - raise error.PyAsn1Error('Missing timezone specifier') - if len(octets) < 16: - raise error.PyAsn1Error('Bad UTC time length') + raise error.PyAsn1Error('Missing timezone specifier: %r' % octets) + if len(octets) < 15: + raise error.PyAsn1Error('Bad UTC time length: %r' % octets) if octets[-2] == self.zero or \ octets[-3] != self.zero and octets[-2] == self.zero: - raise error.PyAsn1Error('Meningless zero in fraction of second') + raise error.PyAsn1Error('Meningless zero in fraction of second: %r' % octets) return encoder.OctetStringEncoder.encodeValue( self, encodeFun, client, defMode, 1000 ) @@ -57,13 +58,11 @@ class UTCTimeEncoder(encoder.OctetStringEncoder): def encodeValue(self, encodeFun, client, defMode, maxChunkSize): octets = client.asOctets() if '+' in octets: - raise error.PyAsn1Error('Must be UTC time') - if '.' in octets: - raise error.PyAsn1Error('Must be no fraction of second') + raise error.PyAsn1Error('Must be UTC time: %r' % octets) if octets and octets[-1] != self.zchar: client = client.clone(octets + self.zchar) if len(client) != 13: - raise error.PyAsn1Error('Bad UTC time length') + raise error.PyAsn1Error('Bad UTC time length: %r' % client) return encoder.OctetStringEncoder.encodeValue( self, encodeFun, client, defMode, 1000 ) |