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)
| File | Size | Uploaded | |
|---|---|---|---|
| remailers-0.1.1a1.tar.gz | 17.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|