#!/usr/bin/env python import argparse import os from typing import Tuple import zmq.auth # @brief Creates a new keypair for ZMQ encryption # @param[in] directory The location where to store the keys # @return The public and private key tuple def KeyPairCreator(directory: str, server: bool) -> Tuple[str, str]: if not server: print('Creating a new pair for a client...') target = 'client' else: print('Creating a new pair for the server...') target = 'server' public, private = zmq.auth.create_certificates(directory, target) return (public, private) def str2bool(value): if isinstance(value, bool): return value elif value.lower() in ('yes', 'true', 't', 'y', '1'): return True elif value.lower() in ('no', 'false', 'f', 'n', '0'): return False else: raise argparse.ArgumentTypeError('Boolean value expected') if __name__ == '__main__': # create the commandline parser parser = argparse.ArgumentParser(description='Create a new key-value pair') parser.add_argument('directory', help='Directory where to store the key pair') parser.add_argument('--server', default=False, action='store_true', help="Creates server key pair") args = parser.parse_args() # create the directory if it does not exist if not os.path.exists(args.directory): os.makedirs(args.directory) # create the keys KeyPairCreator(args.directory, args.server)