[tor-dev] bananaphone obfsproxy module

George Kadianakis desnacked at riseup.net
Sun Nov 10 21:55:37 UTC 2013

David Stainton <dstainton415 at gmail.com> writes:

> George,
> Thanks for the info!
> This should approximate your suggestion:
> https://github.com/david415/obfsproxy/tree/david-bananaphone-managed
> Let me know your suggestions for improvement.
> Either way I'll work on this more soon.

Looks fine!

BTW, does it work for you? Did you try the server-side using the
ServerTransportOptions torrc option (tor >=

Some nitpicky comments:
- It doesn't really matter in this case but:
     transport_class = transports.get_transport_class(transport, 'socks')
  might be better as:
     transport_class = transports.get_transport_class(transport, 'server')
  in obfsproxy/managed/server.py.

- I see you are passing 'None' to setup() when in external mode. Maybe
  you can move the run_transport_setup() call to do_external_mode()
  (after pt_config is instantiated), and then pass the pt_config to
  setup(). This way external-mode transports can learn the state
  location (it's in TransportConfig) during setup() (Scramblesuit
  might like this).

  If you do so, there is no reason to do
   'if transport_config is not None'
  in obfsproxy/transports/bananaphone_transport.py.

- It would be nice if obfs2 also used the setup() method to set its
  shared_secret. I'm referring to the block of code below:
   # Check for shared-secret in the server transport options.


More information about the tor-dev mailing list