Giter VIP home page Giter VIP logo

enigma-protocol's Introduction

Logo

Enigma Protocol Python Server Github Pages

Hello Friends, I built an end to end encrypted messenger using Flask, SocketIO, and Vue.js.

Working

The Chat is encrypted using RSA encryption that is a public key encryption or you can say asymmetric encryption. RSA gives two keys, public key and private key, public key is used to encrypt messages while private key is used to decrypt them.

I have used Diffie–Hellman key exchange to exchange the public keys of the users. These keys are used by user A to encrypt messages and send them to another user B and user B can decrypt them using his private key.

Socket.io is used to send and receive messages, these messages are encrypted and sent to the user having the private key to decrypt it.

I created some Flask API to store the information* of the users in a SQLite database and relogin as the user if page reloaded.

Finally Vue.js is used to perform client side encryption/decryption, send/receive message and login or connect to the user.

*Information contains id, publicKey, and last_activity of a user.

Development

Those who wants to develop or build the code then, just clone this repository using:

git clone https://github.com/PradyumnaKrishna/enigma-protocol.git

Server (Python 3)

  • Install Dependencies
pip3 install -r requirements.txt
  • Run the Server
python main.py

Supported Python Versions

  • Python 3.7/3.8

Server (Golang)

This is on hold because go-socket.io doesn't support newer versions of client-socket.io.

Client (Vue.js)

  • Install Dependencies
npm ci
  • Run the development client
npm run serve

NOTE: To run the vue.js app you need to confiure an env variables, open .env.sample to see an sample environment file.

Supported Node.js Version

  • Current LTS version (14) or newer

What next

I will create Issues and try to fix them.

enigma-protocol's People

Contributors

pradyumnakrishna avatar tizzz-555 avatar dependabot[bot] avatar singodiyashubham87 avatar tara-matthew avatar ydv-ankit avatar harmeetsingh11 avatar himanshunarware avatar 777prabhjot avatar shanvijha30 avatar sukhendu2002 avatar christien07 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.