diff options
author | Yesudeep Mangalapilly <yesudeep@gmail.com> | 2011-08-11 02:38:13 +0530 |
---|---|---|
committer | Yesudeep Mangalapilly <yesudeep@gmail.com> | 2011-08-11 02:38:13 +0530 |
commit | 2eeea2ca19fdea9f354bbec685e168fee370d19f (patch) | |
tree | d780c2c3d49075c3c26ce587c17e5b1c9921f5b0 /rsa/transform.py | |
parent | 0a0116f248a79b404be02689498889e21b0b7dde (diff) | |
download | rsa-2eeea2ca19fdea9f354bbec685e168fee370d19f.tar.gz |
Porting to Python 3 complete. All tests except pyasn1 stuff pass.
Diffstat (limited to 'rsa/transform.py')
-rw-r--r-- | rsa/transform.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/rsa/transform.py b/rsa/transform.py index 2778729..57629ec 100644 --- a/rsa/transform.py +++ b/rsa/transform.py @@ -19,12 +19,13 @@ From bytes to a number, number to bytes, etc. ''' -import types import binascii from rsa import common +from rsa._compat import byte, is_integer, b -def bytes2int(bytes): + +def bytes2int(raw_bytes): r"""Converts a list of bytes or an 8-bit string to an integer. When using unicode strings, encode it to some encoding like UTF8 first. @@ -36,7 +37,8 @@ def bytes2int(bytes): """ - return int(binascii.hexlify(bytes), 16) + return int(binascii.hexlify(raw_bytes), 16) + def int2bytes(number, block_size=None): r'''Converts a number to a string of bytes. @@ -68,9 +70,9 @@ def int2bytes(number, block_size=None): ''' # Type checking - if type(number) not in (types.LongType, types.IntType): + if not is_integer(number): raise TypeError("You must pass an integer for 'number', not %s" % - number.__class__) + type(number).__name__) if number < 0: raise ValueError('Negative numbers cannot be used: %i' % number) @@ -83,18 +85,18 @@ def int2bytes(number, block_size=None): 'is %i' % (needed_bytes, block_size)) # Convert the number to bytes. - bytes = [] + raw_bytes = [] while number > 0: - bytes.insert(0, chr(number & 0xFF)) + raw_bytes.insert(0, byte(number & 0xFF)) number >>= 8 # Pad with zeroes to fill the block if block_size is not None: - padding = (block_size - needed_bytes) * '\x00' + padding = (block_size - needed_bytes) * b('\x00') else: - padding = '' + padding = b('') - return padding + ''.join(bytes) + return padding + b('').join(raw_bytes) if __name__ == '__main__': |