import os import struct from calendar import timegm from datetime import datetime def utc_timestamp(): return timegm(datetime.utcnow().utctimetuple()) 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