Sets certificate to update as SET is called

This commit is contained in:
sloumdrone 2019-10-02 19:25:29 -07:00
parent 5539f6c2c6
commit c12bc16015
2 changed files with 8 additions and 9 deletions

View File

@ -403,6 +403,9 @@ func (c *client) doCommandAs(action string, values []string) {
return return
} }
c.Options[values[0]] = lowerCaseOpt(values[0], val) c.Options[values[0]] = lowerCaseOpt(values[0], val)
if values[0] == "tlskey" || values[0] == "tlscertificate" {
c.Certs.LoadCertificate(c.Options["tlscertificate"], c.Options["tlskey"])
}
err := saveConfig() err := saveConfig()
if err != nil { if err != nil {
c.SetMessage("Value set, but error saving config to file", true) c.SetMessage("Value set, but error saving config to file", true)

View File

@ -24,7 +24,6 @@ type Capsule struct {
type TofuDigest struct { type TofuDigest struct {
certs map[string]string certs map[string]string
ClientCert tls.Certificate ClientCert tls.Certificate
UseClientCert bool
} }
@ -33,13 +32,12 @@ type TofuDigest struct {
//--------------------------------------------------\\ //--------------------------------------------------\\
func (t *TofuDigest) LoadCertificate(cert, key string) { func (t *TofuDigest) LoadCertificate(cert, key string) {
validClientCert := true
certificate, err := tls.LoadX509KeyPair(cert, key) certificate, err := tls.LoadX509KeyPair(cert, key)
if err != nil { if err != nil {
panic(err) t.ClientCert = tls.Certificate{}
return
} }
t.ClientCert = certificate t.ClientCert = certificate
t.UseClientCert = validClientCert
} }
func (t *TofuDigest) Purge(host string) error { func (t *TofuDigest) Purge(host string) error {
@ -156,10 +154,8 @@ func Retrieve(host, port, resource string, td *TofuDigest) (string, error) {
InsecureSkipVerify: true, InsecureSkipVerify: true,
} }
if td.UseClientCert { conf.GetClientCertificate = func(*tls.CertificateRequestInfo) (*tls.Certificate, error) {
conf.GetClientCertificate = func(*tls.CertificateRequestInfo) (*tls.Certificate, error) { return &td.ClientCert, nil
return &td.ClientCert, nil
}
} }
conn, err := tls.Dial("tcp", addr, conf) conn, err := tls.Dial("tcp", addr, conf)
@ -401,5 +397,5 @@ func MakeCapsule() Capsule {
} }
func MakeTofuDigest() TofuDigest { func MakeTofuDigest() TofuDigest {
return TofuDigest{make(map[string]string), tls.Certificate{}, false} return TofuDigest{make(map[string]string), tls.Certificate{}}
} }