| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package handshake
- import (
- "crypto/tls"
- "v2ray.com/core/external/github.com/marten-seemann/qtls"
- )
- func tlsConfigToQtlsConfig(c *tls.Config) *qtls.Config {
- if c == nil {
- c = &tls.Config{}
- }
- // QUIC requires TLS 1.3 or newer
- minVersion := c.MinVersion
- if minVersion < qtls.VersionTLS13 {
- minVersion = qtls.VersionTLS13
- }
- maxVersion := c.MaxVersion
- if maxVersion < qtls.VersionTLS13 {
- maxVersion = qtls.VersionTLS13
- }
- return &qtls.Config{
- Rand: c.Rand,
- Time: c.Time,
- Certificates: c.Certificates,
- NameToCertificate: c.NameToCertificate,
- // TODO: make GetCertificate work
- // GetCertificate: c.GetCertificate,
- GetClientCertificate: c.GetClientCertificate,
- // TODO: make GetConfigForClient work
- // GetConfigForClient: c.GetConfigForClient,
- VerifyPeerCertificate: c.VerifyPeerCertificate,
- RootCAs: c.RootCAs,
- NextProtos: c.NextProtos,
- ServerName: c.ServerName,
- ClientAuth: c.ClientAuth,
- ClientCAs: c.ClientCAs,
- InsecureSkipVerify: c.InsecureSkipVerify,
- CipherSuites: c.CipherSuites,
- PreferServerCipherSuites: c.PreferServerCipherSuites,
- SessionTicketsDisabled: c.SessionTicketsDisabled,
- SessionTicketKey: c.SessionTicketKey,
- MinVersion: minVersion,
- MaxVersion: maxVersion,
- CurvePreferences: c.CurvePreferences,
- DynamicRecordSizingDisabled: c.DynamicRecordSizingDisabled,
- Renegotiation: c.Renegotiation,
- KeyLogWriter: c.KeyLogWriter,
- }
- }
|