From 10a2055163252c01ec16bc201eafb7e0f445d133 Mon Sep 17 00:00:00 2001 From: kelmenhorst <45046038+kelmenhorst@users.noreply.github.com> Date: Mon, 14 Jun 2021 16:59:24 +0200 Subject: [PATCH] quic: use RFC9000 version (#376) * #1682: RFC9000 as main QUIC version * removed extra ALPN values from the TLSConfig * updated to quic-go v0.21.0 * only use h3 --- go.mod | 2 +- go.sum | 4 ++++ internal/engine/netx/quicdialer/dns_test.go | 12 ++++++------ internal/engine/netx/quicdialer/errorwrapper_test.go | 2 +- internal/engine/netx/quicdialer/saver_test.go | 4 ++-- internal/engine/netx/quicdialer/system_test.go | 4 ++-- 6 files changed, 16 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 1626361..8b68359 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/gorilla/websocket v1.4.2 github.com/hexops/gotextdiff v1.0.3 github.com/iancoleman/strcase v0.1.3 - github.com/lucas-clemente/quic-go v0.20.1 + github.com/lucas-clemente/quic-go v0.21.0 github.com/mattn/go-colorable v0.1.8 github.com/mattn/go-sqlite3 v1.14.7 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect diff --git a/go.sum b/go.sum index 849ff11..ff08be0 100644 --- a/go.sum +++ b/go.sum @@ -293,6 +293,8 @@ github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-b github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lucas-clemente/quic-go v0.20.1 h1:hb5m76V8QS/8Nw/suHvXqo3BMHAozvIkcnzpJdpanSk= github.com/lucas-clemente/quic-go v0.20.1/go.mod h1:fZq/HUDIM+mW6X6wtzORjC0E/WDBMKe5Hf9bgjISwLk= +github.com/lucas-clemente/quic-go v0.21.0 h1:ZdC8UBxUSBdPlEv1+4y4SqIBy54VA8bRxN7DmkQ0URs= +github.com/lucas-clemente/quic-go v0.21.0/go.mod h1:BWkfkkOSJD1AxFNBqdjBZi6FznZ96bhdcvZiA+LDrY8= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -309,6 +311,8 @@ github.com/marten-seemann/qtls-go1-15 v0.1.4 h1:RehYMOyRW8hPVEja1KBVsFVNSm35Jj9M github.com/marten-seemann/qtls-go1-15 v0.1.4/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= github.com/marten-seemann/qtls-go1-16 v0.1.3 h1:XEZ1xGorVy9u+lJq+WXNE+hiqRYLNvJGYmwfwKQN2gU= github.com/marten-seemann/qtls-go1-16 v0.1.3/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= +github.com/marten-seemann/qtls-go1-17 v0.1.0-alpha.1 h1:LRFa3YRSlOAf9y56Szfhlh60CQrIMBSK/rneZD1gtuk= +github.com/marten-seemann/qtls-go1-17 v0.1.0-alpha.1/go.mod h1:lQDiKZDfPagLmg1zMtEgoBMSTAORq6M08lBogD5FtBY= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= diff --git a/internal/engine/netx/quicdialer/dns_test.go b/internal/engine/netx/quicdialer/dns_test.go index ad6ded2..a35c078 100644 --- a/internal/engine/netx/quicdialer/dns_test.go +++ b/internal/engine/netx/quicdialer/dns_test.go @@ -23,7 +23,7 @@ func (r MockableResolver) LookupHost(ctx context.Context, host string) ([]string } func TestDNSDialerSuccess(t *testing.T) { - tlsConf := &tls.Config{NextProtos: []string{"h3-29"}} + tlsConf := &tls.Config{NextProtos: []string{"h3"}} dialer := quicdialer.DNSDialer{ Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}} sess, err := dialer.DialContext( @@ -38,7 +38,7 @@ func TestDNSDialerSuccess(t *testing.T) { } func TestDNSDialerNoPort(t *testing.T) { - tlsConf := &tls.Config{NextProtos: []string{"h3-29"}} + tlsConf := &tls.Config{NextProtos: []string{"h3"}} dialer := quicdialer.DNSDialer{ Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}} sess, err := dialer.DialContext( @@ -69,7 +69,7 @@ func TestDNSDialerLookupHostAddress(t *testing.T) { } func TestDNSDialerLookupHostFailure(t *testing.T) { - tlsConf := &tls.Config{NextProtos: []string{"h3-29"}} + tlsConf := &tls.Config{NextProtos: []string{"h3"}} expected := errors.New("mocked error") dialer := quicdialer.DNSDialer{Resolver: MockableResolver{ Err: expected, @@ -86,7 +86,7 @@ func TestDNSDialerLookupHostFailure(t *testing.T) { } func TestDNSDialerInvalidPort(t *testing.T) { - tlsConf := &tls.Config{NextProtos: []string{"h3-29"}} + tlsConf := &tls.Config{NextProtos: []string{"h3"}} dialer := quicdialer.DNSDialer{ Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}} sess, err := dialer.DialContext( @@ -105,7 +105,7 @@ func TestDNSDialerInvalidPort(t *testing.T) { } func TestDNSDialerInvalidPortSyntax(t *testing.T) { - tlsConf := &tls.Config{NextProtos: []string{"h3-29"}} + tlsConf := &tls.Config{NextProtos: []string{"h3"}} dialer := quicdialer.DNSDialer{ Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}} sess, err := dialer.DialContext( @@ -123,7 +123,7 @@ func TestDNSDialerInvalidPortSyntax(t *testing.T) { } func TestDNSDialerDialEarlyFails(t *testing.T) { - tlsConf := &tls.Config{NextProtos: []string{"h3-29"}} + tlsConf := &tls.Config{NextProtos: []string{"h3"}} expected := errors.New("mocked DialEarly error") dialer := quicdialer.DNSDialer{ Resolver: new(net.Resolver), Dialer: MockDialer{Err: expected}} diff --git a/internal/engine/netx/quicdialer/errorwrapper_test.go b/internal/engine/netx/quicdialer/errorwrapper_test.go index 094d094..be500de 100644 --- a/internal/engine/netx/quicdialer/errorwrapper_test.go +++ b/internal/engine/netx/quicdialer/errorwrapper_test.go @@ -47,7 +47,7 @@ func errorWrapperCheckErr(t *testing.T, err error, op string) { func TestErrorWrapperSuccess(t *testing.T) { ctx := dialid.WithDialID(context.Background()) tlsConf := &tls.Config{ - NextProtos: []string{"h3-29"}, + NextProtos: []string{"h3"}, ServerName: "www.google.com", } d := quicdialer.ErrorWrapperDialer{Dialer: quicdialer.SystemDialer{}} diff --git a/internal/engine/netx/quicdialer/saver_test.go b/internal/engine/netx/quicdialer/saver_test.go index 0e90fd3..c5d5a50 100644 --- a/internal/engine/netx/quicdialer/saver_test.go +++ b/internal/engine/netx/quicdialer/saver_test.go @@ -28,7 +28,7 @@ func (d MockDialer) DialContext(ctx context.Context, network, host string, } func TestHandshakeSaverSuccess(t *testing.T) { - nextprotos := []string{"h3-29"} + nextprotos := []string{"h3"} servername := "www.google.com" tlsConf := &tls.Config{ NextProtos: nextprotos, @@ -84,7 +84,7 @@ func TestHandshakeSaverSuccess(t *testing.T) { } func TestHandshakeSaverHostNameError(t *testing.T) { - nextprotos := []string{"h3-29"} + nextprotos := []string{"h3"} servername := "wrong.host.badssl.com" tlsConf := &tls.Config{ NextProtos: nextprotos, diff --git a/internal/engine/netx/quicdialer/system_test.go b/internal/engine/netx/quicdialer/system_test.go index 4595a4f..309e8cf 100644 --- a/internal/engine/netx/quicdialer/system_test.go +++ b/internal/engine/netx/quicdialer/system_test.go @@ -13,7 +13,7 @@ import ( func TestSystemDialerInvalidIPFailure(t *testing.T) { tlsConf := &tls.Config{ - NextProtos: []string{"h3-29"}, + NextProtos: []string{"h3"}, ServerName: "www.google.com", } saver := &trace.Saver{} @@ -35,7 +35,7 @@ func TestSystemDialerInvalidIPFailure(t *testing.T) { func TestSystemDialerSuccessWithReadWrite(t *testing.T) { // This is the most common use case for collecting reads, writes tlsConf := &tls.Config{ - NextProtos: []string{"h3-29"}, + NextProtos: []string{"h3"}, ServerName: "www.google.com", } saver := &trace.Saver{}