1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #!/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)
|