scamblesuit bug: sharedSecret is not None
We got an ooniprobe that indicates that this error is thrown in some cases when running scramble suit. See the report here: http://reports.ooni.nu/IR/bridge_reachability-2014-10-24T213005Z-AS21341-probe.yamloo
Relevant obfsproxy log:
2014-10-25 04:44:43,342 [WARNING] Obfsproxy (version: 0.2.12) starting up.
2014-10-25 04:44:43,342 [INFO] Entering client managed-mode.
2014-10-25 04:44:43,343 [ERROR]
################################################
Do NOT rely on ScrambleSuit for strong security!
################################################
2014-10-25 04:44:43,343 [INFO] Creating directory path `/tmp/tortmpXcfTNH/pt_state/scramblesuit/'.
2014-10-25 04:44:43,344 [INFO] OBFSSOCKSv5Factory starting on 57513
2014-10-25 04:44:43,344 [INFO] Starting factory <obfsproxy.network.socks.OBFSSOCKSv5Factory instance at 0x32bcea8>
2014-10-25 04:44:43,344 [INFO] Starting up the event loop.
2014-10-25 04:44:44,561 [ERROR] Unhandled Error
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/twisted/python/log.py", line 88, in callWithLogger
return callWithContext({"system": lp}, func, *args, **kw)
File "/usr/local/lib/python2.7/dist-packages/twisted/python/log.py", line 73, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
return func(*args,**kw)
--- <exception caught here> ---
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 619, in _doReadOrWrite
why = selectable.doWrite()
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 592, in doConnect
self._connectDone()
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 611, in _connectDone
self.protocol.makeConnection(self)
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/protocol.py", line 481, in makeConnection
self.connectionMade()
File "/usr/local/lib/python2.7/dist-packages/obfsproxy/network/socks.py", line 54, in connectionMade
self.socks.set_up_circuit(self)
File "/usr/local/lib/python2.7/dist-packages/obfsproxy/network/socks.py", line 162, in set_up_circuit
self.circuit.setUpstreamConnection(self)
File "/usr/local/lib/python2.7/dist-packages/obfsproxy/network/network.py", line 109, in setUpstreamConnection
self.circuitCompleted(self.downstream)
File "/usr/local/lib/python2.7/dist-packages/obfsproxy/network/network.py", line 134, in circuitCompleted
self.transport.circuitConnected()
File "/usr/local/lib/python2.7/dist-packages/obfsproxy/transports/scramblesuit/scramblesuit.py", line 242, in circuitConnected
self.circuit.downstream.write(self.uniformdh.createHandshake())
File "/usr/local/lib/python2.7/dist-packages/obfsproxy/transports/scramblesuit/uniformdh.py", line 168, in createHandshake
assert self.sharedSecret is not None
exceptions.AssertionError:
2014-10-25 04:51:21,990 [INFO] Received SIGTERM, shutting down.
2014-10-25 04:51:21,990 [INFO] (TCP Port 57513 Closed)
2014-10-25 04:51:21,991 [INFO] Stopping factory <obfsproxy.network.socks.OBFSSOCKSv5Factory instance at 0x32bcea8>
2014-10-25 04:51:21,991 [INFO] Main loop terminated.