Anonymous encrypted IRC chat over Tor with Ed25519 signatures and ratchet-based PFS
Project description
onion-chat
Anonymous encrypted IRC chat over Tor.
- AES-256-GCM + Ed25519 signatures
- Per-sender ratchet chain (PFS/PCS)
- Message padding against traffic analysis
- Identity keys persisted in
~/.config/onion-chat/
Install
pip install -e .
Requires Tor on 127.0.0.1:9050.
Run
onion-chat
First run generates ~/.config/onion-chat/channel-secret.json. Share it with peers out-of-band (OnionShare/USB/in person). Never paste it in logs.
To join a peer's channel, place their channel-secret.json in ~/.config/onion-chat/ and run.
Env
| Var | Default |
|---|---|
IRC_SERVER |
irc.oftc.net |
IRC_PORT |
6697 |
IRC_TLS |
1 |
NICK |
anon<random> |
INFO |
from file |
SECRET_PHRASE |
from file |
CHANNEL |
from file |
SECRET_FILE |
~/.config/onion-chat/channel-secret.json |
Keys
| File | Purpose |
|---|---|
~/.config/onion-chat/identity.pem |
Ed25519 identity key (persistent, 0600) |
~/.config/onion-chat/channel-secret.json |
Channel + INFO + SECRET_PHRASE (0600) |
Commands
Type in any buffer.
| Command | Action |
|---|---|
/help |
list commands |
/menu |
open settings menu (*status*) |
/join #chan |
join/switch channel |
/query nick |
open private chat |
/close |
close current buffer |
/clear |
clear current buffer |
/buffers |
list open buffers |
/nick <name> |
change nickname |
/set <key> <val> |
change setting (see below) |
/connect |
apply settings and connect |
/reconnect |
force reconnect |
/exit |
quit |
Ctrl+X switches between buffers.
/set keys
| Key | Values |
|---|---|
server |
IRC server |
port |
IRC port |
tls |
0/1 |
channel |
#name |
nick |
nickname |
info |
HKDF info (applied with /connect) |
secret |
HKDF secret (applied with /connect) |
/connect reuses the existing channel key unless both info and secret are set via /set.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file onion_chat-0.1.tar.gz.
File metadata
- Download URL: onion_chat-0.1.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4587529e7a047f049510107a966208b8223556b5712d0ebee7f028f9ba93721f
|
|
| MD5 |
bf9f5dd84da60d0e7489a59c448c665a
|
|
| BLAKE2b-256 |
90ab7eea2aa85a3cb86af8cff5e4b6867c10e2110dcf117b00e80379d81676e0
|
Provenance
The following attestation bundles were made for onion_chat-0.1.tar.gz:
Publisher:
python-publish.yml on MrEx3cut0r/onion-chat
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
onion_chat-0.1.tar.gz -
Subject digest:
4587529e7a047f049510107a966208b8223556b5712d0ebee7f028f9ba93721f - Sigstore transparency entry: 2194881441
- Sigstore integration time:
-
Permalink:
MrEx3cut0r/onion-chat@3c9d0ca5cc307b634bd928f4b4e55b337d041257 -
Branch / Tag:
refs/tags/alpha - Owner: https://github.com/MrEx3cut0r
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@3c9d0ca5cc307b634bd928f4b4e55b337d041257 -
Trigger Event:
release
-
Statement type:
File details
Details for the file onion_chat-0.1-py3-none-any.whl.
File metadata
- Download URL: onion_chat-0.1-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75efe6f7f1eea867277029b186804c2474d2d7750ba3ae29bcc0fd9551d9ecad
|
|
| MD5 |
1f2500338ac8530562fee1f99f9ef31e
|
|
| BLAKE2b-256 |
7a16c7ccd64b583085db7db5c66b21a7fd080a2dfd20c56ad4e982f9cd69eda3
|
Provenance
The following attestation bundles were made for onion_chat-0.1-py3-none-any.whl:
Publisher:
python-publish.yml on MrEx3cut0r/onion-chat
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
onion_chat-0.1-py3-none-any.whl -
Subject digest:
75efe6f7f1eea867277029b186804c2474d2d7750ba3ae29bcc0fd9551d9ecad - Sigstore transparency entry: 2194881444
- Sigstore integration time:
-
Permalink:
MrEx3cut0r/onion-chat@3c9d0ca5cc307b634bd928f4b4e55b337d041257 -
Branch / Tag:
refs/tags/alpha - Owner: https://github.com/MrEx3cut0r
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@3c9d0ca5cc307b634bd928f4b4e55b337d041257 -
Trigger Event:
release
-
Statement type: