49 lines
1.7 KiB
Go
49 lines
1.7 KiB
Go
|
|
package proxy
|
||
|
|
|
||
|
|
import (
|
||
|
|
"crypto/tls"
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestTLSRuntime_buildTLSConfig_Good(t *testing.T) {
|
||
|
|
config := buildTLSConfig(TLSConfig{
|
||
|
|
Ciphers: "ECDHE-RSA-AES128-GCM-SHA256:TLS_AES_128_GCM_SHA256",
|
||
|
|
Protocols: "TLSv1.2,TLSv1.3",
|
||
|
|
})
|
||
|
|
|
||
|
|
if config.MinVersion != tls.VersionTLS12 {
|
||
|
|
t.Fatalf("expected min version TLS1.2, got %d", config.MinVersion)
|
||
|
|
}
|
||
|
|
if config.MaxVersion != tls.VersionTLS13 {
|
||
|
|
t.Fatalf("expected max version TLS1.3, got %d", config.MaxVersion)
|
||
|
|
}
|
||
|
|
if len(config.CipherSuites) != 2 || config.CipherSuites[0] != tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 || config.CipherSuites[1] != tls.TLS_AES_128_GCM_SHA256 {
|
||
|
|
t.Fatalf("unexpected cipher suites: %#v", config.CipherSuites)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestTLSRuntime_buildTLSConfig_Bad(t *testing.T) {
|
||
|
|
config := buildTLSConfig(TLSConfig{Protocols: "bogus", Ciphers: "bogus"})
|
||
|
|
|
||
|
|
if config.MinVersion != 0 || config.MaxVersion != 0 {
|
||
|
|
t.Fatalf("expected default versions for invalid input, got min=%d max=%d", config.MinVersion, config.MaxVersion)
|
||
|
|
}
|
||
|
|
if len(config.CipherSuites) != 0 {
|
||
|
|
t.Fatalf("expected no cipher suites for invalid input, got %#v", config.CipherSuites)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestTLSRuntime_buildTLSConfig_Ugly(t *testing.T) {
|
||
|
|
config := buildTLSConfig(TLSConfig{Protocols: "1.1:1.2:1.3", Ciphers: "AES128-GCM-SHA256,unknown"})
|
||
|
|
|
||
|
|
if config.MinVersion != tls.VersionTLS11 {
|
||
|
|
t.Fatalf("expected min version TLS1.1, got %d", config.MinVersion)
|
||
|
|
}
|
||
|
|
if config.MaxVersion != tls.VersionTLS13 {
|
||
|
|
t.Fatalf("expected max version TLS1.3, got %d", config.MaxVersion)
|
||
|
|
}
|
||
|
|
if len(config.CipherSuites) != 1 || config.CipherSuites[0] != tls.TLS_RSA_WITH_AES_128_GCM_SHA256 {
|
||
|
|
t.Fatalf("unexpected cipher suites: %#v", config.CipherSuites)
|
||
|
|
}
|
||
|
|
}
|