MCPcopy Create free account
hub / github.com/SamNet-dev/snix / tlsTestServer

Function tlsTestServer

scanner/sni_test.go:19–50  ·  view source on GitHub ↗

tlsTestServer spins up a self-signed TLS listener and returns its addr.

(t *testing.T)

Source from the content-addressed store, hash-verified

17
18// tlsTestServer spins up a self-signed TLS listener and returns its addr.
19func tlsTestServer(t *testing.T) (addr string, stop func()) {
20 t.Helper()
21 key, _ := rsa.GenerateKey(rand.Reader, 2048)
22 tpl := &x509.Certificate{
23 SerialNumber: big.NewInt(1),
24 Subject: pkix.Name{CommonName: "test"},
25 NotBefore: time.Now().Add(-time.Hour),
26 NotAfter: time.Now().Add(time.Hour),
27 KeyUsage: x509.KeyUsageDigitalSignature,
28 ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
29 DNSNames: []string{"test"},
30 }
31 der, _ := x509.CreateCertificate(rand.Reader, tpl, tpl, &key.PublicKey, key)
32 cert := tls.Certificate{Certificate: [][]byte{der}, PrivateKey: key}
33
34 ln, err := tls.Listen("tcp", "127.0.0.1:0", &tls.Config{Certificates: []tls.Certificate{cert}})
35 if err != nil {
36 t.Fatal(err)
37 }
38 go func() {
39 for {
40 c, err := ln.Accept()
41 if err != nil {
42 return
43 }
44 // Complete handshake by reading one byte.
45 _ = c.(*tls.Conn).Handshake()
46 _ = c.Close()
47 }
48 }()
49 return ln.Addr().String(), func() { _ = ln.Close() }
50}
51
52func hostPort(t *testing.T, addr string) (netip.Addr, uint16) {
53 t.Helper()

Callers 2

TestProbeSNISuccessFunction · 0.85
TestProbeSNIsConcurrentFunction · 0.85

Calls 4

AddMethod · 0.80
AcceptMethod · 0.80
StringMethod · 0.80
CloseMethod · 0.65

Tested by

no test coverage detected