X-Git-Url: http://www.git.cypherpunks.ru/?p=pyderasn.git;a=blobdiff_plain;f=pyderasn.py;h=98fb8afe5501c3f6564d84f1fe16029967aac284;hp=5e2dd2b5163542a940755d1ac16625ced66ab1d4;hb=bea58bc6be2d9a95df53a4201abe858617e961c3;hpb=704190149c1953895e8ff6bed9cebb1744eaa871 diff --git a/pyderasn.py b/pyderasn.py index 5e2dd2b..98fb8af 100755 --- a/pyderasn.py +++ b/pyderasn.py @@ -3522,7 +3522,10 @@ class UTCTime(CommonString): if isinstance(value, datetime): return value.strftime(self.fmt).encode("ascii") if isinstance(value, binary_type): - value_decoded = value.decode("ascii") + try: + value_decoded = value.decode("ascii") + except (UnicodeEncodeError, UnicodeDecodeError) as err: + raise DecodeError("invalid UTCTime encoding") if len(value_decoded) == LEN_YYMMDDHHMMSSZ: try: datetime.strptime(value_decoded, self.fmt) @@ -3620,7 +3623,10 @@ class GeneralizedTime(UTCTime): self.fmt_ms if value.microsecond > 0 else self.fmt ).encode("ascii") if isinstance(value, binary_type): - value_decoded = value.decode("ascii") + try: + value_decoded = value.decode("ascii") + except (UnicodeEncodeError, UnicodeDecodeError) as err: + raise DecodeError("invalid GeneralizedTime encoding") if len(value_decoded) == LEN_YYYYMMDDHHMMSSZ: try: datetime.strptime(value_decoded, self.fmt)