| 12345678910111213141516171819202122232425262728293031323334 |
- 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
|