Skip to content

Real time P2P messaging app using ECDH (Curve 256) + AES GCM **Education only**

Notifications You must be signed in to change notification settings

sjdonado/secure-p2p-real-time-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Secure P2P messaging chat

1. Pre register protocol

Generate and store pi_0, pi_1 and c image

2. Client-Server secure connection

Key exchange

image image

Communication

image

3. Client-Client secure connection

Key exchange

image

Communication

Same as 2: AES GCM using k_ab, k_ba and N

Setup

1. Create virtual env

python3 -m venv env

2. Install dependencies

pip install -r requirements.txt

3. Pre register

./pre_register.py user_a root_server userapass
./pre_register.py user_b root_server userbpass

How to run?

  • To display help: ./client.py --help
  • To run in verbose mode: ./client.py --verbose
  • To exit write exit in all terminals

Step by step

1. Open the server in a new terminal

./server.py

2. Open the client B in a new terminal

./client.py user_b 127.0.0.1:8001 --point-a user_a

3. Open the client A in a new terminal

./client.py user_a 127.0.0.1:8002 --point-b user_b

Server interactive session

Run allowed commands: ip_signup, get_ip, update_ip, update_pass, exit NOTE: make sure to be registered before or run ip_signup

./client.py user_a 127.0.0.1:8001 --server-interactive-session

Demo

Screen Recording 2021-09-23 at 9 52 25 AM

About

Real time P2P messaging app using ECDH (Curve 256) + AES GCM **Education only**

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages