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
This commit is contained in:
kelmenhorst 2021-06-14 16:59:24 +02:00 committed by GitHub
parent 69a44eb283
commit 10a2055163
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 16 additions and 12 deletions

2
go.mod
View File

@ -21,7 +21,7 @@ require (
github.com/gorilla/websocket v1.4.2 github.com/gorilla/websocket v1.4.2
github.com/hexops/gotextdiff v1.0.3 github.com/hexops/gotextdiff v1.0.3
github.com/iancoleman/strcase v0.1.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-colorable v0.1.8
github.com/mattn/go-sqlite3 v1.14.7 // indirect github.com/mattn/go-sqlite3 v1.14.7 // indirect
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect

4
go.sum
View File

@ -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/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 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.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/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/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= 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-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 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-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.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.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=

View File

@ -23,7 +23,7 @@ func (r MockableResolver) LookupHost(ctx context.Context, host string) ([]string
} }
func TestDNSDialerSuccess(t *testing.T) { func TestDNSDialerSuccess(t *testing.T) {
tlsConf := &tls.Config{NextProtos: []string{"h3-29"}} tlsConf := &tls.Config{NextProtos: []string{"h3"}}
dialer := quicdialer.DNSDialer{ dialer := quicdialer.DNSDialer{
Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}} Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}}
sess, err := dialer.DialContext( sess, err := dialer.DialContext(
@ -38,7 +38,7 @@ func TestDNSDialerSuccess(t *testing.T) {
} }
func TestDNSDialerNoPort(t *testing.T) { func TestDNSDialerNoPort(t *testing.T) {
tlsConf := &tls.Config{NextProtos: []string{"h3-29"}} tlsConf := &tls.Config{NextProtos: []string{"h3"}}
dialer := quicdialer.DNSDialer{ dialer := quicdialer.DNSDialer{
Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}} Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}}
sess, err := dialer.DialContext( sess, err := dialer.DialContext(
@ -69,7 +69,7 @@ func TestDNSDialerLookupHostAddress(t *testing.T) {
} }
func TestDNSDialerLookupHostFailure(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") expected := errors.New("mocked error")
dialer := quicdialer.DNSDialer{Resolver: MockableResolver{ dialer := quicdialer.DNSDialer{Resolver: MockableResolver{
Err: expected, Err: expected,
@ -86,7 +86,7 @@ func TestDNSDialerLookupHostFailure(t *testing.T) {
} }
func TestDNSDialerInvalidPort(t *testing.T) { func TestDNSDialerInvalidPort(t *testing.T) {
tlsConf := &tls.Config{NextProtos: []string{"h3-29"}} tlsConf := &tls.Config{NextProtos: []string{"h3"}}
dialer := quicdialer.DNSDialer{ dialer := quicdialer.DNSDialer{
Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}} Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}}
sess, err := dialer.DialContext( sess, err := dialer.DialContext(
@ -105,7 +105,7 @@ func TestDNSDialerInvalidPort(t *testing.T) {
} }
func TestDNSDialerInvalidPortSyntax(t *testing.T) { func TestDNSDialerInvalidPortSyntax(t *testing.T) {
tlsConf := &tls.Config{NextProtos: []string{"h3-29"}} tlsConf := &tls.Config{NextProtos: []string{"h3"}}
dialer := quicdialer.DNSDialer{ dialer := quicdialer.DNSDialer{
Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}} Resolver: new(net.Resolver), Dialer: quicdialer.SystemDialer{}}
sess, err := dialer.DialContext( sess, err := dialer.DialContext(
@ -123,7 +123,7 @@ func TestDNSDialerInvalidPortSyntax(t *testing.T) {
} }
func TestDNSDialerDialEarlyFails(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") expected := errors.New("mocked DialEarly error")
dialer := quicdialer.DNSDialer{ dialer := quicdialer.DNSDialer{
Resolver: new(net.Resolver), Dialer: MockDialer{Err: expected}} Resolver: new(net.Resolver), Dialer: MockDialer{Err: expected}}

View File

@ -47,7 +47,7 @@ func errorWrapperCheckErr(t *testing.T, err error, op string) {
func TestErrorWrapperSuccess(t *testing.T) { func TestErrorWrapperSuccess(t *testing.T) {
ctx := dialid.WithDialID(context.Background()) ctx := dialid.WithDialID(context.Background())
tlsConf := &tls.Config{ tlsConf := &tls.Config{
NextProtos: []string{"h3-29"}, NextProtos: []string{"h3"},
ServerName: "www.google.com", ServerName: "www.google.com",
} }
d := quicdialer.ErrorWrapperDialer{Dialer: quicdialer.SystemDialer{}} d := quicdialer.ErrorWrapperDialer{Dialer: quicdialer.SystemDialer{}}

View File

@ -28,7 +28,7 @@ func (d MockDialer) DialContext(ctx context.Context, network, host string,
} }
func TestHandshakeSaverSuccess(t *testing.T) { func TestHandshakeSaverSuccess(t *testing.T) {
nextprotos := []string{"h3-29"} nextprotos := []string{"h3"}
servername := "www.google.com" servername := "www.google.com"
tlsConf := &tls.Config{ tlsConf := &tls.Config{
NextProtos: nextprotos, NextProtos: nextprotos,
@ -84,7 +84,7 @@ func TestHandshakeSaverSuccess(t *testing.T) {
} }
func TestHandshakeSaverHostNameError(t *testing.T) { func TestHandshakeSaverHostNameError(t *testing.T) {
nextprotos := []string{"h3-29"} nextprotos := []string{"h3"}
servername := "wrong.host.badssl.com" servername := "wrong.host.badssl.com"
tlsConf := &tls.Config{ tlsConf := &tls.Config{
NextProtos: nextprotos, NextProtos: nextprotos,

View File

@ -13,7 +13,7 @@ import (
func TestSystemDialerInvalidIPFailure(t *testing.T) { func TestSystemDialerInvalidIPFailure(t *testing.T) {
tlsConf := &tls.Config{ tlsConf := &tls.Config{
NextProtos: []string{"h3-29"}, NextProtos: []string{"h3"},
ServerName: "www.google.com", ServerName: "www.google.com",
} }
saver := &trace.Saver{} saver := &trace.Saver{}
@ -35,7 +35,7 @@ func TestSystemDialerInvalidIPFailure(t *testing.T) {
func TestSystemDialerSuccessWithReadWrite(t *testing.T) { func TestSystemDialerSuccessWithReadWrite(t *testing.T) {
// This is the most common use case for collecting reads, writes // This is the most common use case for collecting reads, writes
tlsConf := &tls.Config{ tlsConf := &tls.Config{
NextProtos: []string{"h3-29"}, NextProtos: []string{"h3"},
ServerName: "www.google.com", ServerName: "www.google.com",
} }
saver := &trace.Saver{} saver := &trace.Saver{}