Skip to content

0x5eba/GoChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoChat

A secure Go chat client-server end-to-end with RSA 2048 and AES 256 using WebSocket

How it works

Start the server for the clients that will connect, then when 2 or more clients are connected you can communicate each other.

When you start a conversation the AES key to encrypt the messages is passed between client, through the server, but the server can't decrypt the message, thanks to RSA property, becuase it doesn't own the private key of the receiver.

After that, every message sent by the 2 clients is end-to-end, and no one a part the two who exchanged the keys can decrypt the messages.

Guide step-by-step

Installation

$ git clone https://github.com/0x5eba/GoChat.git
$ cd GoChat
$ ./init.sh

Server

To start the server sudo ./chat s and you should see

INFO[0000] Starting server on port 3141

Client

To start the server sudo ./chat c [name] for example sudo ./chat c carl

To send a message to another client use the command chat

For example if Pippo want to send a message to Pluto

>>> chat
To whom do you want to write?
   pippo
 ❯ pluto
> Hello Pluto

Then Pluto will receive

INFO[0001] [pippo] : Hello Pluto

About

Secure Go chat client-server end-to-end with RSA 2048 and AES 256 using Websocket

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors