- Replace RSA key exchange with SRP (Secure Remote Password) - Password never transmitted over network - Add unit tests for endpoints - Fix datetime.UTC compatibility for Python < 3.11 - Fix logger.exception usage - Update README with new auth flow diagram
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import argparse
|
|
from cmd_chat.server.server import run_server
|
|
from cmd_chat.client.client import Client
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description="Command-line chat application")
|
|
subparsers = parser.add_subparsers(dest="command", required=True)
|
|
|
|
serve_p = subparsers.add_parser("serve", help="Run server")
|
|
serve_p.add_argument("ip_address")
|
|
serve_p.add_argument("port")
|
|
serve_p.add_argument("--password", "-p", required=True)
|
|
|
|
connect_p = subparsers.add_parser("connect", help="Connect to server")
|
|
connect_p.add_argument("ip_address")
|
|
connect_p.add_argument("port")
|
|
connect_p.add_argument("username")
|
|
connect_p.add_argument("password")
|
|
|
|
args = parser.parse_args()
|
|
|
|
if args.command == "serve":
|
|
run_server(host=args.ip_address, port=int(args.port), password=args.password)
|
|
elif args.command == "connect":
|
|
Client(
|
|
server=args.ip_address,
|
|
port=int(args.port),
|
|
username=args.username,
|
|
password=args.password,
|
|
).run()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|