| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package option
- import (
- "crypto/tls"
- E "github.com/sagernet/sing/common/exceptions"
- )
- type InboundTLSOptions struct {
- Enabled bool `json:"enabled,omitempty"`
- ServerName string `json:"server_name,omitempty"`
- ALPN []string `json:"alpn,omitempty"`
- MinVersion string `json:"min_version,omitempty"`
- MaxVersion string `json:"max_version,omitempty"`
- CipherSuites []string `json:"cipher_suites,omitempty"`
- Certificate string `json:"certificate,omitempty"`
- CertificatePath string `json:"certificate_path,omitempty"`
- Key string `json:"key,omitempty"`
- KeyPath string `json:"key_path,omitempty"`
- }
- type OutboundTLSOptions struct {
- Enabled bool `json:"enabled,omitempty"`
- DisableSNI bool `json:"disable_sni,omitempty"`
- ServerName string `json:"server_name,omitempty"`
- Insecure bool `json:"insecure,omitempty"`
- ALPN []string `json:"alpn,omitempty"`
- MinVersion string `json:"min_version,omitempty"`
- MaxVersion string `json:"max_version,omitempty"`
- CipherSuites []string `json:"cipher_suites,omitempty"`
- Certificate string `json:"certificate,omitempty"`
- CertificatePath string `json:"certificate_path,omitempty"`
- }
- func ParseTLSVersion(version string) (uint16, error) {
- switch version {
- case "1.0":
- return tls.VersionTLS10, nil
- case "1.1":
- return tls.VersionTLS11, nil
- case "1.2":
- return tls.VersionTLS12, nil
- case "1.3":
- return tls.VersionTLS13, nil
- default:
- return 0, E.New("unknown tls version:", version)
- }
- }
|