added cmd/config.go
This commit is contained in:
parent
e51077a749
commit
bc3bb06008
87
cmd/config.go
Normal file
87
cmd/config.go
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "errors"
|
||||||
|
import "io"
|
||||||
|
import "os"
|
||||||
|
|
||||||
|
import "gopkg.in/yaml.v3"
|
||||||
|
|
||||||
|
type ServerTLSConfig struct {
|
||||||
|
Enabled bool `yaml:"enabled"`
|
||||||
|
CertFile string `yaml:"cert-file"`
|
||||||
|
KeyFile string `yaml:"key-file"`
|
||||||
|
CertText string `yaml:"cert-text"`
|
||||||
|
KeyText string `yaml:"key-text"`
|
||||||
|
|
||||||
|
ClientAuthType string `yaml:"client-auth-type"`
|
||||||
|
ClientCACertFile string `yaml:"client-ca-cert-file"`
|
||||||
|
ClientCACertText string `yaml:"client-ca-cert-text"`
|
||||||
|
//CipherSuites []Cipher `yaml:"cipher_suites"`
|
||||||
|
//CurvePreferences []Curve `yaml:"curve_preferences"`
|
||||||
|
//MinVersion TLSVersion `yaml:"min-version"`
|
||||||
|
//MaxVersion TLSVersion `yaml:"max-version"`
|
||||||
|
//PreferServerCipherSuites bool `yaml:"prefer-server-cipher-suites"`
|
||||||
|
//ClientAllowedSans []string `yaml:"client-allowed-sans"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ClientTLSConfig struct {
|
||||||
|
Enabled bool `yaml:"enabled"`
|
||||||
|
CertFile string `yaml:"cert-file"`
|
||||||
|
KeyFile string `yaml:"key-file"`
|
||||||
|
CertText string `yaml:"cert-text"`
|
||||||
|
KeyText string `yaml:"key-text"`
|
||||||
|
ServerCACertFile string `yaml:"server-ca-cert-file"`
|
||||||
|
ServerCACertText string `yaml:"server-ca-cert-text"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ServerConfig struct {
|
||||||
|
TLS ServerTLSConfig `yaml:"tls"`
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
type ClientConfig struct {
|
||||||
|
TLS ServerTLSConfig `yaml:"tls"`
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func LoadServerConfig(cfgfile string) (*ServerConfig, error) {
|
||||||
|
var cfg ServerConfig
|
||||||
|
var f *os.File
|
||||||
|
var yd *yaml.Decoder
|
||||||
|
var err error
|
||||||
|
|
||||||
|
f, err = os.Open(cfgfile)
|
||||||
|
if err != nil && errors.Is(err, io.EOF) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
yd = yaml.NewDecoder(f)
|
||||||
|
err = yd.Decode(&cfg)
|
||||||
|
f.Close()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &cfg, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func LoadClientConfig(cfgfile string) (*ClientConfig, error) {
|
||||||
|
var cfg ClientConfig
|
||||||
|
var f *os.File
|
||||||
|
var yd *yaml.Decoder
|
||||||
|
var err error
|
||||||
|
|
||||||
|
f, err = os.Open(cfgfile)
|
||||||
|
if err != nil && errors.Is(err, io.EOF) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
yd = yaml.NewDecoder(f)
|
||||||
|
err = yd.Decode(&cfg)
|
||||||
|
f.Close()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &cfg, nil
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user