Skip to content
Snippets Groups Projects
  1. Jan 20, 2019
  2. Jan 19, 2019
  3. Jan 16, 2019
  4. Nov 03, 2018
    • Daniel Martí's avatar
      port to a Go module · 08f4d470
      Daniel Martí authored
      The biggest win is that we now declare what versions of each dependency
      we require to build. This way, building a certain version of obfs4 will
      always use the same source code, independent of the master branch of
      each dependency.
      
      This is necessary for reproducible builds. On top of that, go.sum
      contains checksums of all the transitive dependencies and their modules,
      so the build system will also recognise when the source code has been
      changed.
      
      Updated the build instructions accordingly. We don't drop support for
      earlier Go versions, but those won't get the benefit of reproducible
      builds unless we start vendoring the dependencies too.
      08f4d470
  5. Apr 21, 2018
  6. Jan 10, 2018
  7. Nov 15, 2016
  8. Oct 20, 2016
  9. Jul 11, 2016
  10. Apr 13, 2016
    • Yawning Angel's avatar
      The obfs4 `iat-mode` parameter is now properly configurable. · a7a2575c
      Yawning Angel authored
      It used to be that all of the bridge side parameters needed to be
      manually specified together.  This was somewhat nonsensical, and the IAT
      mode can now be set as the only obfs4 option in a `ServerTransportOptions`
      torrc directive.
      
      Thanks to dcf for reporting the issue.
      a7a2575c
  11. Jan 25, 2016
  12. Jan 17, 2016
  13. Oct 30, 2015
  14. Oct 29, 2015
    • Yawning Angel's avatar
      Add the "meek_lite" transport, which does what one would expect. · 611205be
      Yawning Angel authored
      This is a meek client only implementation, with the following
      differences with dcf's `meek-client`:
      
       - It is named `meek_lite` to differentiate it from the real thing.
       - It does not support using an external helper to normalize TLS
         signatures, so adversaries can look for someone using the Go
         TLS library to do HTTP.
       - It does the right thing with TOR_PT_PROXY, even when a helper is
         not present.
      
      Most of the credit goes to dcf, who's code I librerally cribbed and
      stole.  It is intended primarily as a "better than nothina" option
      for enviornments that do not or can not presently use an external
      Firefox helper.
      611205be
    • Yawning Angel's avatar
      Make establishing outgoing connections the transport's responsibility. · e52258ed
      Yawning Angel authored
      ClientFactories now have a Dial() method instead of a WrapConn()
      method, so that it is possible to write something like meek-client
      using the obfs4proxy framework.
      
      This breaks the external interface if anyone is using obfs4proxy as
      a library, but the new way of doing things is a trivial modification,
      to a single routine that shouldn't have been very large to begin with.
      e52258ed
  15. Jun 01, 2015
  16. May 26, 2015
  17. Apr 23, 2015
  18. Apr 15, 2015
    • Yawning Angel's avatar
      3540313e
    • Yawning Angel's avatar
      Use a built in SOCKS 5 server instead of goptlibs. · a8d7134f
      Yawning Angel authored
      Differences from my goptlib branch:
       * Instead of exposing a net.Listener, just expose a Handshake() routine
         that takes an existing net.Conn. (#14135 is irrelevant to this socks
         server.
       * There's an extra routine for sending back sensible errors on Dial
         failure instead of "General failure".
       * The code is slightly cleaner (IMO).
      
      Gotchas:
       * If the goptlib pt.Args datatype or external interface changes,
         args.go will need to be updated.
      
      Tested with obfs3 and obfs4, including IPv6.
      a8d7134f
  19. Apr 13, 2015
  20. Apr 03, 2015
  21. Mar 28, 2015
  22. Mar 26, 2015
  23. Mar 23, 2015
    • Yawning Angel's avatar
      Change the import path for go.net. · aed4b723
      Yawning Angel authored
      The Go developers decided to move the go.net repository to
      golang.org/x/net, and also to transition from hg to git.  This wasn't
      changed when the go.crypto imports were since the 'proxy' component
      doesn't have imports that break, so the old code still works.
      
      While the change here is simple (just update the import location), this
      affects packagers as it now expects the updated package.  Sorry for the
      inconveneince, I blame the Go people, and myself for not just doing
      this along with the go.crypto changes.
      aed4b723
  24. Mar 22, 2015
  25. Mar 21, 2015
Loading