Skip to main content

RSA-encrypted chat software written in Python.

Project description


Peer-to-peer chat software written in Python.

What is it for?

Encwork is designed to be a safe chat system that will generate new keys for each session. It's not intended to be used as WhatsApp or a similar chat program, it's for throwaway chats that don't need to/shouldn't be kept.

How is it secured?

Encwork uses 4096-bit long RSA keys for every message, other than for the public key exchange, which cannot be encrypted.
This should not be a problem, as no computer can get the private key from the public key, and the keys are recreated for every new chat session.

How does it work?

Each machine will set up a server socket, and a client socket. The client will try to connect to a specified target, while the server accepts connections and checks if the origin is the target. If it's not, it'll kill the connection and wait for the target to connect. Once both peers have confirmed the targets, they will exchange public keys and be ready to chat.


Python v3.6+
If you don't already have it, download it here.
Download it using pip install "cryptography>=2.8", or download the wheel here and use pip install (.whl file).


To get the module through PyPI: pip install encwork.
While Encwork comes with a fully functional file, it is mainly meant to demonstrate how Encwork works. You can get the module to build your own UI that will work with any other program that uses Encwork, including the example one.

The file

Run it as any other python script, using python or python3 It's a very short piece of code, as it just uses functions from encwork.p2p. Simply give it a target machine and it'll start trying to connect.
Once you see Ready to receive messages. and/or Ready to send messages., the connection has been completed and messaging is ready.


To see how to use the Encwork module yourself, check out the Documentation.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for encwork, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size encwork-0.1.1-py3-none-any.whl (6.2 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size encwork-0.1.1.tar.gz (4.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page