From 1822faabc359cd416dddb9a56fd03f20d9651e09 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 9 Oct 2017 12:41:13 +0300 Subject: [PATCH] Constants for datetime strings length --- pyderasn.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pyderasn.py b/pyderasn.py index e3eec94..fb043fe 100755 --- a/pyderasn.py +++ b/pyderasn.py @@ -2721,6 +2721,11 @@ class IA5String(CommonString): asn1_type_name = "IA5" +LEN_YYMMDDHHMMSSZ = len("YYMMDDHHMMSSZ") +LEN_YYYYMMDDHHMMSSDMZ = len("YYYYMMDDHHMMSSDMZ") +LEN_YYYYMMDDHHMMSSZ = len("YYYYMMDDHHMMSSZ") + + class UTCTime(CommonString): """``UTCTime`` datetime type @@ -2787,7 +2792,7 @@ class UTCTime(CommonString): return value.strftime(self.fmt).encode("ascii") if isinstance(value, binary_type): value_decoded = value.decode("ascii") - if len(value_decoded) == 2 + 2 + 2 + 2 + 2 + 2 + 1: + if len(value_decoded) == LEN_YYMMDDHHMMSSZ: try: datetime.strptime(value_decoded, self.fmt) except ValueError: @@ -2878,7 +2883,7 @@ class GeneralizedTime(UTCTime): ).encode("ascii") if isinstance(value, binary_type): value_decoded = value.decode("ascii") - if len(value_decoded) == 4 + 2 + 2 + 2 + 2 + 2 + 1: + if len(value_decoded) == LEN_YYYYMMDDHHMMSSZ: try: datetime.strptime(value_decoded, self.fmt) except ValueError: @@ -2886,7 +2891,7 @@ class GeneralizedTime(UTCTime): "invalid GeneralizedTime (without ms) format", ) return value - elif len(value_decoded) >= 4 + 2 + 2 + 2 + 2 + 2 + 1 + 1 + 1: + elif len(value_decoded) >= LEN_YYYYMMDDHHMMSSDMZ: try: datetime.strptime(value_decoded, self.fmt_ms) except ValueError: @@ -2903,7 +2908,7 @@ class GeneralizedTime(UTCTime): def todatetime(self): value = self._value.decode("ascii") - if len(value) == 4 + 2 + 2 + 2 + 2 + 2 + 1: + if len(value) == LEN_YYYYMMDDHHMMSSZ: return datetime.strptime(value, self.fmt) return datetime.strptime(value, self.fmt_ms) -- 2.44.0