diff options
Diffstat (limited to 'tests/utils.py')
-rw-r--r-- | tests/utils.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/utils.py b/tests/utils.py index bf74e78..7722702 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -1,4 +1,5 @@ import os +import struct from calendar import timegm from datetime import datetime @@ -27,3 +28,23 @@ def utc_timestamp(): def key_path(key_name): return os.path.join(os.path.dirname(os.path.realpath(__file__)), 'keys', key_name) + +# Borrowed from `cryptography` +if hasattr(int, "from_bytes"): + int_from_bytes = int.from_bytes +else: + def int_from_bytes(data, byteorder, signed=False): + assert byteorder == 'big' + assert not signed + + if len(data) % 4 != 0: + data = (b'\x00' * (4 - (len(data) % 4))) + data + + result = 0 + + while len(data) > 0: + digit, = struct.unpack('>I', data[:4]) + result = (result << 32) + digit + data = data[4:] + + return result |