Skip to content

A secured real-time message and file exchanger (main repo)

Notifications You must be signed in to change notification settings

vadniks/Exchatge

Repository files navigation

Exchatge - a secured message & file exchanger

_______ _     _ _______ _     _ _______ _______  ______ _______
|______  \___/  |       |_____| |_____|    |    |  ____ |______
|______ _/   \_ |_____  |     | |     |    |    |_____| |______

Icon

The purpose of this project is to easily exchange messages via binary protocol using an encrypted communication channel in the realtime. Each client-to-server connection is encrypted, each client-to-client connection is also encrypted. All messages go through server, but because of presence of the second layer of encryption between clients, any interception of messages by the server or anyone else is useless. File exchange is supported.

Key features:

  • Double end-to-end encryption (each connection between client and server is encrypted, as well as the each conversation channel between 2 clients),
  • Encrypted file exchanging via binary protocol,
  • Authentication and authorization (each client has login and password, ephemeral token based protection),
  • User roles (one admin and $(MAX_USERS_COUNT - 1) users),
  • Asynchronous execution,
  • Missing messages fetching,
  • Graphical user interface,
  • Human-readable options file,
  • Multiple active simultaneous connections,
  • Digital signatures checking between clients and server,
  • Broadcasting (only one layer of encryption - between client and server, from admin to all others),
  • Instant messages delivery,
  • Different languages support.

The project is currently in Beta

View submodules for clients & server.

Documentation

TODO: IDEF0, UML, IDEF1X...