transports/meeklite: Use a modified version of utls

Changes:
 * Use a fork of utls with some compatibility improvements.
 * Switch the default ClientHello profile to `HelloFirefox_Auto`.
 * Add the `HelloChrome_71` profile.

The existing `HelloFirefox_Auto` profile that points to
`HelloFirefox_63` also matches the (common) behavior of Firefox 65,
assuming that 3DES ciphersuites are not disabled.
merge-requests/3/head
Yawning Angel 5 years ago
parent da058cb180
commit bde8b7ff56

@ -37,7 +37,7 @@ the same dependency versions, while `go get -d` always downloads master.
* Go 1.11.0 or later. Patches to support up to 2 prior major releases will
be accepted if they are not overly intrusive and well written.
* See `go.mod` for build time dependencies.
* See `go.mod`, `go.sum` and `go list -m -u all` for build time dependencies.
### Installation

@ -4,9 +4,8 @@ require (
git.torproject.org/pluggable-transports/goptlib.git v0.0.0-20190117054722-15f83653abbc
github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412
github.com/dchest/siphash v1.2.1
github.com/refraction-networking/utls v0.0.0-20190105024908-a89e7e6da482
golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc
gitlab.com/yawning/utls.git v0.0.9-1
golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613
golang.org/x/net v0.0.0-20190119204137-ed066c81e75e
golang.org/x/sys v0.0.0-20190116161447-11f53e031339 // indirect
golang.org/x/text v0.3.0 // indirect
)

@ -4,13 +4,15 @@ github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 h1:w1UutsfOrms1J05zt7I
github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0=
github.com/dchest/siphash v1.2.1 h1:4cLinnzVJDKxTCl9B01807Yiy+W7ZzVHj/KIroQRvT4=
github.com/dchest/siphash v1.2.1/go.mod h1:q+IRvb2gOSrUnYoPqHiyHXS0FOBBOdl6tONBlVnOnt4=
github.com/refraction-networking/utls v0.0.0-20190105024908-a89e7e6da482 h1:mP4Zgxxydw8ljKIA3zHWmzrTKizyULi7vQrRtxqQNmo=
github.com/refraction-networking/utls v0.0.0-20190105024908-a89e7e6da482/go.mod h1:tz9gX959MEFfFN5whTIocCLUG57WiILqtdVxI8c6Wj0=
golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc h1:F5tKCVGp+MUAHhKp5MZtGqAlGX3+oCsiL1Q629FL90M=
golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
github.com/dsnet/compress v0.0.0-20171208185109-cc9eb1d7ad76 h1:eX+pdPPlD279OWgdx7f6KqIRSONuK7egk+jDx7OM3Ac=
github.com/dsnet/compress v0.0.0-20171208185109-cc9eb1d7ad76/go.mod h1:KjxHHirfLaw19iGT70HvVjHQsL1vq1SRQB4yOsAfy2s=
gitlab.com/yawning/utls.git v0.0.9-1 h1:qM3iQLFVKtBPP4THo7QQvHZanP2Vk9jAgDZaUTsAuE4=
gitlab.com/yawning/utls.git v0.0.9-1/go.mod h1:PuJDGdGVFPpgc2evhLjHRgl5ZN2sItpDiydweKFYtuc=
golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613 h1:MQ/ZZiDsUapFFiMS+vzwXkCTeEKaum+Do5rINYJDmxc=
golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/net v0.0.0-20190119204137-ed066c81e75e h1:MDa3fSUp6MdYHouVmCCNz/zaH2a6CRcxY3VhT/K3C5Q=
golang.org/x/net v0.0.0-20190119204137-ed066c81e75e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/sys v0.0.0-20190116161447-11f53e031339 h1:g/Jesu8+QLnA0CPzF3E1pURg0Byr7i6jLoX5sqjcAh0=
golang.org/x/sys v0.0.0-20190116161447-11f53e031339/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190201152629-afcc84fd7533 h1:bLfqnzrpeG4usq5OvMCrwTdmMJ6aTmlCuo1eKl0mhkI=
golang.org/x/sys v0.0.0-20190201152629-afcc84fd7533/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=

@ -44,10 +44,9 @@ import (
"sync"
"time"
utls "github.com/refraction-networking/utls"
"git.torproject.org/pluggable-transports/goptlib.git"
"gitlab.com/yawning/obfs4.git/transports/base"
utls "gitlab.com/yawning/utls.git"
)
const (

@ -28,10 +28,9 @@ import (
"strings"
"sync"
utls "github.com/refraction-networking/utls"
"golang.org/x/net/http2"
"gitlab.com/yawning/obfs4.git/transports/base"
utls "gitlab.com/yawning/utls.git"
"golang.org/x/net/http2"
)
var (
@ -51,10 +50,11 @@ var (
"hellochrome_58": &utls.HelloChrome_58,
"hellochrome_62": &utls.HelloChrome_62,
"hellochrome_70": &utls.HelloChrome_70,
"hellochrome_71": &utls.HelloChrome_71,
"helloios_auto": &utls.HelloIOS_Auto,
"helloios_11_1": &utls.HelloIOS_11_1,
}
defaultClientHello = &utls.HelloChrome_Auto
defaultClientHello = &utls.HelloFirefox_Auto
)
type roundTripper struct {

Loading…
Cancel
Save