[tor-bugs] #16650 [Obfuscation/BridgeDB]: Set up domain fronting for BridgeDB

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Apr 19 23:45:47 UTC 2017


#16650: Set up domain fronting for BridgeDB
-------------------------------------------------+-------------------------
 Reporter:  isis                                 |          Owner:  isis
     Type:  enhancement                          |         Status:  new
 Priority:  Medium                               |      Milestone:
Component:  Obfuscation/BridgeDB                 |        Version:
 Severity:  Normal                               |     Resolution:
 Keywords:  bridgedb-dist, bridgedb-usability,   |  Actual Points:
  tbb-wants, usability, bridge-distribution,     |
  TorCoreTeam201608                              |
Parent ID:                                       |         Points:
 Reviewer:                                       |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by isis):

 I tried to use Debian stable's go, installed in #21772, in the following
 manner:

 {{{
 #!/usr/bin/env bash

 #GOROOT=/home/bridgedb/go
 GOPATH=/home/bridgedb/go/
 GO_BINARY=`which go`

 MEEK_REPO=https://git.torproject.org/pluggable-transports/meek
 PTLIB_REPO=https://git.torproject.org/pluggable-transports/goptlib
 CRYPTO_REPO=https://go.googlesource.com/crypto
 CONTEXT_REPO=https://golang.org/x/net/context

 if test -z "$GO_BINARY" ; then
     printf "It seems Go is not installed! Exiting...\n"
     exit 2
 fi

 PT_PATH=${GO_PATH}/src/git.torproject.org/pluggable-transports
 X_PATH=${GO_PATH}/src/golang.org/x

 for path in "$PT_PATH" "$X_PATH" ; do
     if ! test -d "$path" ; then
         mkdir -p "$path"
     fi
 done

 cd "$PT_PATH"
 for repo in "$MEEK_REPO" "$PTLIB_REPO" ; do
     git clone $repo
 done

 # For some reason, it expects the goptlib repo to live in a directory
 # called "goptlib.git"
 mv goptlib goptlib.git

 cd "$X_PATH"
 git clone  "$CRYPTO_REPO"

 mkdir net
 cd net
 git clone "$CONTEXT_REPO"

 # In  /home/bridgedb/go/src/golang.org/x/crypto/acme/autocert/autocert.go
 # and /home/bridgedb/go/src/golang.org/x/crypto/acme/autocert/cache.go
 # and /home/bridgedb/go/src/golang.org/x/crypto/acme/autocert/renewal.go
 # and /home/bridgedb/go/src/golang.org/x/crypto/acme/acme.go
 # you will need to change the line in `import(...)` which says
 #
 #     "context"
 #
 # to instead be:
 #
 #     context "golang.org/x/net/context"
 #
 # because Debian's go version is extremely old and package which used
 # to be at golang.org/x/net/conext is now top-level in the standard
 library.
 #
 # Next, in /home/bridgedb/go/src/golang.org/x/crypto/acme/acme.go
 # you will need to add in the `import(...) the following:
 #
 #     "golang.org/x/crypto/ssh/keys"
 #
 # and then, in that same file, change all instances of "crypto.Signer" to
 # "keys.Signer".
 }}}

 This is all because Debian's go version is 1.3.3. These crypto libraries
 all expect at least go1.7.

 I'm just going to install gotools the proper way, in bridgedb's home
 directory.  I know a lot of Debian people are going to complain about
 this, but I'm sorry, this is insane and a waste of time.  I can build meek
 on my laptop just fine, with `go build`, and I should be able to do the
 same on the server.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/16650#comment:10>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list