uquic/internal/qtls/qtls_test.go
Gaukas Wang 4973374ea5
sync: quic-go 0.42.0
Signed-off-by: Gaukas Wang <i@gaukas.wang>
2024-04-23 22:34:55 -06:00

53 lines
2.3 KiB
Go

package qtls
import (
tls "github.com/refraction-networking/utls"
"github.com/refraction-networking/uquic/internal/protocol"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)
var _ = Describe("interface go crypto/tls", func() {
It("converts to tls.EncryptionLevel", func() {
Expect(ToTLSEncryptionLevel(protocol.EncryptionInitial)).To(Equal(tls.QUICEncryptionLevelInitial))
Expect(ToTLSEncryptionLevel(protocol.EncryptionHandshake)).To(Equal(tls.QUICEncryptionLevelHandshake))
Expect(ToTLSEncryptionLevel(protocol.Encryption1RTT)).To(Equal(tls.QUICEncryptionLevelApplication))
Expect(ToTLSEncryptionLevel(protocol.Encryption0RTT)).To(Equal(tls.QUICEncryptionLevelEarly))
})
It("converts from tls.EncryptionLevel", func() {
Expect(FromTLSEncryptionLevel(tls.QUICEncryptionLevelInitial)).To(Equal(protocol.EncryptionInitial))
Expect(FromTLSEncryptionLevel(tls.QUICEncryptionLevelHandshake)).To(Equal(protocol.EncryptionHandshake))
Expect(FromTLSEncryptionLevel(tls.QUICEncryptionLevelApplication)).To(Equal(protocol.Encryption1RTT))
Expect(FromTLSEncryptionLevel(tls.QUICEncryptionLevelEarly)).To(Equal(protocol.Encryption0RTT))
})
Context("setting up a tls.Config for the client", func() {
It("sets up a session cache if there's one present on the config", func() {
csc := tls.NewLRUClientSessionCache(1)
conf := &tls.QUICConfig{TLSConfig: &tls.Config{ClientSessionCache: csc}}
SetupConfigForClient(conf, nil, nil)
Expect(conf.TLSConfig.ClientSessionCache).ToNot(BeNil())
Expect(conf.TLSConfig.ClientSessionCache).ToNot(Equal(csc))
})
It("doesn't set up a session cache if there's none present on the config", func() {
conf := &tls.QUICConfig{TLSConfig: &tls.Config{}}
SetupConfigForClient(conf, nil, nil)
Expect(conf.TLSConfig.ClientSessionCache).To(BeNil())
})
})
Context("setting up a tls.Config for the server", func() {
It("sets the minimum TLS version to TLS 1.3", func() {
orig := &tls.Config{MinVersion: tls.VersionTLS12}
conf := &tls.QUICConfig{TLSConfig: orig}
SetupConfigForServer(conf, false, nil, nil)
Expect(conf.TLSConfig.MinVersion).To(BeEquivalentTo(tls.VersionTLS13))
// check that the original config wasn't modified
Expect(orig.MinVersion).To(BeEquivalentTo(tls.VersionTLS12))
})
})
})