]> Cypherpunks.ru repositories - pyderasn.git/blobdiff - pyderasn.py
Integer.tohex()
[pyderasn.git] / pyderasn.py
index dbe706640e02878c438bafe8799efdb07d58bba3..162c1404a3af15ddbae345c63d391f8d34fb45e2 100755 (executable)
@@ -917,7 +917,7 @@ _______
 Integer
 _______
 .. autoclass:: pyderasn.Integer
-   :members: __init__, named
+   :members: __init__, named, tohex
 
 BitString
 _________
@@ -1185,7 +1185,7 @@ except ImportError:  # pragma: no cover
     def colored(what, *args, **kwargs):
         return what
 
-__version__ = "7.3"
+__version__ = "7.4"
 
 __all__ = (
     "agg_octet_string",
@@ -2378,13 +2378,8 @@ def pp_console_row(
                     cols.append(_colourize("(%s)" % oid_name, "green", with_colours))
                     break
         if pp.asn1_type_name == Integer.asn1_type_name:
-            hex_repr = hex(int(pp.obj._value))[2:].upper()
-            if len(hex_repr) % 2 != 0:
-                hex_repr = "0" + hex_repr
             cols.append(_colourize(
-                "(%s)" % colonize_hex(hex_repr),
-                "green",
-                with_colours,
+                "(%s)" % colonize_hex(pp.obj.tohex()), "green", with_colours,
             ))
     if with_blob:
         if pp.blob.__class__ == binary_type:
@@ -2851,6 +2846,16 @@ class Integer(Obj):
         self._assert_ready()
         return int(self._value)
 
+    def tohex(self):
+        """Hexadecimal representation
+
+        Use :py:func:`pyderasn.colonize_hex` for colonizing it.
+        """
+        hex_repr = hex(int(self))[2:].upper()
+        if len(hex_repr) % 2 != 0:
+            hex_repr = "0" + hex_repr
+        return hex_repr
+
     def __hash__(self):
         self._assert_ready()
         return hash(b"".join((
@@ -2942,7 +2947,6 @@ class Integer(Obj):
                 else:
                     break
         return octets
-        return b"".join((self.tag, len_encode(len(octets)), octets))
 
     def _encode(self):
         octets = self._encode_payload()
@@ -7495,4 +7499,5 @@ def main():  # pragma: no cover
 
 
 if __name__ == "__main__":
+    from pyderasn import *
     main()