Source code for pycoin.ecdsa.intstream
from pycoin.intbytes import iterbytes, byte2int
def _to_bytes(v, length, byteorder="big"):
"""This is the same functionality as ``int.to_bytes`` in python 3"""
return v.to_bytes(length, byteorder=byteorder)
def _from_bytes(bytes, byteorder="big", signed=False):
"""This is the same functionality as ``int.from_bytes`` in python 3"""
return int.from_bytes(bytes, byteorder=byteorder, signed=signed)
if hasattr(int, "to_bytes"):
to_bytes = _to_bytes
from_bytes = _from_bytes
else:
[docs] def to_bytes(v, length, byteorder="big"):
"""This is the same functionality as ``int.to_bytes`` in python 3"""
ba = bytearray()
for i in range(length):
mod = v & 0xff
v >>= 8
ba.append(mod)
if byteorder == "big":
ba.reverse()
return bytes(ba)
[docs] def from_bytes(bytes, byteorder="big", signed=False):
"""This is the same functionality as ``int.from_bytes`` in python 3"""
if byteorder != "big":
bytes = reversed(bytes)
v = 0
for c in iterbytes(bytes):
v <<= 8
v += c
if signed and byte2int(bytes) & 0x80:
v = v - (1 << (8*len(bytes)))
return v