* All objects are friendly to ``pickle`` libraries
* ``PrintableString`` has ``allow_asterisk`` and ``allow_ampersand``
property
+* ``.hexencode()``, ``.hexdecode()`` and ``.hexdecod()`` methods
+ appeared, working with hexadecimal encoded data
.. _release5.6:
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`
repr(obj_expled)
list(obj_expled.pps())
pprint(obj_expled, big_blobs=True, with_decode_path=True)
- obj_expled_encoded = obj_expled.encode()
+ obj_expled_hex_encoded = obj_expled.hexencode()
ctx_copied = deepcopy(ctx_dummy)
- obj_decoded, tail = obj_expled.decode(
- obj_expled_encoded + tail_junk,
+ obj_decoded, tail = obj_expled.hexdecode(
+ obj_expled_hex_encoded + hexenc(tail_junk),
offset=offset,
ctx=ctx_copied,
)
self.assertNotEqual(obj_decoded, obj)
self.assertEqual(bool(obj_decoded), bool(obj_expled))
self.assertEqual(bool(obj_decoded), bool(obj))
- self.assertSequenceEqual(obj_decoded.encode(), obj_expled_encoded)
+ self.assertSequenceEqual(obj_decoded.hexencode(), obj_expled_hex_encoded)
self.assertSequenceEqual(obj_decoded.expl_tag, tag_expl)
self.assertEqual(obj_decoded.expl_tlen, len(tag_expl))
self.assertEqual(
self.assertEqual(obj_decoded.expl_offset, offset)
assert_exceeding_data(
self,
- lambda: obj_expled.decod(obj_expled_encoded + tail_junk),
+ lambda: obj_expled.hexdecod(obj_expled_hex_encoded + hexenc(tail_junk)),
tail_junk,
)