"""Script that generates a signed path for testing purposes.""" import argparse import base64 import binascii import datetime import hashlib import hmac parser = argparse.ArgumentParser() parser.add_argument('--path', help='The requested path', required=True) parser.add_argument('--secret', help='The shared secret', required=True) args = parser.parse_args() timestamp = int(datetime.datetime.now().timestamp()) if '?' in args.path: path = '{0}×tamp={1}'.format(args.path, timestamp) else: path = '{0}?timestamp={1}'.format(args.path, timestamp) path = bytes(path.encode('utf-8')) secret = bytes(args.secret.encode('utf-8')) token = binascii.hexlify(hmac.new(secret, path, hashlib.sha1).digest()) encoded_token = base64.b64encode(token).decode('utf-8') signed_path = '{0}&token={1}'.format(path.decode('utf-8'), encoded_token) print('Your signed path is: ', signed_path)