Skip to main content

An encrypted p2p chat app

Project description

witchat

witchat (pronounced: witch hat) is a peer-to-peer messaging platform. That means you don't have to rely on a single source-of-truth or a server. All messages are encrypted using the X25519 end-to-end encryption algorithm. Additionally all messages are signed using ed25519. Synchronisation and message transfer is done via a DHT. Allthough privacy is guaranteed(as long as you disregard quantum-computers) in the current version, data integrity is not as anyone can delete the stored messages without leaving a trace. This might get improved upon in the future using hashing similarly like a blockchain. The current approach isn't optimal efficiency-wise as asymetric encryption takes longer to compute than symetric encryption. Theoretically it would be more efficient to use asymetric encryption only for key-exchange.

Requirements

  • python
  • uv (heavily recommended)
  • a friend to chat to (or a second terminal)

Installation

NOTE: If you truly want to make this truly decentralized and p2p you will have to port-forward to the internet and that's dangerous. If you want to test the potential capabilities try connecting to vividsystem.hackclub.app:8468

# using uv (recommended)
uv tool install witchat 

# or using pip
pip install witchat 

to try it out just use uvx wisort

Usage

On launch you will get asked to specify a port, a number of peer ips to connect to and a display name. After that you can use following commands:

  • .enter: sends your contact information and your public keys into the network so that people can safely communicate with you
  • .chat [fingerprint]: select a user to chat to
  • .leave: unselects the user you were previously chatting to
  • .fingerprint: prints out your fingerprint
  • .exit: exits the programm If you type anything else, it will get sent as a message to your selected recipient.

Config

(as of now there is no way to configure witchat)

Acknowledgements

This project would not be possible without kademlia.

License

See LICENSE

Project details


Download files

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

Source Distribution

witchat-0.2.2.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

witchat-0.2.2-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file witchat-0.2.2.tar.gz.

File metadata

  • Download URL: witchat-0.2.2.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for witchat-0.2.2.tar.gz
Algorithm Hash digest
SHA256 e3fb8105e667d7a73f93d609f7494ce75e6c278b4f04c10bc46fe9eeca1c0d8b
MD5 ac1438f5eeff2dca07f62e160e97fcda
BLAKE2b-256 8e2c4affaf2a0e36bcd9ab705cfec10cb98f466a44172f597fa9f67613e3cf84

See more details on using hashes here.

Provenance

The following attestation bundles were made for witchat-0.2.2.tar.gz:

Publisher: release.yml on vividsystem/witchat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file witchat-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: witchat-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for witchat-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 76ab34b0221fd9f9cd960b2d3272fdc0bf6426aec39f6bbfc6c5e4f2ee7045e5
MD5 79bb02ecd96e99bcd0ac51ed34ebec6b
BLAKE2b-256 453721edaca6799298c7a9e29ef4001ca09796cc6853122faba9e51b3db310d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for witchat-0.2.2-py3-none-any.whl:

Publisher: release.yml on vividsystem/witchat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page