For testing, we should have badly-behaved clients and servers. But implementing that in C seems like horrible overkill. Let's look at the best-of-breed compatible implementations, and figure out which one would be the best basis for making a bunch of stub test client/servers.
(It's okay if the client answer and the server answer aren't the same)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items 0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items 0
Link issues together to show that they're related.
Learn more.
However, it has been used as part of his HS hashring research, not sure if we want that association. (But that functionality might help in testing banning for hashring crawling. Not sure if the hashring crawling part is publicly available or in this repository, though.)
Evaluating super quickly and unfairly. A unicode confused face () indicates that I don't actually know the language too well.
haskell-tor looks solidly written and nicely terse. A little less documentation than I'd prefer. But if you don't know haskell it won't be a walk in the park.
purpleonion : 7 years outdated.
gotor: Clean but far less documented than I'd prefer. In a nice language at least, and easy to follow.
node-tor: Far less documented than I'd prefer. No commits for a year?
TorPylle: 2.5 years out of date. Far less documented than I'd prefer. No ntor support.
pycepa: Documented! Pythonic, mostly! Appears not to be a complete client implementation though; there are hardwired node identities in Circuit.py. We'll have to see how much of this is actually implemented. Not sure it actually checks signatures. Looks pretty hackable. GPLv3.
oppy: Documentd in some places; undocmented in others. Uses Twisted. Doesn't validate all signatures. Clean. Looks pretty hackable. 3BSD licensed.
orchid: Far less documented than I'd like. Very nice code structure though. Very big complete implementation. Last commit around May 2015? 3BSD license.
tor-research-framework: Far less documented than I'd like. Good documentation in some places though. Not in love with architecture/hackability; looks procedural at first glance. GPL3+ license.
silvertunnel-ng: Documentation present but uneven. Pretty big implementation; pretty complete. GPL2+ license.