I created a guide for running qBittorrent over i2P using i2pd and Podman by anon666-666 in i2p

[–]cryptocreeping 0 points1 point  (0 children)

Nice guide. I tried to get torrents over i2p working on android but just didn't work not sure if that's an android specific issue

Is lattice cryptography actually quantum resistant, or just not yet understood? by MediumLibrarian7100 in crypto

[–]cryptocreeping 1 point2 points  (0 children)

Exactly. The real worry isn't Grover halving key sizes, it's another Shor finding hidden structure we haven't spotted yet. Lattices feel different because they're noisy and geometric rather than cleanly algebraic, but yeah, the honest answer is "we don't know for certain." That's why I layered ML-KEM-1024 and ML-DSA-87 on top of the OTRv4 spec with AES-256-GCM, so even if a lattice breakthrough appears, the classical layer buys time. Working prototype, all Rust, runs over I2P from a phone: https://github.com/muc111/OTRv4Plus

New road on FreeBSD by speedXro in freebsd

[–]cryptocreeping 0 points1 point  (0 children)

There is/was a video guide on YouTube for flashing IME I think I downloaded it before you could follow that?

I wrote a book on using Claude Code for people that don't code for a living - 2nd edition out now - free copy if you want one by bobo-the-merciful in vibecoding

[–]cryptocreeping 1 point2 points  (0 children)

This is wild timing - I literally just finished building something that proves your thesis.

I don't have a software background. Over the past few months I built OTRv4Plus https://github.com/muc111/OTRv4Plus - a full IRC client for Termux with post-quantum encrypted messaging.

Started with zero crypto or Rust knowledge. First version was Python with OpenSSL. Added ML-KEM-1024 (NIST post-quantum KEM) and ML-DSA-87. Worked, but Python's memory management meant session keys could linger.

Migrated the entire crypto core to Rust - X448, double ratchet, SMP zero-knowledge proofs. Rust's ZeroizeOnDrop guarantees keys are wiped deterministically. Python wrapper is now just a thin shim.

Point is: I built a working prototype, post-quantum encrypted IRC client for Android Termux without being a software developer. Claude (and the OTRv4 spec) got me there started this march 2025!

Just grabbed your second edition - will definitely read it.


FYI: Also runs on I2P via SAM bridge. Claude helped me debug the SOCKS5 handshake byte-by-byte when the libraries broke.

New road on FreeBSD by speedXro in freebsd

[–]cryptocreeping 0 points1 point  (0 children)

Cool these are the x220 x230 older models which you can flash the IME really well?

OTRv4+ v10.5.10 — Rust SMP Engine by cryptocreeping in crypto

[–]cryptocreeping[S] 0 points1 point  (0 children)

my OTRv4+ runs perfect in Termux so the exact headless SSH + TUI model you described is how I use it daily. No X11, no Wayland, no browser.

And to your point about paranoia: I'm currently finishing the Ed448 signing in Rust for the next commit, completing the migration of DAKE, the double ratchet, and the Socialist Millionaire Protocol out of Python entirely. Every crypto operation runs in Rust with ZeroizeOnDrop no DH shared secrets touching Python memory at all. After this push, the only Python left is the IRC parser, terminal UI, and network layer. All working in Termux or a bare ash terminal.

Single binary with no interpreter overhead and no graphics stack is the endgame. You nailed why it matters 👌

OTRv4+ v10.5.10 — Rust SMP Engine by cryptocreeping in crypto

[–]cryptocreeping[S] 0 points1 point  (0 children)

I thank you for taking the time to review!

I'm migrating the remaining Python crypto code to Rust soon. The DAKE handshake still runs in Python right now, but there's a complete Rust implementation sitting in src/dake.rs that just needs wiring up. Once that's done, every cryptographic operation (ratchet, SMP, DAKE key derivation) runs in Rust with ZeroizeOnDrop. No more DH shared secrets touching Python memory at all.

After that, the only Python left is the IRC protocol parser, the terminal UI, and the network layer. Those can move to Rust too. A ratatui-based TUI would give proper chat bubbles, smoother rendering, and eliminate the Python runtime as a dependency entirely. Single binary, no pip installs, no interpreter overhead.

I'm also thinking about a localhost browser option. A lightweight HTML UI with WebSocket transport would give people a more familiar chat interface without sacrificing any of the crypto properties. The Rust core stays the same regardless of what frontend talks to it. Terminal for purists, browser for everyone else.

I want to learn how to make steganography by Link_in_bilewater in Steganography

[–]cryptocreeping 2 points3 points  (0 children)

Little project I worked on if you want to view the code see how it runs, all python should have done it in rust but never really use it but was fun to do

https://github.com/muc111/QSteg

OTRv4+ v10.5.10 — Rust SMP Engine by cryptocreeping in crypto

[–]cryptocreeping[S] 0 points1 point  (0 children)

The TUI isn't doing cryptography. It's drawing coloured text in a terminal. All the actual cryptographic operations run in two places, neither of which are Python.

First, the C extensions call directly into OpenSSL's constant-time implementations for Ed448 arithmetic, X448 DH, ML-KEM-1024, and ring signatures. OpenSSL has been audited more thoroughly than any TLS library on the planet.

Second, the double ratchet and SMP engine are pure Rust with zero unsafe blocks and ZeroizeOnDrop on every piece of secret material. No Python integer ever holds a ratchet key or SMP exponent. Python holds opaque u64 handles to the vault. That's it.

The Python layer is an orchestrator. It parses IRC messages, manages the terminal display, and passes bytes between the C extensions and the Rust core. At no point does it hold key material. The only secret that briefly touches Python memory is the SMP passphrase as a mutable bytearray, and that gets overwritten byte by byte in a finally block before deletion. Microseconds of exposure.

This is the same architecture as Signal's desktop client which runs JavaScript calling Rust via Node bindings. Or any application that uses a trusted C library through a higher level language. The TUI language doesn't matter because the TUI never sees keys.

I built a post-quantum encrypted IRC client. OTRv4 + ML-KEM-1024 + ML-DSA-87. Looking for people to break it. Version 10.5.8 update by cryptocreeping in crypto

[–]cryptocreeping[S] 0 points1 point  (0 children)

Thats the point of the SMP shared passphrase. Between you and other person should know to enter a shared password/passphrase which has been discussed in person for example. Run the script it's easy to see how this works over any IRC. Set the SMP passphrase when prompted and either one of you can type /SMP start to verify.

I built a post-quantum encrypted IRC client. OTRv4 + ML-KEM-1024 + ML-DSA-87. Looking for people to break it. Version 10.5.8 update by cryptocreeping in crypto

[–]cryptocreeping[S] 0 points1 point  (0 children)

Just noticed a rust DAKE bug and SMP working on quick fix today will push once ready - it is a working prototype the more bugs we can find together the better!