diff --git a/README.MD b/README.MD index da1c1c2..34e2359 100644 --- a/README.MD +++ b/README.MD @@ -1,24 +1,25 @@ -# Welcome to command line chat project [CMD CHAT] +# CMD CHAT -![Alt Text](https://static.wikia.nocookie.net/listofdeaths/images/b/b3/Tyler_Durden.webp/revision/latest?cb=20220909010337) +A console chat with encrypted messaging. -# What is this? +## How it works -It is a console chat with message encryption. +1. The client generates a private key. +2. The server generates a symmetric key. +3. The client sends its public key to the server. +4. The server encrypts the symmetric key and sends it back to the client. +5. The client encrypts the private key. +6. From then on, communication with the server happens via the symmetric key. -# How does it work? +## Installation & Run -All you need to do is run a web server and connect to it via a client. - -# Run - -### Create and activate a virtual environment in Python +### Option 1: Python ``` pip install secured_console_chat ``` -``` +```python import asyncio import cmd_chat @@ -26,43 +27,22 @@ if __name__ == '__main__': asyncio.run(cmd_chat.run()) ``` +### Option 2: CLI -### Or - -Start server: +Start the server: ``` -cmd_chat serve localhost 5000 +cmd_chat serve localhost 5000 ``` -Connect to server: +Connect to the 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. - -# Example +## Example ![Alt Text](example.gif) -# Known bugs -* 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. - -# 1.1.22 - -- 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 \ No newline at end of file