| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | package tls_testimport (	gotls "crypto/tls"	"crypto/x509"	"testing"	"time"	"v2ray.com/core/common/protocol/tls/cert"	. "v2ray.com/core/transport/internet/tls"	. "v2ray.com/ext/assert")func TestCertificateIssuing(t *testing.T) {	assert := With(t)	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()	v2rayCert, err := tlsConfig.GetCertificate(&gotls.ClientHelloInfo{		ServerName: "www.v2ray.com",	})	assert(err, IsNil)	x509Cert, err := x509.ParseCertificate(v2rayCert.Certificate[0])	assert(err, IsNil)	assert(x509Cert.NotAfter.After(time.Now()), IsTrue)}func TestExpiredCertificate(t *testing.T) {	assert := With(t)	caCert := cert.MustGenerate(nil, cert.Authority(true), cert.KeyUsage(x509.KeyUsageCertSign))	expiredCert := cert.MustGenerate(caCert, cert.NotAfter(time.Now().Add(time.Minute*-2)), cert.CommonName("www.v2ray.com"), cert.DNSNames("www.v2ray.com"))	certificate := ParseCertificate(caCert)	certificate.Usage = Certificate_AUTHORITY_ISSUE	certificate2 := ParseCertificate(expiredCert)	c := &Config{		Certificate: []*Certificate{			certificate,			certificate2,		},	}	tlsConfig := c.GetTLSConfig()	v2rayCert, err := tlsConfig.GetCertificate(&gotls.ClientHelloInfo{		ServerName: "www.v2ray.com",	})	assert(err, IsNil)	x509Cert, err := x509.ParseCertificate(v2rayCert.Certificate[0])	assert(err, IsNil)	assert(x509Cert.NotAfter.After(time.Now()), IsTrue)}
 |