A basic utility to transfer text, using end-to-end encryption. The utility is built using socket.io, to connect clients to the server and transfer text, and uses Node.js for the server.
You can start the server, by using the following:
node server.jsThe server should then start running on http://localhost:3000
Then, to connect as a client, you can run
node client.jsYou'll then be prompted to enter a room name, then your username will be assigned as your socket ID. After another user connects to the same room, both users' public keys will be stored and sent to each other, which are used to encrypt messages.
To leave the room, enter .exit.
On running client.js, you'll be prompted to enter a room name.

After entering a room name, you'll be assigned a username, which is your socket ID

We can also see the users joining the server.

After another client joins the same room, the clients' public keys are exchanged

Users can then have a lovely conversation about whatever they please.

All the data being sent over to the server is encrypted using state-of-the-art, end-to-end encryption, so even if the users are being spied on, the data can't be decrypted without the user's private key.

After a user leaves (by entering .exit), the other user in the room will be notified.

