On Mon, Apr 04, 2016 at 12:04:45AM -0400, Mike Tigas wrote:
[again, cross-posted to tor-dev and guardian-dev.]
A quick status report on this: it works! Hit a big epiphany, figured out how to get `gomobile` to emit the necessary bits, then went wild.
Some example stdout from Onion Browser connecting to Tor via obfs4, meek_lite (google), and scramblesuit: https://gist.github.com/mtigas/f1b9a3a8befa6f60d517eb2340f3cdd4
There are trivial forks of obfs4[1] and goptlib[2] that simply hard-code some options that are normally sent as environment variables because obfs4proxy runs in managed mode[3]. (It's the best I have right now until I can figure out a better way to communicate between obfs4proxy and the iOS bits.) I’ve tacked a few other quick thoughts at the bottom of the iObfs readme[4]. As a quick test I've started building it into Onion Browser (iobfs branch[5]), which is what got the output linked above.
This is radical. Maybe you don't need the fork of goptlib if you do os.Setenv on the relevant variables before calling pt.ClientSetup in obfs4?