Skip to main content

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

This version

0.1

Download files

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

Source Distribution

onion_chat-0.1.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

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

onion_chat-0.1-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

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

Hashes for onion_chat-0.1.tar.gz
Algorithm Hash digest
SHA256 4587529e7a047f049510107a966208b8223556b5712d0ebee7f028f9ba93721f
MD5 bf9f5dd84da60d0e7489a59c448c665a
BLAKE2b-256 90ab7eea2aa85a3cb86af8cff5e4b6867c10e2110dcf117b00e80379d81676e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for onion_chat-0.1.tar.gz:

Publisher: python-publish.yml on MrEx3cut0r/onion-chat

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

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

Hashes for onion_chat-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 75efe6f7f1eea867277029b186804c2474d2d7750ba3ae29bcc0fd9551d9ecad
MD5 1f2500338ac8530562fee1f99f9ef31e
BLAKE2b-256 7a16c7ccd64b583085db7db5c66b21a7fd080a2dfd20c56ad4e982f9cd69eda3

See more details on using hashes here.

Provenance

The following attestation bundles were made for onion_chat-0.1-py3-none-any.whl:

Publisher: python-publish.yml on MrEx3cut0r/onion-chat

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