Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

remailers

A toolkit for anonymous messaging with PGP over Usenet and Tor email: hashed/encrypted subjects (hSub/eSub), nym-server (ZAX) registration, and SOCKS/Tor SMTP. Built on top of usenet.

For research and privacy education. The public nym/remailer network is largely historical. Treat the bundled server definitions as starting points.

Install

pip install remailers

Quickstart

Generate (or load) a PGP identity:

from remailers import Credentials

creds = Credentials("my_key.asc", name="PythonicAnon")
print(creds.pubkey)

Hashed and encrypted subjects: let a recipient spot a message meant for them without revealing the subject:

from remailers import create_hsub, match_hsub, create_esub, match_esub

hsub = create_hsub("evil dolphin captain")
assert match_hsub(hsub, "evil dolphin captain")

esub = create_esub("evil dolphin captain", key="shared-secret")
assert match_esub("evil dolphin captain", "shared-secret", esub)

Post and retrieve anonymous messages via alt.anonymous.messages:

from usenet import UsenetServer
from remailers import Credentials, AnonBox, create_hsub

creds = Credentials("my_key.asc")
hsub = create_hsub("evil dolphin captain")
ciphertext = creds.encrypt("meet at noon")

with UsenetServer("news.neodome.net") as server:
    server.post(ciphertext, hsub, "alt.anonymous.messages")

inbox = AnonBox(creds, UsenetServer("news.neodome.net"))
for article in inbox.retrieve_by_subject("evil dolphin captain"):
    print(article.text)

ZAX nym servers and Tor email are in remailers.zax and remailers.mail. See examples/.

Security notes

  • Initialization vectors come from os.urandom (remailers.utils.generate_iv).
  • hSub uses SHA-256. eSub uses Blowfish for Type-I compatibility: it exists for interop with the legacy remailer ecosystem, not as modern AEAD.
  • Message bodies are protected by PGP (RSA-4096, AES-256), not by the subject scheme.

Testing

pip install -e .[test]
pytest test/

Tests are offline: subject round-trips, IV entropy, and a PGP encrypt/decrypt cycle with a freshly generated key.

License

Apache-2.0

Release files for remailers 0.1.1a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for remailers 0.1.1a1
File Size Uploaded
remailers-0.1.1a1.tar.gz 17.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for remailers 0.1.1a1
File Interpreter ABI Platform
remailers-0.1.1a1-py3-none-any.whl Python 3 none any Details

Total release size: 33.3 kB

Release files / remailers-0.1.1a1.tar.gz

Download URL remailers-0.1.1a1.tar.gz
Size 17.8 kB
Tags Source
SHA-256 checksum
How to use checksums
69f3219b5de4e0d7c2a2df23ab2da94a26bc84b75b5b600dbd4cd1d326667f5d
BLAKE2b-256 checksum
How to use checksums
fd0c4cdc7276ff849edee867aedd03d7c49d60e65276227290d9c23faa5469e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / remailers-0.1.1a1-py3-none-any.whl

Download URL remailers-0.1.1a1-py3-none-any.whl
Size 15.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4089f1ed42df1caaf07f6a21225239271bd31d3a801e2af509799bfb3adbe0d3
BLAKE2b-256 checksum
How to use checksums
f9015db03022190eec2bd26dd9abffe8c8d51761cf9c5f9a19d6a560bd1ca696
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.1.1a1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page