Browse Source

benchmark certificate issuing

Darien Raymond 7 years ago
parent
commit
d2d0c69f17
1 changed files with 24 additions and 0 deletions
  1. 24 0
      transport/internet/tls/config_test.go

+ 24 - 0
transport/internet/tls/config_test.go

@@ -73,3 +73,27 @@ func TestInsecureCertificates(t *testing.T) {
 		t.Fatal("Unexpected tls cipher suites list: ", tlsConfig.CipherSuites)
 		t.Fatal("Unexpected tls cipher suites list: ", tlsConfig.CipherSuites)
 	}
 	}
 }
 }
+
+func BenchmarkCertificateIssuing(b *testing.B) {
+	certificate := ParseCertificate(cert.MustGenerate(nil, cert.Authority(true), cert.KeyUsage(x509.KeyUsageCertSign)))
+	certificate.Usage = Certificate_AUTHORITY_ISSUE
+
+	c := &Config{
+		Certificate: []*Certificate{
+			certificate,
+		},
+	}
+
+	tlsConfig := c.GetTLSConfig()
+	lenCerts := len(tlsConfig.Certificates)
+
+	b.ResetTimer()
+
+	for i := 0; i < b.N; i++ {
+		_, _ = tlsConfig.GetCertificate(&gotls.ClientHelloInfo{
+			ServerName: "www.v2ray.com",
+		})
+		delete(tlsConfig.NameToCertificate, "www.v2ray.com")
+		tlsConfig.Certificates = tlsConfig.Certificates[:lenCerts]
+	}
+}