return raw
return b"".join((self._expl, len_encode(len(raw)), raw))
+ def hexencode(self):
+ """Do hexadecimal encoded :py:meth:`pyderasn.Obj.encode`
+ """
+ return hexenc(self.encode())
+
def decode(
self,
data,
raise ExceedingData(len(tail))
return obj
+ def hexdecode(self, data, *args, **kwargs):
+ """Do :py:meth:`pyderasn.Obj.decode` with hexadecimal decoded data
+ """
+ return self.decode(hexdec(data), *args, **kwargs)
+
+ def hexdecod(self, data, *args, **kwargs):
+ """Do :py:meth:`pyderasn.Obj.decod` with hexadecimal decoded data
+ """
+ return self.decod(hexdec(data), *args, **kwargs)
+
@property
def expled(self):
"""See :ref:`decoding`
"""Pretty print object
:param Obj obj: object you want to pretty print
- :param oid_maps: list of ``OID <-> humand readable string`` dictionary.
- When OID from it is met, then its humand readable form
- is printed
+ :param oid_maps: list of ``str(OID) <-> human readable string`` dictionary.
+ Its human readable form is printed when OID is met
:param big_blobs: if large binary objects are met (like OctetString
values), do we need to print them too, on separate
lines
Only microsecond fractions are supported.
:py:exc:`pyderasn.DecodeError` will be raised during decoding of
higher precision values.
+
+ .. warning::
+
+ Zero year is unsupported.
"""
__slots__ = ()
tag_default = tag_encode(24)
def _strptime(self, value):
l = len(value)
if l == LEN_YYYYMMDDHHMMSSZ:
- # datetime.strptime's format: %y%m%d%H%M%SZ
+ # datetime.strptime's format: %Y%m%d%H%M%SZ
if value[-1] != "Z":
raise ValueError("non UTC timezone")
return datetime(