forked from quic-go/quic-go
remove the error return value when receiving TLS extensions
This commit is contained in:
@@ -24,7 +24,7 @@ type Sealer interface {
|
|||||||
// A tlsExtensionHandler sends and received the QUIC TLS extension.
|
// A tlsExtensionHandler sends and received the QUIC TLS extension.
|
||||||
type tlsExtensionHandler interface {
|
type tlsExtensionHandler interface {
|
||||||
GetExtensions(msgType uint8) []qtls.Extension
|
GetExtensions(msgType uint8) []qtls.Extension
|
||||||
ReceivedExtensions(msgType uint8, exts []qtls.Extension) error
|
ReceivedExtensions(msgType uint8, exts []qtls.Extension)
|
||||||
TransportParameters() <-chan []byte
|
TransportParameters() <-chan []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,10 +34,10 @@ func (h *extensionHandler) GetExtensions(msgType uint8) []qtls.Extension {
|
|||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *extensionHandler) ReceivedExtensions(msgType uint8, exts []qtls.Extension) error {
|
func (h *extensionHandler) ReceivedExtensions(msgType uint8, exts []qtls.Extension) {
|
||||||
if (h.perspective == protocol.PerspectiveClient && messageType(msgType) != typeEncryptedExtensions) ||
|
if (h.perspective == protocol.PerspectiveClient && messageType(msgType) != typeEncryptedExtensions) ||
|
||||||
(h.perspective == protocol.PerspectiveServer && messageType(msgType) != typeClientHello) {
|
(h.perspective == protocol.PerspectiveServer && messageType(msgType) != typeClientHello) {
|
||||||
return nil
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var data []byte
|
var data []byte
|
||||||
@@ -49,7 +49,6 @@ func (h *extensionHandler) ReceivedExtensions(msgType uint8, exts []qtls.Extensi
|
|||||||
}
|
}
|
||||||
|
|
||||||
h.paramsChan <- data
|
h.paramsChan <- data
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *extensionHandler) TransportParameters() <-chan []byte {
|
func (h *extensionHandler) TransportParameters() <-chan []byte {
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ var _ = Describe("TLS Extension Handler, for the server", func() {
|
|||||||
It("sends the extension on the channel", func() {
|
It("sends the extension on the channel", func() {
|
||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
Expect(handlerServer.ReceivedExtensions(uint8(typeClientHello), chExts)).To(Succeed())
|
handlerServer.ReceivedExtensions(uint8(typeClientHello), chExts)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
var data []byte
|
var data []byte
|
||||||
@@ -63,7 +63,7 @@ var _ = Describe("TLS Extension Handler, for the server", func() {
|
|||||||
It("sends nil on the channel if the extension is missing", func() {
|
It("sends nil on the channel if the extension is missing", func() {
|
||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
Expect(handlerServer.ReceivedExtensions(uint8(typeClientHello), nil)).To(Succeed())
|
handlerServer.ReceivedExtensions(uint8(typeClientHello), nil)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
var data []byte
|
var data []byte
|
||||||
@@ -75,7 +75,7 @@ var _ = Describe("TLS Extension Handler, for the server", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
exts := []qtls.Extension{{Type: 0x1337, Data: []byte("invalid")}}
|
exts := []qtls.Extension{{Type: 0x1337, Data: []byte("invalid")}}
|
||||||
Expect(handlerServer.ReceivedExtensions(uint8(typeClientHello), exts)).To(Succeed())
|
handlerServer.ReceivedExtensions(uint8(typeClientHello), exts)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
var data []byte
|
var data []byte
|
||||||
@@ -86,7 +86,7 @@ var _ = Describe("TLS Extension Handler, for the server", func() {
|
|||||||
It("ignores extensions that are not sent with the ClientHello", func() {
|
It("ignores extensions that are not sent with the ClientHello", func() {
|
||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
Expect(handlerServer.ReceivedExtensions(uint8(typeFinished), chExts)).To(Succeed())
|
handlerServer.ReceivedExtensions(uint8(typeFinished), chExts)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
Consistently(handlerServer.TransportParameters()).ShouldNot(Receive())
|
Consistently(handlerServer.TransportParameters()).ShouldNot(Receive())
|
||||||
@@ -121,7 +121,7 @@ var _ = Describe("TLS Extension Handler, for the server", func() {
|
|||||||
It("sends the extension on the channel", func() {
|
It("sends the extension on the channel", func() {
|
||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
Expect(handlerClient.ReceivedExtensions(uint8(typeEncryptedExtensions), chExts)).To(Succeed())
|
handlerClient.ReceivedExtensions(uint8(typeEncryptedExtensions), chExts)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
var data []byte
|
var data []byte
|
||||||
@@ -132,7 +132,7 @@ var _ = Describe("TLS Extension Handler, for the server", func() {
|
|||||||
It("sends nil on the channel if the extension is missing", func() {
|
It("sends nil on the channel if the extension is missing", func() {
|
||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
Expect(handlerClient.ReceivedExtensions(uint8(typeEncryptedExtensions), nil)).To(Succeed())
|
handlerClient.ReceivedExtensions(uint8(typeEncryptedExtensions), nil)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
var data []byte
|
var data []byte
|
||||||
@@ -144,7 +144,7 @@ var _ = Describe("TLS Extension Handler, for the server", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
exts := []qtls.Extension{{Type: 0x1337, Data: []byte("invalid")}}
|
exts := []qtls.Extension{{Type: 0x1337, Data: []byte("invalid")}}
|
||||||
Expect(handlerClient.ReceivedExtensions(uint8(typeEncryptedExtensions), exts)).To(Succeed())
|
handlerClient.ReceivedExtensions(uint8(typeEncryptedExtensions), exts)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
var data []byte
|
var data []byte
|
||||||
@@ -155,7 +155,7 @@ var _ = Describe("TLS Extension Handler, for the server", func() {
|
|||||||
It("ignores extensions that are not sent with the EncryptedExtensions", func() {
|
It("ignores extensions that are not sent with the EncryptedExtensions", func() {
|
||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
Expect(handlerClient.ReceivedExtensions(uint8(typeFinished), chExts)).To(Succeed())
|
handlerClient.ReceivedExtensions(uint8(typeFinished), chExts)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
Consistently(handlerClient.TransportParameters()).ShouldNot(Receive())
|
Consistently(handlerClient.TransportParameters()).ShouldNot(Receive())
|
||||||
|
|||||||
9
vendor/github.com/marten-seemann/qtls/13.go
generated
vendored
9
vendor/github.com/marten-seemann/qtls/13.go
generated
vendored
@@ -862,16 +862,15 @@ func getCertsFromEntries(certEntries []certificateEntry) [][]byte {
|
|||||||
return certs
|
return certs
|
||||||
}
|
}
|
||||||
|
|
||||||
func (hs *clientHandshakeState) processEncryptedExtensions(ee *encryptedExtensionsMsg) error {
|
func (hs *clientHandshakeState) processEncryptedExtensions(ee *encryptedExtensionsMsg) {
|
||||||
c := hs.c
|
c := hs.c
|
||||||
if ee.alpnProtocol != "" {
|
if ee.alpnProtocol != "" {
|
||||||
c.clientProtocol = ee.alpnProtocol
|
c.clientProtocol = ee.alpnProtocol
|
||||||
c.clientProtocolFallback = false
|
c.clientProtocolFallback = false
|
||||||
}
|
}
|
||||||
if hs.c.config.ReceivedExtensions != nil {
|
if hs.c.config.ReceivedExtensions != nil {
|
||||||
return hs.c.config.ReceivedExtensions(typeEncryptedExtensions, ee.additionalExtensions)
|
hs.c.config.ReceivedExtensions(typeEncryptedExtensions, ee.additionalExtensions)
|
||||||
}
|
}
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func verifyPeerHandshakeSignature(
|
func verifyPeerHandshakeSignature(
|
||||||
@@ -1037,9 +1036,7 @@ func (hs *clientHandshakeState) doTLS13Handshake() error {
|
|||||||
c.sendAlert(alertUnexpectedMessage)
|
c.sendAlert(alertUnexpectedMessage)
|
||||||
return unexpectedMessageError(encryptedExtensions, msg)
|
return unexpectedMessageError(encryptedExtensions, msg)
|
||||||
}
|
}
|
||||||
if err := hs.processEncryptedExtensions(encryptedExtensions); err != nil {
|
hs.processEncryptedExtensions(encryptedExtensions)
|
||||||
return err
|
|
||||||
}
|
|
||||||
hs.keySchedule.write(encryptedExtensions.marshal())
|
hs.keySchedule.write(encryptedExtensions.marshal())
|
||||||
|
|
||||||
// PSKs are not supported, so receive Certificate message.
|
// PSKs are not supported, so receive Certificate message.
|
||||||
|
|||||||
2
vendor/github.com/marten-seemann/qtls/common.go
generated
vendored
2
vendor/github.com/marten-seemann/qtls/common.go
generated
vendored
@@ -631,7 +631,7 @@ type Config struct {
|
|||||||
// Currently only implemented for the ClientHello message (sent by the
|
// Currently only implemented for the ClientHello message (sent by the
|
||||||
// client) and for the EncryptedExtensions message (sent by the server).
|
// client) and for the EncryptedExtensions message (sent by the server).
|
||||||
// Only valid for TLS 1.3.
|
// Only valid for TLS 1.3.
|
||||||
ReceivedExtensions func(handshakeMessageType uint8, exts []Extension) error
|
ReceivedExtensions func(handshakeMessageType uint8, exts []Extension)
|
||||||
|
|
||||||
serverInitOnce sync.Once // guards calling (*Config).serverInit
|
serverInitOnce sync.Once // guards calling (*Config).serverInit
|
||||||
|
|
||||||
|
|||||||
5
vendor/github.com/marten-seemann/qtls/handshake_server.go
generated
vendored
5
vendor/github.com/marten-seemann/qtls/handshake_server.go
generated
vendored
@@ -261,10 +261,7 @@ Curves:
|
|||||||
hs.hello.compressionMethod = compressionNone
|
hs.hello.compressionMethod = compressionNone
|
||||||
} else {
|
} else {
|
||||||
if hs.c.config.ReceivedExtensions != nil {
|
if hs.c.config.ReceivedExtensions != nil {
|
||||||
if err := hs.c.config.ReceivedExtensions(typeClientHello, hs.clientHello.additionalExtensions); err != nil {
|
hs.c.config.ReceivedExtensions(typeClientHello, hs.clientHello.additionalExtensions)
|
||||||
c.sendAlert(alertInternalError)
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
hs.hello = new(serverHelloMsg)
|
hs.hello = new(serverHelloMsg)
|
||||||
hs.hello13Enc = new(encryptedExtensionsMsg)
|
hs.hello13Enc = new(encryptedExtensionsMsg)
|
||||||
|
|||||||
4
vendor/vendor.json
vendored
4
vendor/vendor.json
vendored
@@ -45,9 +45,9 @@
|
|||||||
"revisionTime": "2018-11-11T22:04:28Z"
|
"revisionTime": "2018-11-11T22:04:28Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"checksumSHA1": "9D0GoLWn+P00plU66qfLxFB1kNg=",
|
"checksumSHA1": "Nj31pb7U27uPwTQ6z0DTgbgF9eg=",
|
||||||
"path": "github.com/marten-seemann/qtls",
|
"path": "github.com/marten-seemann/qtls",
|
||||||
"revision": "646330209b76bfdcdc054a863468f473e9d0a7af",
|
"revision": "591c71538704125b0b189f4cd3c0e61485dd6ef7",
|
||||||
"revisionTime": "2019-01-10T16:28:36Z"
|
"revisionTime": "2019-01-10T16:28:36Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user