It is a console chat with message encryption.
All you need to do is run a web server and connect to it via a client.
pip install secured_console_chat
import asyncio
import cmd_chat
if __name__ == '__main__':
asyncio.run(cmd_chat.run())
Start server:
cmd_chat serve localhost 5000
Connect to server:
cmd_chat connect localhost 5000 tyler
How does encryption work?
- The client generates a private key.
- The server generates a symmetric key.
- The client sends the public key to the server.
- The server encrypts the symmetric key and sends it to the client.
- The client encrypts the private key.
- After that, communication with the server occurs via the symmetric key.
- Sometime WS just drop connection
- Client input message problem. To start input, you need to press enter first, only after that you got pop up with message. Tried to fix, but nothing worked.
- Renderer logics have been separated
- A new renderer have been implemented
- Thread closing logics have been changed. Now, it is easy to quit from the client without any unexpected behavior
- Now, displaying messages is limited to the last N messages. The default value is 5
- WS dropped connection, probably fixed