raw
genesis                 1 #! /usr/bin/env python
genesis 2 # This is a TOY. Do not fire in anger.
genesis 3
genesis 4 import os
genesis 5 import sys
genesis 6 import base64
genesis 7 import pprint
genesis 8 from optparse import OptionParser
genesis 9
genesis 10
genesis 11 def main(argv):
genesis 12 pp = pprint.PrettyPrinter(indent=4)
genesis 13 op = OptionParser(
genesis 14 description="gen_key_pair generates pseudo-random 64 byte key pairs for use in testing alcuin")
genesis 15 op.add_option(
genesis 16 "-r", "--remote-name",
genesis 17 help="Name of remote station to include with key pair")
genesis 18 op.add_option(
genesis 19 "-l", "--local-name",
genesis 20 help="Name of local station to include with key pair")
genesis 21 op.add_option(
genesis 22 "-p", "--remote-port",
genesis 23 help="Remote station port number to include with key pair")
genesis 24 op.add_option(
genesis 25 "-q", "--local-port",
genesis 26 help="Local station port number to include with key pair")
genesis 27 op.add_option(
genesis 28 "-a", "--remote-address",
genesis 29 help="Remote station IP address to include with key pair")
genesis 30 op.add_option(
genesis 31 "-b", "--local-address",
genesis 32 help="Local station IP address to include with key pair")
genesis 33
genesis 34 (options, args) = op.parse_args(argv[1:])
genesis 35
genesis 36 if options.local_port is None:
genesis 37 options.local_port = 7778
genesis 38 if options.remote_port is None:
genesis 39 options.remote_port = 7778
genesis 40 if options.local_address is None:
genesis 41 options.local_address = ""
genesis 42 if options.remote_address is None:
genesis 43 options.remote_address = ""
genesis 44 key = generate_key()
genesis 45 my_config = {
genesis 46 "name": options.local_name,
genesis 47 "key": key,
genesis 48 "address": options.local_address,
genesis 49 "port": options.local_port
genesis 50 }
genesis 51 their_config = {
genesis 52 "name": options.remote_name,
genesis 53 "key": key,
genesis 54 "address": options.remote_address,
genesis 55 "port": options.remote_port
genesis 56 }
genesis 57 pp.pprint(my_config)
genesis 58 pp.pprint(their_config)
genesis 59
genesis 60 def generate_key():
genesis 61 return base64.b64encode(os.urandom(64))
genesis 62
genesis 63 main(sys.argv)