[tor-dev] [GSoC] Pluggable Transports in Python Status Update - More Transports

Brandon Wiley brandon at blanu.net
Wed Aug 1 19:56:56 UTC 2012


So far I've implemented Dust and obfs3 and I'm putting the finishing
touches on obfs2. I've also rewritten the pluggable transport API and
rewritten the transport plugins to use this new API.

The API now provides 4 events: start, encodedReceived, decodedReceived, and
end. The plugins implement callbacks for these events as well as an
__init__(self, decodedSocket, encodedSocket) method that provides virtual
sockets to the plugins. The virtual sockets have read and write methods.
Control is transferred to the plugin when one of the event callbacks is
called, in at which time the plugin can read and write data to the socket
buffers. When the callback returns, control is transferred back to the
framework, which takes care of reading and writing between the buffers and
the actual sockets.

The next step is testing of all of the plugins and documenting the plugin
API. In particular I expect that the python obfs2 implementation will not
work with the C obfs2 implementation due to undocumented assumptions in the
protocol implementation, so these will need to be worked out.
Code: http://github.com/blanu/pyptlib and
http://github.com/blanu/py-obfsproxy
Blog: http://stepthreeprivacy.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tor-dev/attachments/20120801/a5844cd8/attachment.html>


More information about the tor-dev mailing list